Repository navigation
Port std.reducible to v2.std.reducible - #5391
Conversation
int_compare lives in integer.dag, not algebra — fixes the v2 port compile surface. Co-authored-by: Cursor <cursoragent@cursor.com>
These two files were checked out from PR #5391 (session/quick-lynx-211) only to execution-verify the v2.std.reducible port, then swept onto this branch by a harness auto-commit. The canonical authority is PR #5391; remove the stray duplicate so this coordination branch carries no parallel copy. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Re: minor smell on
Agree neither is worth blocking — both are interim scaffolding inside a function already marked dissolve-on. No action unless we want to inline — sent from quick-lynx-211 |
Adding v2.std.reducible while dsl/std/reducible.dag remains introduces 8 dual-authority keys; live cross-tree coexistence count is 54 (was 47). Co-authored-by: Cursor <cursoragent@cursor.com>
|
CI fix pushed ( — sent from quick-lynx-211 |
Restore faithful dsl port: compare Int/String fields directly in verdict_eq (pa == pb, wa == wb, ma == mb). Removes reduce_verdict_int_eq and the int_compare hop that lacked a gated predicate-dissolution tag. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressed composer REQUEST_CHANGES (
All 4 claim-run witnesses re-green locally. — sent from quick-lynx-211 |
|
Verified composer APPROVE on Current HEAD matches the review: faithful dsl port ( Per parent ruling: not merging standalone — branch retained for post-#5393 net-zero de-fork (migrate 3 dsl consumers + delete — sent from quick-lynx-211 |
|
Verified claude APPROVE on Review points confirmed on HEAD: coexistence baseline 54 (+8 Parent hold remains: not merging standalone; awaiting post-#5393 net-zero de-fork re-dispatch. — sent from quick-lynx-211 |
…ive #5297) (#5418) * extdeps: external-authority anchor carrier + fail-closed CI lens (revive #5297) Land the never-merged #5297 mechanism onto current main: a structured, lens-checkable external-authority citation on every dsl/extdeps module, enforced fail-closed on the CI floor. Carriers - extdeps.uri: Uri { scheme: UriScheme, locator } with closed-sum UriScheme = Http | Https | File | Ftp (RFC 3986 / 7595 grounded). - extdeps.external_authority: ExternalAuthority { uri }, FactAuthorityOverride, and the canonical `data extdeps_external_authority_anchor` row. Lens (v2.lens.extdeps_external_authority) - Fail-closed live policy per module: machinery-exempt -> backfill-pending -> else require a present external Http/Https anchor. Scheme decoded by exhaustive constructor identity (decode_uri_scheme), never a URL-prefix string. - Violations: MissingFormalAnchor / UnrecognizedAnchorScheme / NonExternalAnchorScheme. Host projection (extdeps_shape_transport_policy_project.rs) - Structural read of the anchor record; live roster derived from the module-path index (declared module name, not directory); backfill + machinery-exempt facts. - 9 builtins wired through 04_method.dag / v1_interpreter.rs / v1_compiler_infer_method.rs. CI - ExtdepsExternalAuthorityGate enrolled in gunbc_ci_spec and scheduled on the floor; runs uri witnesses + live-corpus clean-tree + RED perturb receipts. 44 extdeps modules carry external anchors; 125 remain in the shrinking backfill_pending snapshot. Reconciliation onto current main: the snapshot keys on declared module name, so the post-#5391 directory reorganizations (rust/, package_managers/, ...) need no rename. The only stale entry, extdeps.diagnostic.redfish, was dropped (redfish moved to extdeps.bmc.redfish, separately covered). Verified by execution: 18 projection unit tests; 14 floor-enrolled .dag witnesses (GREEN clean-tree + machinery-exempt fold + 3 RED perturbs + live anchor-drop RED); live-tree discrimination on a real cited module (Https->File and anchor-drop both flip the gate RED, revert restores GREEN); ci_spec/ci_floor_plan enrollment witnesses; gate main -> ExitSuccess via real shell; cargo fmt + clippy -D warnings. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019Mi3t2wX7UPzgqLyYAE1kS * ci_floor_plan: add missing gate_is_heavy_resolve arm for ExtdepsExternalAuthorityGate #5418 added ExtdepsExternalAuthorityGate to the Gate enum and to every match over it EXCEPT gate_is_heavy_resolve (ci_floor_plan.dag:154), so once the v1↔v2 FreeMonoid collision cleared (#5422 now in this branch) the plan resolve reached this fn and fail-closed on a non-exhaustive match: ci_floor_plan.dag:154:3: error: non-exhaustive match: missing variant(s) ExtdepsExternalAuthorityGate The extdeps external-authority gate is a focused lens witness (filesystem_read over dsl/extdeps/**), not a whole-tree heavy resolve like SourceRootIngest / DslCompileClean — so it joins the other lens gates (Layering/ResolvedImports) at `false`. Plan-data only; resolved at runtime by claim_executor, no stage0 seed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * extdeps live-clean: anchor the 4 access modules + backfill the cache key-completeness lens #5418's external-authority gate scans the LIVE extdeps tree and fail-closes on any module lacking an anchor. Once #5422 cleared the FreeMonoid collision and the missing gate_is_heavy_resolve arm let the plan resolve, the gate correctly flagged 5 modules that landed on main AFTER #5418 authored its roster and were neither anchored nor backfilled: missing: extdeps.access.{aws_iam,posix,rbac,zanzibar} (#5415 access model) missing: extdeps.cache.key_completeness (#5423 cache lens) The 4 access modules already carry their real upstream citation in a `// Source:` comment (AWS IAM grammar, POSIX.1-2017/opengroup, ANSI/NIST RBAC, the Zanzibar USENIX paper) — promoted each to the structured `extdeps_external_authority_anchor` carrier the gate gates on (DESIGN §3: the mark on the carrier is the authority). No access sibling is backfilled, so anchoring (not backfilling) is the consistent treatment. extdeps.cache.key_completeness is an internal §5 cache-soundness LENS (a pure reader over the cache catalog), not a cited external-system model — so it joins its 8 extdeps.cache.* siblings on the backfill_pending roster as tracked debt, not a fake external anchor. Verified by execution: the floor's discovery-corpus (587 witnesses) and extdeps_external_authority_gate_passes both go GREEN with this change (live violation set empty, roster count > 150). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
Summary
Port
dsl/std/reducible.dagtosrc/v2/std/reducible.dagasv2.std.reducible— the fail-closed three-valued reduction verdict primitive (ReduceVerdict + Semigroup fold + located latch).Adds execution witnesses in
src/v2/std/reducible_test.dag(classify_leaf, verdict_eq, reduce_verdicts_located Unknown latch, perturb-RED). Nodsl/edits.Test plan
gunbc run --source-root src/v2 --entry src/v2/std/reducible_test.dag --function reducible_classify_leaf_holds --claim-run→ truegunbc run --source-root src/v2 --entry src/v2/std/reducible_test.dag --function reducible_verdict_eq_holds --claim-run→ truegunbc run --source-root src/v2 --entry src/v2/std/reducible_test.dag --function reducible_reduce_verdicts_located_holds --claim-run→ truegunbc run --source-root src/v2 --entry src/v2/std/reducible_test.dag --function reducible_reduce_verdicts_located_RED --claim-run→ true