Repository navigation
J1 Core: finite project custody and closed persistent unlock carrier - #189
Merged
Merged
Conversation
…ution (kills a surviving mutation) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…e1babb2 (provisional; Core Hale verdict pending) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> # Conflicts: # .github/next-offline-suites.json
… purposes Config fixture now uses Core's closed format (roles.<purpose>, tls.root_cert_ref, client, limits); refusals must be Core's own reasons; serve/migrate/seed projections must target vault_root/secret_ref (refs differ from purpose names) plus the verify-full CA; seed admits bootstrap+installer_enrollment+api_request. Unchanged: rung_feature, ready, DB argv, finite order. RED run-11: 26 failed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…refs render.py drops its own JSON config parser, field defaults and pin: the config is read by Core's read_private_file + decode_config per mode view (serve, migrate, seed); refusals are Core's own reasons; operations/release use Core's decode and RC0 pin. Projections are the selected per-purpose Core refs at vault_root/secret_ref (cortex-v2-<name>, single-file, read-only) plus the verify-full root cert; no vault or secrets folder mount. Seed = bootstrap + installer_enrollment + api_request. Tests unchanged since 8b745c7: 60 passed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, refusals) The previous commit missed this file: it still described the provisional purposes map. Source and tests unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…er join test (identical blobs, no edits) Path-limited checkout from cox/cortex-a-day1-20261017 @ 8e1babb (dependency only; Cox owns these files): next/src/cortex_core/runtime/bootstrap_config.py 9232c23 next/src/cortex_core/runtime/credentials.py 1b2d751 next/src/cortex_core/runtime/contracts.py 1b35320 next/src/cortex_core/release/codec.py 902988e Not carried: Cox's manifest entries and tests (Mike/Cox own them); a full merge conflicts only in .github/next-offline-suites.json. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…s with renewed pins
…X-CI-001 (real Core carrier, mixed valid snapshots; pure module without PG; nine PG methods need a named home) RED at this commit (python3 -m unittest -v test_roles.RealCarrierJoin test_roles.CiHome): 8 run, 6 assertion failures (3 join, 3 CI), 2 healthy controls pass. Assertions are not changed by the fix commits. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…rojector stderr; child crashes are not assertions HALE-A1-BOB-CONFIG-001: leaf/parent symlink and relative --config must refuse exactly as Core's read_config_file does (private_file_required), nothing written. HALE-A1-BOB-PROJECTION-001: legal case/underscore, max-length and long-prefix refs get distinct DNS-label volume ids; a simulated derivation collision refuses projection_collision before publish. HALE-A1-BOB-LOG-001: projector stderr is never forwarded, on failure or success. HALE-A1-BOB-CAUSAL-001: render/wrapper/installer helpers raise ChildError (not AssertionError) on a traceback, bash diagnostic or undeclared exit, so a crash never earns a causal kill. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tor stderr render hands Core's read_private_file the caller's --config spelling unresolved (no early resolve), so leaf/parent symlinks and relative paths refuse private_file_required exactly as Core does, and the pod/plan mount the validated path. Projection volume ids are proj-<16 hex of sha256(ref)> via Core's codec sha256 (DNS label, whole case-sensitive ref); a duplicate Pod volume name refuses projection_collision before publish. The wrapper discards projector stderr; a failed projector gives the one projection_failed:<rc> line. Tests unchanged since 8a67694. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ity uniqueness (HALE-A1-NIX-JOIN-001) bind() refuses views whose shared fields differ (role_config_conflict:snapshot) and a combined set with a repeated login or resolved secret path (role_config_collision:login|secret) before any SQL is rendered. The RED assertions of eab9eea are unchanged: the three join tests now pass; the three CI-home tests stay RED until the split commit. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ne real-PG methods get a named home (HALE-A1-NIX-CI-001) test_roles.py is pure (19 methods, no native process, no import-time discovery); test_roles_pg.py holds RolesInDatabase (8) + SecretGuard (1) with byte-identical bodies and lazy PG discovery (missing toolset FAILS, never skips); shared pure fixtures in _fixtures.py; causal controls in mutate_join.py (5 mutants killed, healthy/restored pass); README documents the PG-gate fixture contract. The RED assertions of eab9eea are unchanged. Stock inventory now names test_roles_pg.py as unclassified until Mike admits its PG-gate home (shared manifest is Mike's). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ion, original deadline, fixed S4 receiver and failure unwind; 34 independent component RED cases (interface and intentional RED only) The arbitrary bootstrap_sink is retired for the fixed render.receive_bootstrap; make_secret stays a refusing skeleton. Component-only over named doubles; actual Core/S4 join NOT RUN. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… and callable project_key interface (skeleton only, every function refuses install_not_wired) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…handover (20 tests, 91 assertion failures, 0 errors; static controls pass) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ved key id and one-session fresh-descriptor handover (21 tests OK on 3.14.0 and 3.13.7; RED deciders unchanged, one test added) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…t level (55 closed tests GREEN unchanged, 5 supplementary; resolvers stay unbound) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… (Cox-authorized 3-line patch 89705f00, no reorder) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ackage, so the missing-join refusal and zero-effect bodies are exercised against a genuinely absent Core Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
# Conflicts: # .github/next-offline-suites.json
… but lacks one required private join name (7 names, each killed by the intended assertion) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…eal InstallerCustody (12 tests, 19 assertion failures, 0 errors); two closed-test spots made Core-presence independent Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…e's InstallerCustody and private admission (receiver follows S4); 14 join tests over the real owner GREEN on 3.14.0 and 3.13.7 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…tered test_make_secret_effect.py (no suites-file change needed); 19 tests OK on 3.14.0 and 3.13.7 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…t key and directory metadata and the original deadline after admission (7 failures, 0 errors; 2 controls pass) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…L, and re-check the original deadline, after admission before a descriptor is issued (30 tests OK on 3.14.0 and 3.13.7; RED tests unchanged) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
amad-malik
marked this pull request as ready for review
October 19, 2026 04:30
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
DRAFT C1 source composition at
d3a9311ed9032f2fb5b9349b69ea0473446e465b, treec1e414cfd9c46a4c22860c5ff4b96fefa88045f6. Exact Nix C1-01/C1-02 input9e11c9939aca18adfedd91ce09447372e0990716is merged cleanly into8638e0cb; only its project-key source/test blobs differ from that checkpoint. This head is FROZEN for Kai's existing Hale component-A closure check; no further push during review.All ancestry and the committed causal join test are preserved, together with Core/contracts/schema/CI source, existing writer inventory and all21 original migration bytes. No new mechanism, suite registration or unrelated edit.
Evidence
/Users/amadmalik/DevVault/helix/output/Cortex/finn-c1-fixes-v7-20261019. Earlier v6 report and425 indexed files remain unchanged.Original J1/J2 acceptance and the complete finite project-claim/admission packet remain open. J2/008, J3/J4 implementation, actual key/host/targetPG/native/installed effects and signed-helper closure remain held. The module alias in the causal source test supplies dynamic test identity only. Bob's prior S4/S5 findings retain their existing disposition. Kai owns the existing ONE Hale A closure check and canonical merge; this remains a draft.
Merge Danger
Door: two-way for source rollback; persistent effects require separate admission.
Blast Radius: custody
Credential failures
None in this continuation. An early artifact precheck returned workflow-in-progress, downloaded nothing and received no test credit; its raw result and corrected progress statement are retained in METADATA_ATTEMPTS.md.
Open items for Kai
Hale's existing C1-01/C1-02 closure check at this exact frozen head, then Kai's merge decision. No new reviewer, effect admission or J3 release requested. LEAN: reused exact owner fixes, original predicates, causal test and existing qualification; did NOT add a parser/backend/config path/suite; could merge none within this source commission.