Skip to content

fix(collective): ship alpha22 slow-network and Windows recovery - #167

Merged
zts212653 merged 7 commits into
mainfrom
fix/f290-slow-network
Oct 29, 2026
Merged

zts212653 merged 7 commits into
mainfrom
fix/f290-slow-network

Conversation

@zts212653

@zts212653 zts212653 commented Oct 29, 2026 •

Copy link
Copy Markdown
Owner

The deployed Collective sends a 3,369,852-byte uncompressed script on every load with no-store; a real read through the owner's existing SSH entry took 7,966 ms. This change prepares gzip once when the Service starts and revalidates verified public assets with an ETag. Per-request HTML nonces and all API responses remain no-store; origin rejection still occurs before the asset responder. Cached responses vary by both Origin and Accept-Encoding.

Validation: focused HTTP integration tests pass 5/5, covering decoded-byte equality, conditional 304/stale 200, two allowed origins, explicit gzip refusal, nonce-bearing HTML, API cache exclusion and denied origins. The two-origin cache test was observed RED before the Vary correction. A real Service + compiled Core Client + production Host/plugin journey at 700 ms delay per Service API completed home, partner confirmation, route publication and the entry guide: home 7,439 ms, guide 15,420 ms, zero page errors or failed requests. This is a controlled local fixture, not a live deployment claim.

Companion Core PR zts212653/cat-cafe#6326 is merged as 69046fdcd4b2b8168a48a323692027951bab0c5b, including #6321's Topic repair. The retained Client is exported from that exact main source, with all 570 source inputs and 282 dependency inputs verified, no overrides, and asset digest 0482ab0bcb83b8e9ab9bfb21c4bf092d729a43c2cc711318880ad3f07537822e.

This release also preserves exact reviewed Windows commit 7a4f7786c7a2c32468e021c624e5fb24687856b0 from #168: directory fsync is skipped only on win32; ordinary file sync, atomic replacement and non-Windows errors remain enforced. Its eight files match the separately reviewed commit. #168 could not independently pass the immutable catalog gate without a new version, so its author requested this combined alpha.22 release; #168 remains with that author for superseded disposition after this lands.

Final candidate alpha.22: 4,609,279 bytes, SHA256 e06d9b13ae4c8841cfc6edb4ae5a8c45e8dcabe3c6ef6d75a4b6868ac57421ba, SHA1 e5bd4cd216a4416658d432b90c0cbcf46b12730a, SRI sha512-rIbsKosJBKLYgTh2UbMZHvVM7FbhtQMIvr6A5GlzTghSpXkTSRGrJyFokolWEy6lJZxsGE11Qo5+Th9fvt7k/w==. Two canonical packs with Node 24.18.0/npm 11.16.0 are byte-identical; all 1,285 installed package files match. Prior candidate identities remain intact and live catalog is unchanged.

The complete local pnpm gate:ci passed all 37 steps in 780 seconds, including installed lifecycle/CLI, source continuity, machine catalog and immutable registry checks. The initial source-only CI failed because the installed consumer compared Fetch-decoded bytes with compressed Content-Length. Its five-line correction now checks that header only for identity responses while preserving every decoded manifest length/hash and HTML nonce assertion; the actual installed journey passed in the full gate.

The repeat browser run against the installed alpha.22 package did not enter: resource admission remained critical for 15 minutes and timed out. That result is retained as unexecuted. Normal rendering/entry reuses the successful 19:38 production journey plus independently reviewed R2 transport deadlines (normal path below 30 seconds), exact Client input/installed-byte provenance, and actual installed HTTP/lifecycle coverage. No screenshot from the earlier source cut is labeled alpha.22. Real Windows desktop acceptance and live deployment remain separate.

Risk: HTTP public-asset response/cache semantics and an independently reviewed platform-specific directory durability correction. No API schema, auth policy, dependency or stored-state format change. Independent review is required; this PR cannot be self-merged.

Architecture cell: collective-runtime. Map delta: none. Why: retain the manifest-verified asset owner and existing HTTP security boundary while avoiding repeated transfer and compression work.
Canonical source: client-assets.ts#loadCollectiveClient and http-router.ts#createCollectiveHttpHandler.
Consumer evidence: client-assets-http.test.ts exercises the real server and security preamble; the browser fixture uses the retained compiled Client and production plugin entrypoint.
Claim guard: the HTTP suite rejects uncompressed/unvalidated responses, shared-origin cache headers and any cacheable nonce/API response.

Accepted-Source-Ref: thread_mvqgn68h22c18bl2#0001793296173930-000133-e5c16e2f
Accepted-Revision: 0001793296173930-000133-e5c16e2f
Task: 0001793171008926-000485-47fbfb81

[小星星·砚砚/gpt-6-astra🐾]

zts212653 and others added 7 commits October 29, 2026 11:41
Why: the private SSH deployment retransmitted an uncompressed multi-megabyte Client on every visit. Precompress verified JS and CSS once, revalidate immutable public bytes with an ETag, and keep nonce-bearing HTML and authenticated Service JSON no-store behind the existing origin checks.

[小星星·砚砚/gpt-6-astra🐾]
Why: validate the slow-network Service change on the current plugin integration base before review and packaging.

[小星星·砚砚/gpt-6-astra🐾]
Why: public assets carry the authorized request origin in CORS headers. Include Origin in Vary alongside encoding so a cache cannot reuse another Host origin response. A two-origin conditional request regression was RED without this header and is now GREEN.

[小星星·砚砚/gpt-6-astra🐾]
Why: The real Windows desktop consumer reached a fully written owner bootstrap file, then failed plugin activation because Node rejects fsync on directory handles with EPERM. Centralize directory durability so Windows skips only that unsupported metadata flush while every file fsync, rename, permission check, and non-Windows I/O error remains enforced.

[小太阳·砚砚/gpt-5.6-sol🐾]
Why: the installed consumer compares Fetch-decoded bodies with a compressed Content-Length. Keep the identity-body header assertion and every manifest length/hash and HTML nonce check while allowing the independently verified gzip representation.

[小星星·砚砚/gpt-6-astra🐾]
Why: PR168 must share the next immutable Collective package with the slow-network fix. Preserve its exact reviewed source commit and directory-only Windows behavior instead of changing an already published version.

Windows source review: local-review:0001793303748172-000104-a515d082:approved
[小星星·砚砚/gpt-6-astra🐾]
Why: publish one immutable package combining the slow-network Client and static asset fix, the landed Topic repair, and the independently reviewed Windows directory durability repair. Exact Client inputs match main 69046fdc; two pinned-toolchain archives match and all 37 local release gates passed.

Core source: 69046fdcd4b2b8168a48a323692027951bab0c5b
Windows source: 7a4f778
[小星星·砚砚/gpt-6-astra🐾]
@zts212653 zts212653 changed the title fix(collective): compress and revalidate public Client assets fix(collective): ship alpha22 slow-network and Windows recovery Oct 29, 2026
@zts212653
zts212653 marked this pull request as ready for review October 29, 2026 20:40
@zts212653
zts212653 requested a review from mindfn as a code owner October 29, 2026 20:41
@zts212653
zts212653 merged commit d051c45 into main Oct 29, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant