Repository navigation
[PLT.46] Publish the four Security packages and record package-level integration evidence - #176
Merged
Merged
Conversation
… lines The PLT.46 IsPackable flip changes the ArcForges.Security.Secrets.csproj SHA-256 to 7282dd20...bff. Its inputHashes lines (dependency-policy.json at 4 and 6 spaces; receipt plt-46-r1 at 6 spaces) are generic-api-key false positives of the PLT.40 class. Under ruling S52(2) a new [[allowlists]] block (targetRules generic-api-key, condition AND, regexTarget line) binds exactly eng/policy/dependency-policy.json and eng/policy/dependency-reviews/plt-46-r1.json to the two exact whole-line regexes for the new digest. No existing block changes; the any-receipt group is not widened. eng/test_dependency_policy.py registers the block (count 5, exact tuple), keeps the historical digest pins and adds the active one, checks the actual csproj digest is one of them, allows the active line only in the PLT.46 receipt, and adds positive controls (same key with another 64-hex digest still fires; the same line under another path still fires) and negative controls (swapped or altered keys, trailing text, indentation, other rule). The actual files still carry the historical lines until the admission commit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Enable packing for ArcForges.Security, ArcForges.Security.Secrets, ArcForges.Security.Audit and ArcForges.Security.CapabilityEnforcement with the ArcForges.Contributions pack metadata pattern (ruling S52(3)): PackageReadmeFile, README/LICENSE/NOTICE.md pack items, test folders removed from pack content and a Description where missing. CapabilityEnforcement packs the parent Security README. Package IDs are the existing assembly names. Append the four managed rows to eng/packaging/packages.json with the dependency sets generated by dotnet pack (Contracts.Foundation 1.0.0-ci.216.1 for all four, Microsoft.Data.Sqlite 10.0.12 for Audit). Supporting files (ADP-07): factual packaging lines in the Security, Security.Audit and Security.Secrets READMEs (they ship as package readmes); the four csproj blobs in the active reconciliation inventory; dependency-policy.json input hashes (four csproj files and packages.json), review mirror and reviewReceipt; the new immutable receipt eng/policy/dependency-reviews/plt-46-r1.json chained from nat-11-r1 (reviewer w-deku-20261010-rev-plt-46, decision approved, closure unchanged at 58 NuGet and 10 Python coordinates) and its eng/provenance/files.json row. No lock, reference or version changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Correct the compilation, aot-trim, security-sbom and runtime-performance-migration upgrade checks of the receipt added by this change (and its mirror in eng/policy/dependency-policy.json) with what actually ran; no dependency input, hash or closure changes. - Pack at source commit d1bb49c (RepositoryCommit), version 1.0.0-ci.local.46: the six packages match their catalogue rows, carry the AGPL-3.0-only expression, README, LICENSE and NOTICE.md, one lib/net10.0 assembly each and no ContentSandbox, Native, parser or LocalRpcBoundary content. - One local opt-in clean consumer outside every checkout (source mapping to the candidate for the six owned IDs, lock and locked restore, warnings as errors): restored bytes equal the candidate, every external lock coordinate is in the receipt closure with the same content hash, and 136 of 136 checks pass under the JIT and as a Native AOT win-x64 executable (owner refusal at final validation, foreign capabilities, owner side without the gate, revision, lease and service-decision staleness between authorization and owner validation, mismatched and expired approvals, replay and withdrawn permission, egress, SecretBroker use without reveal, redaction and sibling denial including the opt-in Credential Manager round trip, and the durable AuditStore through EgressAuditSink and CapabilityLeaseEventAuditSink with a failing store refusing). - Finding recorded: registry capability keys are not canonical audit capability keys, so the durable audit sinks refuse them and the gate composition fails closed for registry capabilities. - OS isolation cross-referenced from PLT.45 (Windows); Linux blocked on a real Linux-kernel run of the PLT.45 profile, not proven; macOS not claimed. Supporting file (ADP-07): eng/test_desktop_rids.py moves its active receipt pin from nat-11-r1 to plt-46-r1 and keeps the GOV.30 receipt in the checked predecessor chain (the NAT.11 e4c7ba5 precedent); without it the hosted dependency job fails on the receipt added by this change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
Independent review record: PLT.46 epoch 1. Reviewer w-deku-20261010-rev-plt-46 (Opus 5.5), an independent session that authored nothing. Reviewed 61e11b7 for [PLT.46] epoch 1: approved. Verified:
Non-blocking (for the record):
|
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.
Publish the four ArcForges Security packages and record package-level real-integration evidence (WP-11.90 package acceptance). This is a selected row of the Final.md scope.
Claim: PLT.46 epoch 1 (w-deku-20261010-plt-46)
Task record: Design
docs/planning/delivery/delivery-graph.jsonPLT.46. Coordinator ruling S52 (brief section 12) narrows it to the four Security packages: helper, broker and per-RID helper packaging is out of scope and not completed. Planning repair fix8 carries the record text, and this PR merges after fix8.Commits
4a5e1eeadds a new exact-row gitleaks block (S52(2)) for the successor Security.Secrets csproj digest lines independency-policy.jsonand in receiptplt-46-r1. No existing block changes and the any-receipt group is not widened.eng/test_dependency_policy.pyregisters the block, with positive and negative controls, and moves the active-digest pin while keeping the historical one.d1bb49c: IsPackable on ArcForges.Security, Security.Audit, Security.Secrets and Security.CapabilityEnforcement, with the ArcForges.Contributions pack-metadata pattern (S52(3)): PackageReadmeFile, README/LICENSE/NOTICE pack items,None Remove Tests/**where a Tests folder exists, and a Description where one was missing. It has no PackageId, reference or version change. The commit also adds four rows toeng/packaging/packages.json, the reconciliation blob refreshes, the dependency input rebinding, the immutable receiptplt-46-r1(chained from nat-11-r1 with an unchanged closure; reviewer w-deku-20261010-rev-plt-46) and the files.json row.61e11b7records the pack and clean-consumer evidence inplt-46-r1.ADP-07 supporting files (beyond the record writes)
.gitleaks.tomlandeng/test_dependency_policy.py(S52(2)).eng/test_desktop_rids.py: the active-receipt pin moves from nat-11-r1 to plt-46-r1, and the chain check now also covers gov-30-r1 (the NAT.11 D5 precedent). Intermediate commit d1bb49c fails this test, and 61e11b7 fixes it, so the history is not bisect-clean at that one commit.Evidence (local, under CI conditions; hosted CI is authoritative)
IChatOperations.AppendUserMessage) fail closed. This is a WP-11 contract defect between the PLT.44 audit model and the registry/PLT.57 gate, and it is outside these writes. The coordinator assigns its fix before APP.03 composes durable audit with the gate. PLT.46 is therefore recorded delivered, not complete.Notes
TracePolicyTests(the process-wide ActivityListener). It passes on Linux and hosted CI runs Linux. Also pre-existing: the actionlintqueuekey in publish-nuget.yml.🤖 Generated with Claude Code