Skip to content

Apply L1.4.b parameterized Locus anchor in v4 diagnostics - #3525

Merged
briansrls merged 6 commits into
mainfrom
session/snappy-dove-542
May 22, 2026
Merged

briansrls merged 6 commits into
mainfrom
session/snappy-dove-542

Conversation

@briansrls

@briansrls briansrls commented May 21, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Applies the refined L1.4.b variant-parameterization bar to v4.std.diagnostic::Locus: NodeLocus and PortLocus now share the parameterized LocusAnchor<T> payload shape, where the variant tag remains recoverable from the payload type (Node vs Symbol). The asymmetric Textual locus stays as a distinct variant, and v4 compiler/lens/test claim call sites now construct node/port loci through node_locus / port_locus helpers.

This stays within the PR #3499 refinement: only payload-type-recoverable tag redundancy is parameterized; no TotalMap/finite-Set substrate evolution is included.

Test plan

  • cargo test -p v3-compiler v4_compiler_ --test integration — passed, 26/26.
  • cargo test -p v3-compiler v4_test_bootstrap_infra_closeout_test --test integration — passed, 5/5.
  • cargo test -p v3-compiler v4_ --test integration — 70/71 passed; the remaining failure is existing v4_lens_registry_dag_compiles on unresolved Symbol / opaque data in src/v4/lens/registry.dag, which this PR does not touch.

@briansrls briansrls changed the title Variant-parameterization sweep resume — apply refined L1.4.b bar (PR #3499 'variant tag must be recoverable from payload type or it stays') across the v4 cascade; substrate side unblocked by #3488 v2 parser/lowering; strict scope per refined bar, no TotalMap/finite-Set substrate evolution Apply L1.4.b parameterized Locus anchor in v4 diagnostics May 21, 2026
@briansrls
briansrls marked this pull request as ready for review May 21, 2026 21:19
@briansrls

Copy link
Copy Markdown
Contributor Author

Verified the dashboard-only review artifact against current PR head. It is an APPROVE with no actionable findings. The exploratory note about the unused node_locus import in src/v4/test/claim/manual/eval_host_model_mvp.dag is real for the reviewed commit and is already removed on the current branch (commit e759c55). I also pushed 663fda5 to refresh the strict-deprose-managed src/v4/std/float.dag header after CI reported drift.

@briansrls

Copy link
Copy Markdown
Contributor Author

The relayed 2026-05-21T21:27:13Z item is my own verification comment, not external review feedback. I verified it against current code: the optional unused-import note was already fixed at e759c55, and the later strict-deprose drift was fixed at 663fda5. I also integrated current main at 5d3f3be to resolve the merge conflict in src/v4/std/constraints.dag, preserving main's T-9 logic and applying this PR's node_locus constructor shape. Focused merged-tree checks passed: python3 scripts/strict_deprose_dag.py --check and cargo test -p v3-compiler v4_compiler_ --test integration (27/27). — sent from snappy-dove-542

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: d300b9dc · Trigger: schedule
  • Thinking: 237s wall

Non-blocking — Strengths

  • src/v4/std/diagnostic.dag Classified as .dag model work; the LocusAnchor change preserves typed node/port loci through helper constructors, all changed call sites follow the new shape, and v2 compile over src/v4 emitted 0 diagnostics.

✅ No blocking concerns found in the changed lines.

@briansrls

Copy link
Copy Markdown
Contributor Author

Verified the 2026-05-21T21:44Z codex review against current head c2e571d. It is an APPROVE / no blocking concerns review and dashboard counts it as one of the two approvals; no code change is required. Current merge readiness is blocked only by the still-running GitHub ci job. — sent from snappy-dove-542

@briansrls

Copy link
Copy Markdown
Contributor Author

Verified the 2026-05-21T21:54Z claude approval against current head c2e571d. The exploratory note is accurate that Locus remains a 3-arm coproduct, but that is the intended L1.4.b Pattern B shape for this PR: factor the symmetric Node/Port payload through LocusAnchor<T> while retaining the asymmetric Textual variant and the explicit Node/Port tags. No code change needed for this non-blocking observation; merge readiness remains governed by approvals, checks, and GitHub mergeability. — sent from snappy-dove-542

@briansrls
briansrls merged commit 4f7f10a into main May 22, 2026
7 checks passed

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: c2e571dc · Trigger: schedule
  • Thinking: 282s wall

Non-blocking — Strengths

  • src/v4/std/diagnostic.dag The LocusAnchor Pattern B rewrite preserves typed Node/Port loci through helper constructors, and the PR-head search shows no remaining direct old-shape constructions.

✅ No blocking concerns in the changed .dag model lines.

briansrls added a commit that referenced this pull request May 23, 2026
Conflict resolution:
- cost.dag: adopt node_locus() helper (L1.4.b #3525) over NodeLocus direct-ctor
- map_id/nested/while_external_condition: take main's Atom-child form (#3503)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@briansrls
briansrls deleted the session/snappy-dove-542 branch June 1, 2026 18:43
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.

1 participant