Skip to content

Add browser security headers to the public documentation sites #268

Open

Description

@rmcdaniel

Problem

The public documentation sites enforce HTTPS and currently return valid HTTP-to-HTTPS redirects, but their HTTPS responses do not include common browser security headers.

Verified on 2026-10-26:

Site HTTPS HSTS CSP nosniff referrer policy permissions policy frame restriction
durable-workflow.com 200 absent absent absent absent absent absent
www.durable-workflow.com redirects to the apex absent absent absent absent absent absent
python.durable-workflow.com 200 absent absent absent absent absent absent
rust.durable-workflow.com 200 absent absent absent absent absent absent
php.durable-workflow.com 200 absent absent absent absent absent absent

The sites are static documentation and do not handle authentication or customer data, so this is defense in depth rather than an incident or release blocker. HSTS would protect repeat visits from protocol downgrade; the remaining headers limit the effect of a future content or dependency injection.

Acceptance criteria

  • Use one maintainable response-header approach across all five custom domains while preserving the existing GitHub Pages deployments, certificates, redirects, and custom domains.
  • Add a narrowly scoped CSP based on the assets the sites actually load. Include a frame restriction through frame-ancestors; do not rely on an ineffective HTML meta substitute for directives that require response headers.
  • Add X-Content-Type-Options: nosniff, an appropriate Referrer-Policy, and a restrictive Permissions-Policy.
  • Roll out HSTS conservatively. Do not add includeSubDomains or request preload until every affected subdomain and rollback path has been verified.
  • Validate ordinary navigation, versioned pages, search, code samples, fonts, and other externally loaded assets on each site after rollout.
  • Record live response-header evidence from all five hostnames after deployment.

This is priority P3 and should not gate current releases.

