Skip to content

#546: #465 closeout record; signature optional for local packages - #548

Merged
raylei50653 merged 2 commits into
mainfrom
feat/546-465-closeout
Oct 8, 2026
Merged

raylei50653 merged 2 commits into
mainfrom
feat/546-465-closeout

Conversation

@raylei50653

Copy link
Copy Markdown
Owner

Closes #546 (on merge). Does not close #465. This submits the evidence and a recommended verdict for owner review.

Recommended verdict

ENGINEERING_COMPLETE — PUBLIC_DISTRIBUTION_DEFERRED. The record is docs/reference/native_runtime_closeout.md:

  • definitions of the two statuses;
  • an architecture / trust-boundary diagram marking mandatory [M] and optional [O] controls;
  • an acceptance matrix linking each claim to its merged PR, formal evidence, limits and tests;
  • the evidence-reuse rationale, the public-distribution blockers and the deferred work.

Public-distribution blockers (licence L-1..L-4, release key, publish decision) are tracked separately in #547.

Release policy (resolved config doc §21)

  • Mandatory (unchanged): SHA-256 digest, exact MANIFEST file set / hash / size / mode, atomic staging with RENAME_NOREPLACE, fail-closed install, runtime identity.
  • minisign is optional for local-only packages. install.sh already never read the signature. It is a runtime-identity input, so it stays byte-identical (afa5d06a…) and needs no republish.
  • check_shipping_package.py tarball:
    • The report gains an authentication field: none unless a signature was requested and verified.
    • A .minisig without --pubkey now fails release_set with an explicit message. A signature is either verified or the check fails; it is never ignored.
    • With --pubkey, a bad signature fails as before.
  • README.txt: a release is three files, a signed one four. It states what the digest/MANIFEST show (integrity) versus what the signature shows (publisher). An unsigned package must not be described as authenticated.
  • MANIFEST reading is unchanged, and so is the stale header comment in install.sh. Both are recorded as limits (§21.5).

Evidence (no GPU; contract c7581100 committed before the run)

Run: results/546_closeout/full_c7581100/, verdict PASS on V1–V3, E1–E4 and U1–U5.

Positive checks:

  • Tree: differs from PR-C4 r2 only in README.txt.
  • Unsigned package: tarball 7/7 PASS, authentication: none. Clean-container install passes install-trace 5/5, static --manifest 13/13 and --verify.
  • Signed (test key): 8/8 PASS, publisher_authenticated: true. Container verify exits 0.

Negative controls:

  • U1 corrupt digest (unsigned): refused, nothing created.
  • U2 .minisig without --pubkey: release_set FAIL.
  • U3 tampered digest: signature FAIL.
  • U4 wrong key: signature FAIL.
  • U5 pre-existing target: exit 2, nothing changed.

Runtime bytes are unchanged, so the PR-C4 r2 7-seq EXACT and G2-2/G2-4 evidence is reused. GPU evaluation was not re-run.

Tests

  • test_package_signature.py: unsigned release keeps all 7 integrity checks; changed digest still fails unsigned; signature without pubkey is not ignored; bad signature / wrong key is never authenticated; truth table of authentication().
  • test_shipping_package.py: the installer never reads a signature, and its output claims no authentication.
  • pre_push.sh: 5327 passed. The 2 test_h2_measurement_controller hygiene failures came from the uncommitted tree; both pass after commit (63/63).
  • --mode attested exits 0. No runtime-identity input changed.

Not changed

Runtime, installer, launcher, auditor, third-party set, licence audit, distribution status (local-only), numerics, tracker, detector, CI.

🤖 Generated with Claude Code

raylei50653 and others added 2 commits October 8, 2026 19:11
…ndatory

check_shipping_package.py tarball reports "authentication" (none unless a
signature was requested and verified); a .minisig without --pubkey fails
release_set instead of being ignored. README.txt: a release is three files,
a signed one four; digest and MANIFEST show integrity, not the publisher.
install.sh unchanged (it never read the signature). Contract: resolved config
doc §21.1-§21.3, written before the evidence run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
native_runtime_closeout.md: ENGINEERING_COMPLETE vs PUBLIC_DISTRIBUTION_READY,
architecture and trust boundaries (mandatory vs optional controls), acceptance
matrix (claim -> merged PR -> formal evidence -> limits -> tests), evidence
reuse, licence and signing blockers (tracked in #547), deferred work.
Recommended verdict ENGINEERING_COMPLETE — PUBLIC_DISTRIBUTION_DEFERRED,
for owner review.

Evidence results/546_closeout/full_c7581100/ (no GPU): V1-V3, E1-E4, U1-U5
PASS. The tree differs from PR-C4 r2 only in README.txt; installer unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@raylei50653
raylei50653 merged commit 54be85a into main Oct 8, 2026
8 checks passed
@raylei50653
raylei50653 deleted the feat/546-465-closeout branch November 13, 2026 11:10
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.

[465 Closeout] Native runtime acceptance and optional signing policy packaging: assess a prebuilt native runtime without end-user Python

1 participant