Lower source-defined profiles into validated registries - #154
Conversation
|
Independent review by Codex task Actionable finding — [P1] validate unattached policy topology before exposing the registry (
That exposes an invalid source-local registry despite the PR/SEMANTICS/README/threat-model claims that topology is validated atomically and no partial registry escapes. Please validate every registered policy inheritance component for closed, acyclic, same-layer topology before returning, without treating unrelated optional overlay sets as though they were all attached together, and add missing-parent/cycle (ideally cross-layer too) cases where the invalid policies are not referenced by a profile. Proportionate checks otherwise passed: |
|
Resolved the P1 atomicity finding at exact head |
|
Fresh independent review by Codex task No actionable findings. The prior P1 is resolved: Reviewed the full code, normative S9.1/EBNF, README/threat/conformance/schema claims, deterministic artifact-identity parity, feature manifest, frozen reference-program deferred-front-end boundary, and hosted CI-plan update. Local checks passed: formatting and diff checks; all-target clippy with warnings denied; I will merge only this exact head after every required remote check is green. The issue and |
Closes #109
Outcome
§syntaxdefinitions to name one exact§extendsparentbhcp/feature.profile-source-lowering@0support and include the new target in the hosted test planRed-to-green evidence
Base after required rebase:
dd26643ce52c65a19b07ce98c9e57134ecc56a9d.The first focused source-to-artifact parity test failed before implementation with Rust
E0432:bhcp::pipeline::parse_profile_sourcedid not exist.After independent review exposed an unattached-policy atomicity gap at
ca2c79362e4742ed37f611c716e7fa6e18381246, the new unattached missing-parent case failed becauseparse_profile_sourcereturnedOk. The registry now validates each registered policy ancestry component independently, without composing unrelated optional overlay sets.After implementation and correction:
mise exec -- cargo test --test profile_source_lowering: 2 passedmise exec -- cargo clippy --all-targets -- -D warningspassedgit diff --checkpassedFull validation
The unchanged canonical gate passed from a clean, explicitly bounded experiment-controller scratch directory:
Documentation impact
Updated
SEMANTICS.md,README.md,THREAT_MODEL.md, schema/conformance guidance, the Phase 4 audit continuation, and the feature manifest. Wiki maturity/architecture claims will be reconciled in the required post-merge audit.Residual risk
This slice exposes the validated source-local registry through the Rust pipeline. The frozen reference program still stops at its already-declared unsupported
matchsource-expression boundary, and the complete CLI/source-to-IR audit remains assigned to later roadmap issues.Exact reviewed head
df873480f2b4f89798aa0cd78b36e5787ed201fe