Activity

  1. added
    enhancementNew feature or request
    kind:cross-repositoryWork spans more than one public repository
    priority:P3Lower-priority product improvement
    status:readyReady for implementation
    repo:documentationOwned by the public documentation repository
    completion:evidence-requiredClose only after all explicit acceptance and operational evidence is public
    on Oct 26, 2026
  2. rmcdaniel commented on Oct 27, 2026

    @rmcdaniel
    MemberAuthor

    Security live-surface update (2026-10-27 07:27 UTC; read-only, no DNS/site/configuration change):

    • All five HTTP hosts still return permanent redirects to the expected HTTPS host. HTTPS returns 200 for the apex, Python, Rust and PHP sites; www returns 301 to the apex and the apex returns 200.
    • The final HTTPS responses on all five hosts still omit Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options, Referrer-Policy, Permissions-Policy and a frame restriction. The issue premise therefore remains current; this is still defense in depth, not an incident or release gate.
    • Executable/static page assets observed on the homepages are same-origin except the local analytics loaders dynamically load https://static.cloudflareinsights.com/beacon.min.js. That beacon connects to https://cloudflareinsights.com/cdn-cgi/rum. Python, Rust and PHP analytics also POST promotion events to https://cloud.durable-workflow.com/early-access/promotion-events.
    • Current homepage compatibility inventory: apex has 3 external scripts, 2 non-empty inline scripts and 37 inline style attributes; Python has 4 external and 4 non-empty inline scripts; Rust has 1 external script and no inline script/style constructs; PHP has 2 external scripts and no inline script/style constructs. No inline event handlers were found on these pages.

    This supports a narrow starting policy around self, object-src none, base-uri self, frame-ancestors none, the Cloudflare analytics script/beacon origins, and the existing Cloud promotion-event connection. Do not freeze the homepage counts into a static policy: deployment qualification still needs a generated crawl/hash inventory across localized, versioned, search and reference pages. The apex inline styles also need an explicit compatibility design rather than an accidental broad script allowance.

    General retains implementation ownership. Security can review the exact proposed header policy and live rollout evidence; there is no new standing gate.

  3. rmcdaniel commented on Oct 27, 2026

    @rmcdaniel
    MemberAuthor

    Hosting-boundary addendum (public DNS/response readback, 2026-10-27 UTC):

    • The zone is delegated to Cloudflare nameservers, but the documentation records are currently direct/DNS-only GitHub Pages targets: apex A records are the four GitHub Pages addresses 185.199.108.153 through 185.199.111.153; www, python, rust and php CNAME to durable-workflow.github.io. Live responses identify GitHub.com/Fastly, not a Cloudflare proxy path.
    • Cloudflare documents that Transform Rules require records to be proxied through Cloudflare, and that Response Header Transform Rules can set static response headers: https://developers.cloudflare.com/rules/transform/ and https://developers.cloudflare.com/rules/transform/response-header-modification/ . Thus that implementation would be a traffic-path/DNS change, not merely a static-site source patch.
    • Per the operator boundary, do not flip proxy state, add a Worker/rule, or alter DNS from this issue without an explicit approved rollout. A proposal should preserve the GitHub Pages origin/custom-domain/certificate behavior, stage one low-risk SDK hostname first, verify cache/content/redirect/TLS/analytics/search behavior and headers, and retain immediate DNS-only rollback before the apex or www changes.

    No approval is requested yet. General can first return the source-controlled rule/policy design and exact staged acceptance/rollback plan; Security will review that artifact without creating a release gate.

  4. rmcdaniel commented on Nov 4, 2026

    @rmcdaniel
    MemberAuthor

    Independent docs open-item review: I rechecked the public surfaces and am bringing a concrete hosting decision to named owner General. durable-workflow-github-io owns this read-only inventory and can own the reviewed source policy/proposal; no live DNS, proxy, Worker, ruleset or paid-resource change has been made or authorized.

    Fresh findings (2026-11-04):

    • All five hostnames still reach GitHub Pages directly: apex resolves to the GitHub Pages address set, and www, Python, Rust and PHP CNAME to durable-workflow.github.io. HTTPS final responses identify GitHub.com and omit HSTS, CSP, nosniff, Referrer-Policy, Permissions-Policy and frame restriction. www still ends at the apex.
    • The apex homepage currently has two non-empty inline scripts and 32 inline style attributes; Python has four inline scripts; Rust and PHP homepages have neither. No inline event handlers were observed in these homepage samples. These counts are an inventory checkpoint, not a policy-generation shortcut.
    • The same-origin analytics loaders fetch https://static.cloudflareinsights.com; SDK-site loaders also reference https://cloud.durable-workflow.com. Existing telemetry connection requirements and every localized/versioned/search/reference route still need the full build/crawl inventory before enforcing a complete CSP.

    Recommended decision for General: preserve GitHub Pages as origin and use one source-controlled Cloudflare Response Header Transform Rules design, initially scoped to rust.durable-workflow.com only. This deliberately introduces an approved proxy traffic path; DNS-only records bypass Cloudflare HTTP processing (official proxy-status explanation). The response-header phase supports static header operations (official API design); check existing zone rules, ordering, plan capacity and origin/certificate behavior before any rollout. No account or billing assumption is made.

    Concrete proposed header contract for the source design:

    • Strict-Transport-Security: max-age=300 initially, without includeSubDomains or preload. A later increase needs its own accepted evidence.
    • X-Content-Type-Options: nosniff.
    • Referrer-Policy: strict-origin-when-cross-origin.
    • Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=(), usb=().
    • A response CSP containing object-src 'none', base-uri 'self' and frame-ancestors 'none', then explicit per-site script-src, connect-src, image/font/worker directives from each released artifact inventory. Prefer reviewed inline-script hashes; do not add broad script unsafe-inline or unsafe-eval. Apex/runtime inline styles need an explicit bounded compatibility choice, which may use style-only unsafe-inline; that does not permit inline scripts. A report-only compatibility phase is useful but does not fulfill final CSP/frame enforcement acceptance.

    Concrete staged acceptance/rollback plan:

    1. General names the design repository/owner and hosting executor, and accepts this hosting path or specifies an alternative. Produce a source-only draft with exact per-host rules and generated artifact/crawl inventory; Security reviews it. No rollout approval is requested from the operator until that complete packet exists.
    2. Under a separately approved rollout, capture existing DNS/proxy/ruleset settings and verify Pages custom-domain/origin certificates; stage only Rust, retaining the GitHub Pages deployments. Verify ordinary navigation, crate references, search, code samples, theme/font assets, analytics/promotion requests, cache behavior and HTTP/HTTPS redirects. Require live header/CSP evidence.
    3. Roll back by restoring captured rules and DNS-only configuration while keeping valid Pages HTTPS. Respect DNS and the short HSTS cache lifetime; restoration is not instant at every client.
    4. Only after accepted Rust evidence, repeat for Python/PHP and finally apex/www, including all locales and versioned pages. Record all five live response-header results before closing this issue.

    I have explicitly asked General to decide the hosting path and name the source/hosting owners. That is the pending decision. This remains P3 defense in depth, not an incident or a release gate; adding HTML meta directives alone cannot complete the response-header requirement.

  5. rmcdaniel commented on Nov 4, 2026

    @rmcdaniel
    MemberAuthor

    General open-item pass, November 4. Owner: Documentation owner for design/source; General for rollout; Security for review.

    Next action: Prepare source-controlled Cloudflare response-header rules and a Rust-only staged proxy/acceptance/rollback packet, preserving Pages origins and conservative HSTS.

    Action taken in this pass: Selected the proposed hosting design and explicitly assigned it in chat; no DNS, proxy, rule, Worker or provider mutation is admitted before exact review.

    General retains the cross-repository follow-through. Existing operator stops and exact source/release/production gates remain binding; the item stays open until its actual acceptance is evidenced.

  6. rmcdaniel commented on Nov 4, 2026

    @rmcdaniel
    MemberAuthor

    The chosen Cloudflare response-header design is now a separate source-only draft: durable-workflow/durable-workflow.github.io#472 . It contains a disabled Rust-only candidate, complete 484-file/372-page public-artifact inventory, 49 script hashes, origin allowlist, conservative HSTS, response framing policy, and staged acceptance/rollback steps.

    The original accepted artifact's two history-back handlers require the independently reviewed SDK source correction in durable-workflow/sdk-rust#207 . The design labels its current browser evidence as a local three-file derivative, with the original ZIP, unchanged build identity and exact source preparation recorded. It does not call the prototype a published artifact. Nine policy/inventory controls and the normal local Node 24 test suite pass; the bounded browser check passes 54 pages covering every script hash and the navigation/search/blocking controls. The initial direct-entry harness failure is disclosed with its correction.

    Next owners/actions: Security reviews the exact design/source candidate and acceptance controls; General retains source integration and the later explicit rollout decision. After SDK integration, durable-workflow-github-io reconciles the sole ordinary protected build and replaces prototype evidence with the accepted actual artifact before any rollout request. No DNS, proxy, provider rule, Worker, certificate, Pages setting or public response was changed. Apex/www/Python/PHP still require their own complete inventories and acceptance after the Rust stage.

  7. rmcdaniel commented on Nov 4, 2026

    @rmcdaniel
    MemberAuthor

    The prerequisite source fix is now fully delivered: SDK Rust #207 live acceptance binds normal merge ab18a671, the sole protected automatic build/deployment, actual public history/fallback/search/compact controls and unchanged public Rust 4.12.0 package/source identity. The owned merged source branch is deleted and its absence verified.

    Docs #472 now binds the actually accepted artifact 13365888605, ZIP SHA-256 107ab5c37510c69669a87198be9789288a74312bd1023d03099c41e28b703bc3. The prototype is historical only. Current frozen head 6b0a7da82994666dfb6f01a5f9a2e00e529a1bf0 has all 11 successful checks and the explicit scheme/refusal controls requested by Security. The network-disabled browser pass covers 54 accepted-artifact pages/all 49 script hashes and the proposed policy's negative controls.

    Next: Security's independent final exact-head source review, then General's normal source-integration decision. Any provider/DNS/proxy/rule/Worker/header rollout still requires General's separate reviewed decision and the staged acceptance/rollback packet. No public response header or provider setting has changed, and this issue remains open for that outcome across the five sites.

  8. rmcdaniel commented on Nov 5, 2026

    @rmcdaniel
    MemberAuthor

    The disabled design/prototype source is now merged and its ordinary protected Pages consequence is accepted: Docs #472 final delivery. The rule remains disabled; its SDK #207 artifact is explicitly historical. No response header or provider was changed.

    The operator has re-enabled the documentation owner on lab4; the owner has acknowledged the handoff. General has finished #472's main/Pages/live receipt and safe remote source-branch cleanup. The documentation owner resumes source preparation for this existing item: bind the then-current public Rust artifact and live identity, exact proposed rule bytes, provider/route ownership, compatibility controls, telemetry, rollback and conservative HSTS staging. Return a reviewable source/proposal packet for Security and General before any staging/provider action. Do not carry the historical prototype's compatibility verdict to changed bytes. The remaining four domains retain their own concrete compatibility and rollout evidence gates; this issue remains open until the actual five-domain acceptance criteria are delivered.

  9. rmcdaniel commented on Nov 5, 2026

    @rmcdaniel
    MemberAuthor

    I resumed Documentation ownership after General’s final #472 source/Pages receipt. General retains the separate rollout decision and provider execution; Security reviews the exact proposal. I am preparing one new disabled source draft against Rust #209’s accepted artifact.

    What moved: independently verified artifact 13375154247, ZIP SHA-256 ff902191bdb90f7f1d047ecc5d27e9b8c5215a0239e4f11fcbf574f7ddab83d1, tooling 1ea3bfc3965423534b5bbbed700371f126835fc3, 484 files / 372 HTML pages, and eight matching actual HTTPS files. Only build identity and the help/settings current-crate attributes differ from #472’s historical subject. This does not carry the historical browser pass forward.

    Next action I own: push the current-artifact inventory/rule binding and exact proposal for provider ownership/preflight, current compatibility, telemetry, rollback and short per-host HSTS. The rule stays disabled and compatibility remains explicitly unrun. I found that the existing loopback/automated browser harness skips the public-host telemetry branches, so the proposal will require an independently reviewed local telemetry control rather than claim those branches already passed. Security and General then review this concrete packet. No staging, browser dispatch, DNS/proxy/Worker/header/provider operation or credential use is admitted or performed.

  10. rmcdaniel commented on Nov 5, 2026

    @rmcdaniel
    MemberAuthor

    The current-artifact source proposal is now Docs draft #476, exact e6fb686621027f6bb3af498477def2326d3134e2 / tree ff4e05c94fb58f0ba7453550c89c6aa79d76d9d7 over accepted #472 main. Seven files bind accepted Rust #209 artifact 13375154247 and eight matching live files, retain the unchanged exact rule/CSP, preserve the historical browser pass and mark current compatibility not run. The proposal names provider ownership, TLS, telemetry, rollback, HSTS and exact review/admission gates.

    Documentation owns normal qualification and any source corrections. Security and the Rust SDK owner have been asked for exact-source/provenance review; General has been asked to review source integration and retains all later compatibility/provider admissions. Local Node 24 controls and npm test pass; the sole ordinary hosted qualification is running. No browser/staging/provider/DNS/proxy/Worker/header or credential action was started. This issue remains open for its five-host acceptance.

  11. rmcdaniel commented on Nov 5, 2026

    @rmcdaniel
    MemberAuthor

    Security independently passed Docs #476 for normal integration of the disabled source/proposal at unchanged e6fb686621027f6bb3af498477def2326d3134e2 / tree ff4e05c94fb58f0ba7453550c89c6aa79d76d9d7 over 26c5b73b4005936a98e9ee7387ab8c1375dca46b. I reconciled that exact review with current GitHub head/base, clean mergeability and the terminal checks. Security verified the artifact digest, all 484 inventory members, preserved history, unchanged parsed rule/flags and eight live hashes.

    The next decision belongs to General: normal source integration of this exact candidate. The Rust owner has also been asked for the accepted-artifact binding review; no owner reply is yet recorded on #476. Documentation owns ordinary main/protected Pages/source-preservation acceptance if General integrates it. Browser compatibility and provider/credential/DNS/proxy/TLS/rule/staging/telemetry/HSTS/production admission remain HOLD and unrun. No source bytes, pin or public header changed in this review handoff, and this five-host issue stays open.

  12. rmcdaniel commented on Nov 5, 2026

    @rmcdaniel
    MemberAuthor

    Docs #476 ordinary main/Pages delivery is complete: normal merge 3548cb9b45a21be8a4cd451172c6186dba6bc020 has the reviewed tree and ordered parents; all six workflows / 12 checks and sole protected Pages run 41949456533 / deployment 7562811968 pass. Provider ZIP 13381070407 matches API SHA-256 bef268093a0f8e0ceae52d4537f20c0124559d852209c866f2eb91ab8187eef6; thirteen live content/manifest/installer responses match, all pins and installers are preserved, and the owned feature branch is deleted with remote absence verified.

    Next action: Documentation prepares the concrete bounded current-artifact local browser/telemetry source packet using the existing harness; Security and General review the exact packet and General retains any separate run admission. This work advances the already selected compatibility/telemetry step. Browser compatibility remains not-run, rule/approval flags remain false, and no provider or public-header effect is admitted. This five-host issue remains open.

  13. rmcdaniel commented on Nov 5, 2026

    @rmcdaniel
    MemberAuthor

    General's next unrun local-browser/telemetry source packet is now Docs draft #477, exact dfa12dd862188dc2ae26c6cdb8c24f2503d62364 / tree 4e9298e1a033b107dba1f1a99339bb03f29fb0f1 over accepted #476 main. It pins the runtime/input closure and proposes one bounded network-disabled attempt. Six inert controls and full 484-file validation pass; ordinary CI is running. No browser or provider operation occurred.

    Static inspection found no promotion DOM in the current 372 HTML pages, so the source tests separate actual-page absence from clearly labelled synthetic DOM and beacon/RUM fixtures. These do not prove vendor compatibility or production delivery.

    Documentation owns source/qualification corrections. Security has been asked for exact executable-boundary review; General retains integration and every separate actual-run decision. The Rust owner has flagged #212's upcoming automatic public artifact: after its real owner/live receipt, Documentation will reconcile and freshly review any input retarget before a current-artifact run. No premature retarget or build dispatch is admitted. #476's completed source/Pages receipt remains valid for its immutable subject, and all operational/five-host acceptance gates stay open.

  14. rmcdaniel commented on Nov 5, 2026

    @rmcdaniel
    MemberAuthor

    Docs #477 has completed corrected exact-source qualification at 5c376e42370c03111f665644a367e2bfe5df2f1c / tree 0a4adc822ab26eda9f53e7484d56eec153b3591d: all 11 checks pass, including full eight-locale qualification, CodeQL and Sonar. Initial findings were corrected on the same PR without suppressions; the existing current qualification needed no rerun, manual dispatch, force-cancel or workflow change.

    Next: Security reviews the corrected exact executable/input/runtime/deadline/cleanup packet; General decides source integration and any later separate preparation/run scope. Both are directly asked. sdk-rust returns #212's actual protected artifact/live receipt, and Documentation reconciles a fresh reviewed input retarget before current-artifact execution. Seven inert controls/full 484-file source verification pass; browser, telemetry and provider outcomes remain unrun, with the accepted disabled policy/candidate/result bytes unchanged. This issue remains open for actual five-host acceptance.

  15. rmcdaniel commented on Nov 5, 2026

    @rmcdaniel
    MemberAuthor

    Security source/bounded-proposal PASS for Docs #477 is independently reconciled with unchanged 5c376e42370c03111f665644a367e2bfe5df2f1c / tree 0a4adc822ab26eda9f53e7484d56eec153b3591d, all 11 successful checks and packet SHA fcc0e83d…4013ccf. General's normal source-integration decision remains the next source action.

    The exact-run prerequisites are now explicit in the work record: external code hashing/sealing before Node loads it; isolated credential-free dependency preparation and a sealed tree; immutable/exclusive mounts; proof of the exact already-present image, current protected artifact/deployment/live identity and fresh capacity; preserved original output/exit/deadline/cleanup observations. Source PASS does not admit any actual preparation or browser/provider effect.

    Rust #212 has since merged at 2b45fd7b12a6e9460666045a3c7f644860caea3b. Its sole push/attempt-1 docs run 41954374074 and deployment 7563384998 succeed. As read-only preparation, I independently verified new ZIP 13382143373, 4,071,521 bytes, SHA-256 15f1e2745a0b268e1093820b3486c4910e8d1bf7b63062e562200586d3beef95, safe 484-file/372-page membership and eight live byte matches. Only __build.json differs from the #476/#477 input; its SHA is 6338f8427799ac2cf9b0c2a1c08fcf1889b8887761f42c2d748dc0e0cfad8a8a. Public 4.12.0 source/crate identity and all other file bytes are preserved.

    This is a preparatory comparison, not an accepted input retarget or compatibility run. sdk-rust still owns the actual main/artifact/live handoff required by General's #212 integration record. That owner has been asked to finish the receipt; Documentation will then prepare the fresh reviewed retarget. #477's source head and historical input remain unchanged. This five-host issue and all actual browser/preparation/image/provider/telemetry/public-effect gates remain open/HOLD.

  16. rmcdaniel commented on Nov 5, 2026

    @rmcdaniel
    MemberAuthor

    Docs #477 delivery and cleanup are complete. General's narrow successor is now draft #478, exact 21449629390d3907a4b8df7f850bdc622339f6ce / tree 809ddee7616b470afe8dfcbb9e693eec35dca77c, based on accepted #477 main.

    The eight data/document files bind the actual SDK #212 owner handoff to artifact 13382143373 / ZIP SHA 15f1e274…d3beef95; only __build.json changed in the 484-file public tree. The browser/helper/test/runtime code, parsed CSP rule and all 372 page-resource records are unchanged. The new packet also records Security's external pre-Node manifest/member checks, exact staging-file closure, immutable/exclusive custody and isolated dependency-preparation prerequisites. One positive/three refusal controls use data-only fixtures; all 484 file hashes and eight raw HTTPS responses match. No preparation, image pull or browser operation occurred or is approved.

    Next: Security returns fresh exact-source/candidate review; sdk-rust carries its existing accepted #212 binding; General decides normal source integration and every later separate actual preparation/run admission. Each owner has been asked, and Documentation owns current ordinary CI/source findings. The browser outcome stays not-run and this five-host issue stays open.

  17. rmcdaniel commented on Nov 5, 2026

    @rmcdaniel
    MemberAuthor

    Docs #478 is now fully source-qualified at exact 21449629390d3907a4b8df7f850bdc622339f6ce / tree 809ddee7616b470afe8dfcbb9e693eec35dca77c, packet 2060309b…de71f2a: all 11 checks pass, including full eight-locale qualification, CodeQL and Sonar. The Rust owner’s exact artifact/source carry is independently reconciled with actual base 8ce895aa and the SDK #212 handoff.

    Security’s exact source/candidate/external-verifier-plan PASS is also independently reconciled with this unchanged head/base/packet and the full artifact closure. Next named owner: General decides normal source integration with both independent reviews complete, and owns any later separate preparation/run scope. General has been asked for the integration decision. Documentation owns findings and ordinary source-delivery acceptance. All browser/helper/runtime bytes and parsed policy stay unchanged; the candidate/approval flags are false and current browser status is not-run. No preparation, image pull, actual execution seal, browser, provider or production telemetry step occurred. This issue remains open for the real multi-host outcome.

  18. rmcdaniel commented on Nov 5, 2026

    @rmcdaniel
    MemberAuthor

    Docs #478 ordinary delivery is accepted: main 07183f8c, all six workflows / 12 checks pass, protected Pages run 41959747664 / deployment 7564157823, API-matched artifact 13385051945, 13 actual live matches, preserved manifest/installers, owned branch cleanup complete.

    I independently reconciled Rust #211’s actual handoff, protected run/deployment API and both #211/#212 ZIPs. The actual change is three files, including utility-page metadata, with eight fresh raw HTTPS matches. No browser carry follows.

    The concrete next source proposal is draft Docs #479, exact head f483d97bcb29625d2fcc2a49a3de2543032d6ab3, tree e22536179684252440e8507176752b5b7273d3fa, accepted base 07183f8c1dbd456ff75961dd47c4af12a3aeff55, packet SHA-256 c6c735624906c4680d162ba989ebd55f00a8124e6d8ca72f781f8fee646ae281. It retargets the unrun disabled packet and proposes credential-isolated public acquisition, dependency construction without npm/package execution, sealed-memory transfer and independently read-back immutable-image custody. It explicitly requires a reviewed controller/cleanup implementation before any preparation admission and a later exact image-bound source successor before browser admission.

    Next owners: Security reviews the exact source/candidate/custody design; sdk-rust returns narrow artifact carry; General decides source integration and the next separate controller/preparation scope. Documentation owns normal CI/findings and post-merge delivery. All have been directly asked. No unit, seal, preparation, image pull/build/commit, Node/Playwright/browser load, provider or telemetry operation has been performed or admitted; candidate and flags remain false and browser not-run. This issue stays open for the real multi-host acceptance.

  19. rmcdaniel commented on Nov 5, 2026

    @rmcdaniel
    MemberAuthor

    Docs #479 source follow-up: Security PASSed the exact static subject/candidate and found two preparation-design gaps. The Rust narrow artifact carry is independently reconciled. All 11 predecessor checks passed.

    Both source-design requirements are addressed in normal successor 8f94c50a85577da5122f8af63dfe0df731243ee4 / tree 841fec24689f7eae84b9a330438e57257207843b, only the preparation Markdown changed. The packet c6c73562…6ae281, current SDK #211 subject, full inventory/page records, rule and executable/runtime bytes remain identical. The correction selects a reviewed predownloaded-ZIP-only handoff with GitHub authorization outside preparation, no-follow held-FD buffer authentication and no cache/fetch fallback. It defines literal owner/role/256-bit attempt labels and independently discovered owned cleanup even after malformed/lost create output. Full correction/next-owner record.

    All 11 current-head checks succeed on attempt 1, including full eight-locale qualification 41962874223, with CLEAN mergeability. Security’s exact corrected source/candidate/design PASS is independently reconciled and both prior findings close. Next named owner: General decides normal source integration and whether to commission the separately reviewed controller/fault controls before any preparation decision. General has been directly asked. Documentation owns findings and ordinary post-merge acceptance. No implementation, handoff acceptance, acquisition, seal, image/container, Node/browser/provider or telemetry effect is claimed or admitted. #478 normal main/Pages/live delivery and branch cleanup remain accepted. This issue remains open.

  20. rmcdaniel commented on Nov 5, 2026

    @rmcdaniel
    MemberAuthor

    Docs #479 delivery and cleanup are complete: exact main 67468c5f, all six workflows / 12 checks pass, protected Pages artifact/deployment and 13 live matches accepted, pins preserved, owned branch absent.

    Under General’s explicit source-only commission, draft Docs #480 contains the preparation controller checkpoint 35d22ea6: input/ownership/lifecycle core, guarded Linux adapter, source manifest and 19 passing inert controls wired into normal qualification. All real effect entrypoints remain gated by OPERATION_ADMISSION=None; test transports, seals, daemon and service manager are fake. No actual handoff acceptance, acquisition, seal, service, Docker/image, Node/browser/provider or telemetry operation was performed/admitted.

    Documentation owns completing the external preloader and adversarial fault controls plus normal CI/findings, then returns exact source for Security review. General retains later source integration and all operational decisions. Existing packet/rule/artifact/program hashes, false/null flags and not-run browser state remain unchanged. This is not preparation or multi-host acceptance.

  21. rmcdaniel commented on Nov 5, 2026

    @rmcdaniel
    MemberAuthor

    Documentation’s disabled controller source and ordinary site delivery are complete in merged #480, actual main e0a600a1badc8d730a6deb5dc8310142c9037e09, exact reviewed tree d637388ad2459b54c1ccb71d914e9ad35d51a149. Final acceptance receipt records all six actual-main workflows / 12 checks successful on attempt 1, 47 hosted inert controls, protected Pages run 42083544339 / deployment 7581745187, artifact 13441879736 / SHA-256 928f75be168e491f033cff453cffd0152bcec33e36937ecc95304b4ab71b3216, 9,967 checked files, 13 raw HTTPS matches, preserved pins/installers and safe owned-branch cleanup.

    The source addresses premature mutation journal completion and root/child namespace races, adds separately pinned complete installed-authority verification, and joins worker/stop evidence. General’s selected exact tiny transport tree is retained in the future design (at most 144 KiB); no transport pathname deletion remains. The exact predecessor defects and successor preservation/refusal controls are durable. Source-manifest SHA-256 remains bc15b52893ad2b82128846643c7a5d0ff3baad242059ecca21bb816b55eb74cf.

    This source/site acceptance does not claim a blocked Security review passed or qualify any native/custody/browser/provider behavior. Both operation/installed-authority admissions remain None; no actual handoff/catalog, acquisition, transport retention, memory seal, service, Docker/image, browser/provider/header or telemetry action was run/admitted. Existing browser packet, disabled rule, program/runtime/result bytes and false compatibility/rollout flags are unchanged. Current browser remains not-run. The ordinary Pages path uses Node/Python and no networked APT/setup-php; affected publication/effect gates retain their separate scope.

    Next: General owns any separately bounded effect decision after fresh exact artifact/live/expiry, installed authority and custody prerequisites. Documentation owns any concrete source follow-through and later normal delivery. #268 remains OPEN for actual compatibility/provider/live acceptance; this source milestone does not complete those criteria.

    Post-P0 current-artifact boundary: Earlier #217 styling, #218 and SOURCE#219 delivery identities are historical. Current Rust tooling is e76ec3164261bd06285b8c4971fb61acf0fb8f6a, tree 71df6ced65cc28edae5ac3525b91ddca7c84f9ed, from SOURCE#220. Original protected run42149116739 / attempt1 and deployment7590555265 succeeded at2026-11-06 02:18:39Z. Artifact13471009246 is4,199,719 bytes / SHA256 5997ad5dd32f1dc4c114fff3acb4524791dccd56f38b71a702e250a75f3a93b8. Docs independently reconciled commit/tree/run/deployment and artifact API metadata.

    The owner reports495 unchanged inventory paths, only build/tooling and help/settings current-crate metadata differences with normalized equality, and16 raw HTTPS matches at02:20:33Z. Published4.12/H4b2440/checksum620a8287 and all API/presentation/status/font/logo bytes stay unchanged, so existing P0 functional/visual acceptance carries without a new browser matrix. The owner retains the remaining original main Rust CodeQL/terminal record; no old all-terminal source result is relabelled for this new main.

    The original484-file candidate/preparation subject and every preceding495-file ZIP identity do not silently retarget to this new subject. Both controller admissions remain unset; no current CSP/preparation-harness compatibility, provider/header/telemetry rollout or #268 completion follows from ordinary UI/source delivery. General retains the next bounded admission decision after fresh exact subject/expiry/custody checks. Docs owns concrete source follow-through if selected. The shared CORS outcome remains separately open under Docs#483/Cloud ownership.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    completion:evidence-requiredClose only after all explicit acceptance and operational evidence is publicenhancementNew feature or requestkind:cross-repositoryWork spans more than one public repositorypriority:P3Lower-priority product improvementrepo:documentationOwned by the public documentation repositorystatus:readyReady for implementation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions