Repository navigation
Conversation
cargo-audit fails on every PR: zip 2.4.2 in elastos/Cargo.lock and in capsules/object-provider/Cargo.lock (through its elastos-server path dependency) has three advisories against ZipArchive::extract and the stream extract API. The runtime calls neither; it reads each entry itself. zip 9.0.4 is the patched release. - elastos-server uses zip 9.0.4, still without default features. 9.x has no separate flate2 feature; deflate-flate2 now enables the dependency. - Both lockfiles change only for zip: nix 0.31.3 and typed-path come in, derive_arbitrary goes. `cargo update -p zip` also moved unrelated range dependencies (windows-sys, getrandom); those lines stay as they were, and `cargo metadata --locked` accepts both files. - ZipFile::name now returns a Result. The ZIP readers report an error as "invalid ZIP archive entry". - Whole-archive extract keeps its rule for entry names. zip 9 enclosed_name turns "/a.txt" into "a.txt" and folds "x/../a.txt" into "a.txt", so an entry that extract refuses today would be written. The runtime now checks the name with the rule zip 2.x applied: no NUL byte, no root or drive prefix, no climb above the archive root. test_library_provider_extract_zip_refuses_absolute_dotdot_and_symlink_entries covers absolute, "..", inner "..", backslash and symlink entries. It passes on zip 2.4.2 and with this change, and fails on the Absolute.zip case when extract uses zip 9 enclosed_name. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6Qn9RX7LDqrwiAfNC2F2K
…call shape 32f1634 (renew Home authority in place) made Chat rebuild its Home Clipboard client from a clipboardOptions() helper when Home renews its token. The client, its fixed "chat-room" target and start() stayed the same, but the gate matched the literal text "createHomeClipboardClient({", so `just verify` failed on develop. The gate now requires the canonical client call, exactly one targetId in the file, equal to the fixed binding, and start(). A second or different target is now refused even when the call uses an inline object. scripts/home-clipboard-source-gate.test.mjs runs the gate on a copied tree and proves each refusal. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6Qn9RX7LDqrwiAfNC2F2K
The Clipboard gate ran only in `just verify`, so CI did not see Chat's change (32f1634) break it. scripts/test-source-gate.sh product-ui now runs the gate and its refusal test, so CI source-gate and the local pre-push gate both run them. `just verify` runs test-source-gate.sh, so its separate gate line is removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6Qn9RX7LDqrwiAfNC2F2K
zip 9 for RUSTSEC-2026-0367/0368/0369 so cargo-audit passes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6Qn9RX7LDqrwiAfNC2F2K
Contributor
Author
|
Review: A. The 6 Clipboard gate tests pass and CI now runs them. Ready for Anders once CI is green. |
Contributor
Author
|
CI on 4728164: This failure is not caused by this PR:
No fix exists yet. I can't re-run the job from here (403). It needs one re-run. Generated by Claude Code |
This was referenced Oct 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
node scripts/home-clipboard-source-gate.mjsis part ofjust verify, and it fails ondevelop:Cause: commit
32f1634d("fix(chat): preserve conversation drafts and renew Home authority in place"). After that change, Chat builds its client options inclipboardOptions(), and it tears down and rebuilds the Home Clipboard client when Home renews its token (chat-room.js:18-24,:65-69). Chat still uses the canonical client, still has the one fixedtargetId: "chat-room", and still callshomeClipboard.start(). But the gate matched the literal textcreateHomeClipboardClient({, which is now gone.Evidence: the gate passes with
32f1634d^:capsules/chat-room/browser/chat-room.js(exit 0) and fails with32f1634d:…(exit 1).git log -S 'createHomeClipboardClient({'names that commit.Decision: the gate was wrong, the code is right. The renewed token has to reach a new client, so going back to two inline option objects would only duplicate the binding to satisfy a text match. This PR does not change Chat or any product behaviour.
Changes
scripts/home-clipboard-source-gate.mjs: for each migrated capsule, the gate now requires:createHomeClipboardClient(call,targetId:in the file, equal to the fixed binding,homeClipboard.start().This is stricter than before in one way: a second or different target is now refused even when the call uses an inline object. The old check only asked whether the binding text appeared somewhere in the file.
scripts/home-clipboard-source-gate.test.mjs(new): runs the real gate on a copied tree. Chat as it is now passes. These changes are refused: a different target, a second target, nostart(), no canonical client, directnavigator.clipboard.CI did not run this gate.
.github/has no reference to it, so the break went unnoticed.scripts/test-source-gate.sh product-uinow runs the gate and its test, so both CI source-gate and the local pre-push gate run them.just verifyrunstest-source-gate.sh, so its separate line is removed.Tests
With
develop's gate, test 1 fails (not ok 1)../scripts/test-source-gate.sh product-uiexits 0. Theprepushsection reports 70 OK.git diff --check,check-product-dataandpublic-copy-entropy-checkare clean.Gaps
scripts/home-clipboard-headless-smoke.mjs, which this PR does not change.developor is merged here,cargo-auditfails and CI cancels the run.Generated by Claude Code