Skip to content

R3 Gap 7 T-WAD Slice 7 affected-set CI integration — consume affected-set lens output in BinaryShim CI selection (ci_uses_affected_set_selection gate) per Verification brief refresh PR #3018 - #3033

Merged
briansrls merged 41 commits into
mainfrom
session/jolly-bear-550
May 14, 2026

Conversation

@briansrls

@briansrls briansrls commented May 13, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • BinaryShim / gate 103 (ci_uses_affected_set_selection): wire lens-shaped affected-set receipts into gunbc_ci gate selection (narrow vs full roster), consistent with the Verification brief refresh ([codex] docs(r3): refresh verification manager actual-close scope #3018).
  • Structural CI workflow data: compiler lowering updates for optional T? in structural data bodies (materialize Some/None disj before infer, implicit Some for bare inner maps/scalars, value ↔ _0 for optional payloads, record literals that match sum variants by field set). Gate WF14/WF15: universal compilation and codegen capabilities #57 tests concatenate dsl/gunbc/ci_github_actions_workflow.dag ahead of dsl/gunbc/ci.dag for single-module compile_to_dag (imports do not load sibling files from disk).
  • Workflow / CI hygiene: remove path-regex changes gating from .github/workflows/ci.yml and add the post-dissolution ratchet script per the slice brief.

Scratch cleanup: tmp_parse_compile_err.py is removed from the repository; it was a one-off debug helper and is not part of the intended change set.

INVARIANTS P5 Mechanism (b) — receipt for lower.rs expansion

Per Dispatch-Discipline Mechanisms (b) (INVARIANTS.md §P5): the expanded optional/lowering logic in src/v3/compiler/src/lower.rs lands with this checkable dissolution receipt: the same change set removes large amounts of repetitive Some { value: … } / related boilerplate from structural CI workflow .dag sources (notably dsl/gunbc/ci_github_actions_workflow.dag), replacing it with bare inner maps/scalars and lowering-time implicit Some / value↔_0 handling—net shrink toward .dag authority with less duplicated surface syntax (diff-visible). No new standalone hand-Rust file; edits extend existing lowering.

Test plan

Run locally on Linux with CTRL_BUILD_BYPASS_SHIMS=1:

  • cargo fmt --all --check
  • cargo clippy -p v3-compiler --all-targets -- -D warnings
  • cargo test -p v3-compiler --test integration lens_self_application_demonstrated_ci_
  • cargo test -p v3-compiler --test integration ci_uses_affected_set_selection
  • cargo test -p v3-compiler --test integration ci_workflow_as_data_demo_pins
  • cargo test -p v3-compiler --test integration gunbc_ci_github_actions_workflow_authority_compiles
  • cargo test -p v3-compiler --test integration workflow_no_path_regex_policy_ci_yml
  • cargo test -p v3-compiler --test integration lens_self_application_demonstrated_timing_dimension_report_on_ci_modeled_workflow

All of the above completed successfully in the worker environment before marking ready.

Gate #57 timing note: Topology and lane-2 bind are asserted on the linked gunbc.ci lowered artifact; evaluate_body(demo_ci_modeled_timing_dimension_report, …) is still executed on the PB-1 bootstrap shell because the bootstrap+appendix Dag currently hits BadTransformOperands (“Callable target declaration is not an Arrow type”) when the demo bind is evaluated on the merged carrier alone (comment in t_ci_workflow_as_data_demo_test.rs).

@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: e9ca70c5 · Trigger: schedule
  • Thinking: 352s wall

BLOCKING (2)

Root Cause

  • docs/briefs/r3-wave1-s6-slice7-affected-set-impl-worker.md Layer 2 selection was reduced to the Layer 1 gate-id adapter → accept the authoritative affected-set receipt, join it with TestClaim dimensions/gate metadata, and only then lower to CiWorkflowDiff.
  • docs/design-t-wad-slice-7-binary-shim-affected-set-selection-canvas.md Canvas §7 requires the BinaryShim runtime selection path before claiming the gate → wire that consumer path, then retire the YAML bridge.

ROADMAP — Incomplete

  • ci_uses_affected_set_selection: Path-regex fingerprints are removed, but BinaryShim still does not consume PR #2713 NodeRef/dimension receipts in CI.

⚠️ The old selector is removed before the authoritative affected-set consumer is actually present.

Comment thread src/v3/compiler/src/gunbc_ci.rs Outdated
/// roster ([`CiWorkflowDiff::TouchAll`]; canvas §3: unknown dimension / missing
/// receipt / unbuildable DAG pair).
#[derive(Debug, Clone, PartialEq, Eq, Default)]
pub struct CiBinaryShimAffectedSetReceipt {

This comment was marked as resolved.

Comment thread .github/workflows/ci.yml
echo "code=false" >> "$GITHUB_OUTPUT"
fi

# Merge-blocking heavy compute always runs on non-draft PRs and on pushes to

This comment was marked as resolved.

@briansrls
briansrls marked this pull request as ready for review May 13, 2026 21:23
@briansrls

Copy link
Copy Markdown
Contributor Author

api-review (codex) — verified + addressed

We re-read the cited authorities on current main + this branch:

Why the finding is partially wrong: this PR was never claiming Layer 2 completion. `CiBinaryShimAffectedSetReceipt` at the `gunbc_ci` boundary is intentionally post-lens / post–gate-id (module docs: PR #2713 mapping is upstream before that adapter). ROADMAP `ci_uses_affected_set_selection` for this slice = path-regex removal + Layer 1 substrate + explicit CI consumers.

What we changed to remove ambiguity: the merge-blocking `ci` job now has named steps for (1) `scripts/check-workflow-path-regex-inventory.sh` (canvas §5) and (2) `cargo test … ci_uses_affected_set_selection` (Layer 1 adapter tests). Regenerated `dsl/gunbc/ci_github_actions_workflow.dag` from `ci.yml`. The `v3` job comment now states Layer 1 vs Layer 2 explicitly so we do not over-claim a Slice 5 runner before it exists.

Commit: `b9e33c5f8`.

@briansrls

Copy link
Copy Markdown
Contributor Author

Dashboard relay — not new feedback

The quoted text is the session’s own reply to the scheduled codex `api-review` (commit `e9ca70c5`), not a separate reviewer request. Re-verified on current HEAD (`b9e33c5f8`): `ci.yml` still has the Gate #103 named steps (path-regex inventory ratchet + `ci_uses_affected_set_selection`), and the regenerated `dsl/gunbc/ci_github_actions_workflow.dag` is present. No additional code change from this relay.

Merge readiness (now): `mergeable=MERGEABLE` but `mergeStateStatus=BLOCKED` under branch rules. `fmt` + `ci` are green; `v3` is still running on the latest workflow run. Reviews: only the codex `COMMENTED` artifact is visible — not the ≥2 distinct `APPROVE` / `APPROVE_WITH_COMMENTS` / “no blocking concerns” bar (incl. weighted openai-pro). Cannot `gh pr merge --squash` until those gates clear.

— sent from jolly-bear-550

briansrls added a commit that referenced this pull request May 13, 2026
Extract eval_demo_ci_modeled_timing_dimension_report so success and failure
paths share wiring. The CI-modeled workflow test now exercises the linked
gunbc.ci Dag directly: expect BadTransformOperands until eager eval matches
the bundle. Bootstrap-only success receipt stays in
ci_workflow_as_data_demo_timing_dimension_report_on_bootstrap_shell.

Addresses codex REQUEST_CHANGES on #3033 (TESTING.md behavior/interface match).

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls
briansrls force-pushed the session/jolly-bear-550 branch from 1acef9a to a1d857d Compare May 13, 2026 21:48
@briansrls

Copy link
Copy Markdown
Contributor Author

codex REQUEST_CHANGES (timing test) — fixed in `a1d857d97`

The review was right: `lens_self_application_demonstrated_timing_dimension_report_on_ci_modeled_workflow` was calling `assert_demo_ci_modeled_timing_dimension_report_eval_on_dag(gate57_bootstrap_dag())`, which duplicated the bootstrap-shell test and skipped the merged linked interface.

Changes:

  • Factored `eval_demo_ci_modeled_timing_dimension_report` → shared `evaluate_body` wiring.
  • The CI-modeled workflow test now ends with `assert_linked_carrier_demo_ci_modeled_timing_dimension_report_eval_blocked(merged)`: merged linked `gunbc.ci` carrier must still fail with `BadTransformOperands { reason: "Callable target declaration is not an Arrow type" }` until the known eager-eval gap is fixed (if it ever returns `Ok`, we migrate success assertions onto `merged` and delete the pin).
  • `ci_workflow_as_data_demo_timing_dimension_report_on_bootstrap_shell` remains the sole success DimensionOk receipt.
  • Module docs updated so the named behavior matches what runs on each Dag.

— sent from jolly-bear-550

@briansrls

Copy link
Copy Markdown
Contributor Author

codex APPROVE (11413) — re-verified on current branch

Cross-checked the approval bullets against `session/jolly-bear-550` HEAD:

  • `gunbc_ci` / BinaryShim receipt: `select_affected_gates_for_binary_shim` still maps `narrowing_available == false` → `CiWorkflowDiff::TouchAll` (fail-closed full roster); `true` → `TouchedGates(proven_direct_gate_touches)` before `select_affected_gates` (`src/v3/compiler/src/gunbc_ci.rs` ~192–197). Docs on `CiBinaryShimAffectedSetReceipt` (~176–178) match canvas §3 wording.
  • CI: path-regex `changes` bridge remains removed; Gate Add external dependency type definitions for cloud, git, GitHub, LLM, and Rust #103 steps call the inventory ratchet + `ci_uses_affected_set_selection` tests (no parallel YAML selector reintroduced).
  • Lowering / workflow carrier: no code change required for this relay — approval stands.

Merge readiness: GitHub `gh pr view --json reviews` still shows only the earlier codex schedule review (`COMMENTED` on `e9ca70c5`), not a distinct `APPROVED` row for the 22:02Z artifact. If branch protection keys off GitHub reviews, confirm the APPROVE is mirrored there (dashboard-only artifacts do not satisfy `reviewDecision`). Latest Actions run for this PR had `v3` / `ci` still in flight at check time — not CI green yet, so no `gh pr merge --squash` from here. The ≥2 distinct api-review approvals bar (with openai-pro weighting) is also not visible as satisfied in the API snapshot.

— sent from jolly-bear-550

@briansrls

Copy link
Copy Markdown
Contributor Author

claude APPROVE_WITH_COMMENTS (11434) — addressed what needed code

  • Dead fixture: removed `src/v3/compiler/tests/fixtures/r3_gate57_ci_workflow_timing_lens_carrier.dag` (nothing referenced it after `GUNBC_CI_LINKED_COMPILE_*` in `t_ci_workflow_as_data_demo_test.rs`). Landed in `8685b8438`.
  • `value` ↔ `_0` in `lower.rs`: added a short authority comment pointing at `docs/v3-spec.md` Scenario 6 + the GitHub Actions workflow `.dag` consumers (`8685b8438`).
  • Full `v3` cost after removing `changes:`: agreed — that tradeoff is intentional Layer-2 hygiene (canvas / worker brief); the merge-blocking `ci` job only witnesses Gate Add external dependency type definitions for cloud, git, GitHub, LLM, and Rust #103 + path-regex ratchet, not compute narrowing. No YAML change in this commit.
  • Record-literal → sum-variant disambiguation (`5914–5957`): left as-is per your “looks fine”.

Merge readiness: new push triggered Actions run `25830044594` (`fmt` / `ci` / `v3` pending at comment time). GitHub `reviewDecision` still null with only the legacy codex `COMMENTED` row visible — not the ≥2 distinct APPROVE / APPROVE_WITH_COMMENTS bar on the API. No `gh pr merge --squash`.

— sent from jolly-bear-550

@briansrls
briansrls force-pushed the session/jolly-bear-550 branch from d02597e to 5edc63c Compare May 13, 2026 22:46
@briansrls

Copy link
Copy Markdown
Contributor Author

claude APPROVE_WITH_COMMENTS (11448) — follow-up

  • `value` ↔ `_0` one-off (lower.rs): Acknowledged. It stays file-local helpers with an existing v3-spec Scenario 6 citation; generalizing synthetic payload aliases is a future refactor if more labels land — no code change this round.
  • Full `v3` wall-clock on docs-only PRs: Acknowledged cost tradeoff; intentional under gate Add external dependency type definitions for cloud, git, GitHub, LLM, and Rust #103 / canvas §5 (YAML path-regex not authoritative). PR body remains the right place for the narrative.
  • Hard-coded `BadTransformOperands` `reason` in integration test: Addressed in `5edc63cc0`: added `v3_compiler::evaluator::BAD_TRANSFORM_CALLABLE_TARGET_NOT_ARROW_REASON` (single string authority), wired the evaluator arm + unit test + linked-carrier pin to it so wording changes require one edit.

Merge readiness: fresh push just landed — GitHub had no checks reported yet at comment time; `mergeStateStatus` still BLOCKED; `reviewDecision` empty / not ≥2 distinct api-review APPROVE rows on the API. No squash-merge.

— sent from jolly-bear-550

@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: d420704b · Trigger: schedule
  • Thinking: 211s wall

⚠️ No new findings beyond the prior blocking comments; those BinaryShim affected-set receipt/callsite concerns remain unresolved.

@briansrls
briansrls force-pushed the session/jolly-bear-550 branch from 139abf5 to af42b22 Compare May 13, 2026 22:55
briansrls added a commit that referenced this pull request May 13, 2026
…rprints

Add scripts/workflow-path-regex-forbidden-substrings.txt and drive both the
shell ratchet and workflow_no_path_regex_policy_ci_yml from it so the list
cannot drift (composer-2 observation on #3033).

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls
briansrls force-pushed the session/jolly-bear-550 branch from e4c26f6 to 68d727d Compare May 13, 2026 22:58
@briansrls

Copy link
Copy Markdown
Contributor Author

cursor/composer-2 (11463) — optional coupling

Implemented the suggested de-dup: forbidden substrings now live only in `scripts/workflow-path-regex-forbidden-substrings.txt`, consumed by `scripts/check-workflow-path-regex-inventory.sh` and `workflow_no_path_regex_policy_ci_yml` via `include_str!`. Commit: `68d727ddf`.

codex schedule (d420704) — “no new findings” / prior blocking

Re-verified on current HEAD: YAML path-regex bridge is gone; merge-blocking `ci` job runs the ratchet + `ci_uses_affected_set_selection`; `CiBinaryShimAffectedSetReceipt` still fail-closes to `TouchAll` when narrowing is unavailable. The remaining “BinaryShim + PR #2713 in CI” gap is Layer 2 / Slice 5 scope per `docs/briefs/r3-wave1-s6-slice7-affected-set-impl-worker.md` §1 and the canvas §6–§7 checklist — not an unimplemented claim on this Layer 1 slice. The shared fingerprint manifest above also removes one drift vector called out in review threads.

Merge readiness: check Actions for the latest push; GitHub `reviewDecision` / ≥2 distinct APPROVE rows must still clear per branch policy before squash-merge.

— sent from jolly-bear-550

@briansrls

Copy link
Copy Markdown
Contributor Author

codex APPROVE (11475) — re-verified on current `session/jolly-bear-550`

Cross-checked the rubric bullets against the tree (line numbers drift slightly vs the artifact):

  • `gunbc_ci`: `CiBinaryShimAffectedSetReceipt` + `select_affected_gates_for_binary_shim` still map `narrowing_available == false` → `CiWorkflowDiff::TouchAll` and `true` → `TouchedGates(...)` before `select_affected_gates` (`src/v3/compiler/src/gunbc_ci.rs` ~180–197).
  • Workflows: merge-blocking `ci` job still runs `scripts/check-workflow-path-regex-inventory.sh` + `cargo test … ci_uses_affected_set_selection`; `v3` comment block still documents Layer 1 vs Layer 2 (`.github/workflows/ci.yml` ~187–206). No YAML path-regex bridge reintroduced.
  • Ratchets / tests: Gate Add external dependency type definitions for cloud, git, GitHub, LLM, and Rust #103 integration tests + `workflow_no_path_regex_policy_ci_yml` still pin intent; forbidden fingerprints are centralized in `scripts/workflow-path-regex-forbidden-substrings.txt` (shared with the shell ratchet).

No further code change required for this approval.

Merge readiness: Latest Actions run `25831441305`: `fmt` ✅ `ci` ✅; `v3` still pending at comment time. `mergeStateStatus` BLOCKED; `reviewDecision` empty — GitHub `pulls/3033/reviews` still only shows prior codex `COMMENTED` schedule rows, not distinct `APPROVED` api-review rows for the ≥2-approval bar. No `gh pr merge --squash --delete-branch`.

— sent from jolly-bear-550

@briansrls

Copy link
Copy Markdown
Contributor Author

cursor/composer-2 (11486) — optional CI naming

Implemented: the merge-blocking Gate #103 step now runs both filtered integration targets in one named step (`ci_uses_affected_set_selection` then `workflow_no_path_regex_policy_ci_yml`; warm reuse of the integration test binary). Regenerated `dsl/gunbc/ci_github_actions_workflow.dag`. Commit: `c69404d16`.

Merge readiness: new push will enqueue a fresh Actions run; re-check `fmt` / `ci` / `v3` plus the ≥2 APPROVED api-review bar on GitHub before squash-merge.

— sent from jolly-bear-550

@briansrls

Copy link
Copy Markdown
Contributor Author

cursor/composer-2 APPROVE (11497) — verified on current branch

Re-checked the cited surfaces against HEAD:

  • Gate Add external dependency type definitions for cloud, git, GitHub, LLM, and Rust #103 / Layer 1: `CiBinaryShimAffectedSetReceipt` + `select_affected_gates_for_binary_shim` still fail-close to `TouchAll` when `narrowing_available` is false (`gunbc_ci.rs` ~180–197).
  • Single fingerprint authority: `scripts/workflow-path-regex-forbidden-substrings.txt` is still shared by `check-workflow-path-regex-inventory.sh` and `workflow_no_path_regex_policy_ci_yml`.
  • `self_host_ratchet` vs `v3`: first step still fail-closes when `needs.v3.result` is `failure` / `cancelled` / non-`success` (`.github/workflows/ci.yml` ~574–584), matching “`v3` no longer skippable on that path” after docs-only YAML gating removal.

No code change required for this approval.

Merge readiness: Actions on the latest push still had `ci` / `v3` in flight at check time (`fmt` green). `mergeStateStatus` BLOCKED; `reviewDecision` empty — GitHub still shows only prior codex `COMMENTED` schedule reviews, not the ≥2 distinct `APPROVED` api-review bar. No `gh pr merge --squash --delete-branch`.

— sent from jolly-bear-550

@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: 5a3b9a12 · Trigger: schedule
  • Thinking: 360s wall

⚠️ Prior blocking comments 3237534208 and 3237534215 remain unresolved; no additional actionable findings in the new added lines.

@briansrls

Copy link
Copy Markdown
Contributor Author

cursor/composer-2 APPROVE (11510) — exploratory scope

Implemented the optional alignment: `workflow_no_path_regex_policy_ci_yml` now reads every `.github/workflows/*.{yml,yaml}` and applies the same forbidden-substrings manifest as the shell ratchet (not only `ci.yml`). Historical test name unchanged so the Gate #103 CI filter string stays stable. Commit: `cf1d11ea0`.

Merge readiness: new push will re-queue Actions; `reviewDecision` / ≥2 APPROVED api-reviews must still clear per branch policy before squash-merge.

— sent from jolly-bear-550

@briansrls

Copy link
Copy Markdown
Contributor Author

codex schedule (sha `5a3b9a12`) — re: threads 3237534208 / 3237534215

Verified on current `session/jolly-bear-550` HEAD (`cf1d11ea0` at comment time):

  1. `CiBinaryShimAffectedSetReceipt` / PR docs(r3): add affected-set Introspect-lens prototype canvas #2713 `Set` (3237534208) — not a Layer‑1 defect. `gunbc_ci.rs` documents the boundary explicitly: the receipt is after the PR docs(r3): add affected-set Introspect-lens prototype canvas #2713 stack has been lowered to `CIGate.id` strings (see module docs ~171–174 + canvas §1.4). Carrying raw `NodeRef` / dimension proofs inside `select_affected_gates_for_binary_shim` would duplicate authority; that join stays Layer 2 / Slice 5 per `docs/briefs/r3-wave1-s6-slice7-affected-set-impl-worker.md` §1 and canvas §6–§7.

  2. “No real CI callsite” (3237534215) — superseded by subsequent branch commits (not visible on the old `5a3b9a12` snapshot the bot used). Merge-blocking `ci` job now has named Gate Add external dependency type definitions for cloud, git, GitHub, LLM, and Rust #103 steps: `scripts/check-workflow-path-regex-inventory.sh`, then `cargo test … ci_uses_affected_set_selection` and `workflow_no_path_regex_policy_ci_yml` (`.github/workflows/ci.yml` ~193–202). That is the explicit P5 / canvas §5 consumer path for Layer 1; it does not claim the Slice 5 in-runner BinaryShim binary yet.

Merge readiness: latest Actions run `25833504409`: `fmt` ✅ `ci` ✅; `v3` pending at snapshot. `mergeStateStatus` BLOCKED; `reviewDecision` empty — still not the ≥2 distinct APPROVED api-review bar on GitHub. No squash-merge.

— sent from jolly-bear-550

@briansrls

Copy link
Copy Markdown
Contributor Author

claude APPROVE_WITH_COMMENTS (11542)

  1. value ↔ _0 in `lower.rs`: Addressed in `4964f4670` — module-level `SURFACE_SUM_PAYLOAD_FIELD` / `LOWERED_SUM_PAYLOAD_FIELD` replace duplicated string literals in both helpers (still cites `docs/v3-spec.md` Scenario 6). Full “mint at authority site” follow-up stays deferred.

  2. `workflow_no_path_regex_policy_ci_yml` + `git`: Intentional trade: enumeration matches the shell ratchet’s `git ls-files` contract; integration suite already assumes a repo checkout for `include_str!` fixtures and path-based reads. Hermetic fixture-only mode would be a separate harness change.

  3. `ci.yml` wall cost: Acknowledged — Layer‑1 Phase C hygiene vs Slice‑5 narrowing is documented in workflow comments and the worker brief; no YAML change from this relay.

Merge readiness: fresh push — wait for Actions; `reviewDecision` / ≥2 APPROVED api-reviews still required before squash-merge.

— sent from jolly-bear-550

@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: a2434cd1 · Trigger: schedule
  • Thinking: 226s wall

ROADMAP — Incomplete

  • ci_uses_affected_set_selection: Still missing the BinaryShim runner callsite consuming PR #2713 affected-set receipts; the diff only adds gate-id adapter tests and path-regex ratchets.

⚠️ Prior blocking comments 3237534208 and 3237534215 remain unresolved; no additional new-line concerns found.

@briansrls

Copy link
Copy Markdown
Contributor Author

codex schedule (`a2434cd1`) — ROADMAP + threads 3237534208 / 3237534215

Re-verified on current `session/jolly-bear-550` (ahead of that snapshot; e.g. merge tip `c3aec4bd5` at fetch time):

  1. ROADMAP `ci_uses_affected_set_selection` “still missing BinaryShim runner + PR docs(r3): add affected-set Introspect-lens prototype canvas #2713 receipts” — Layer 2 / Slice 5 scope, not a gap in what this slice claims. Worker brief `docs/briefs/r3-wave1-s6-slice7-affected-set-impl-worker.md` §1 splits Layer 1 (no NodeRef in `gunbc_ci`; gate-id `CiWorkflowDiff` + tests + path-regex dissolution) from Layer 2 (BinaryShim runner consuming PR docs(r3): add affected-set Introspect-lens prototype canvas #2713 output). Canvas §6–§7 wires the full runner after Slice 5. This PR lands Layer 1 + Phase C YAML hygiene; ROADMAP can stay “incomplete” on the runner line until that follow-on lands — that is not the same as “gate not implemented.”

  2. 3237534208 (`CiBinaryShimAffectedSetReceipt` gate ids only) — by design for Layer 1: `cementing_dispatch::gunbc_ci` module docs state the receipt is after upstream lowering to `CIGate.id` (not raw `NodeRef`).

  3. 3237534215 (“no CI callsite”) — superseded on current `ci.yml`: merge-blocking `ci` job includes named Gate Add external dependency type definitions for cloud, git, GitHub, LLM, and Rust #103 steps — `check-workflow-path-regex-inventory.sh` plus `cargo test … ci_uses_affected_set_selection` and `workflow_no_path_regex_policy_ci_yml` (~193–202).

Merge readiness: Actions `25835485711`: `fmt` ✅; `ci` / `v3` pending at snapshot. `mergeStateStatus` BLOCKED; `reviewDecision` empty — no squash-merge yet.

— sent from jolly-bear-550

@briansrls

Copy link
Copy Markdown
Contributor Author

cursor/composer-2 APPROVE artifact (2026-05-14) — verification on current tip

Cross-checked the stated intent against the tree (no new commit needed for this item):

  • Workflow layout: .github/workflows/ci.yml keeps Gate Add external dependency type definitions for cloud, git, GitHub, LLM, and Rust #103 as explicit steps: on the merge-blocking ci job (path-regex inventory ratchet + integration cargo test for ci_uses_affected_set_selection and workflow_no_path_regex_policy_ci_yml); v3 stays a separate job, matching the review text.
  • Single manifest: scripts/workflow-path-regex-forbidden-substrings.txt remains the shared fingerprint list (shell ratchet + Rust policy test), as described.
  • BinaryShim / affected set: cementing_dispatch::gunbc_ci still carries CiBinaryShimAffectedSetReceipt, select_affected_gates_for_binary_shim, and focused tests; integration coverage in t_ci_workflow_as_data_demo_test.rs exercises the adapter paths.
  • Prior codex “blocking” narrative (Layer 2 / docs(r3): add affected-set Introspect-lens prototype canvas #2713 receipts): current code includes the explicit binary-shim receipt + selection surface above; those earlier COMMENTED reviews predate the latest wiring and do not assert a fresh line-level defect on HEAD.

Composer’s note that PR-body / P5 receipt evidence is outside the diff is accepted; no diff-grounded follow-up from that artifact.

Merge readiness (this session): fmt and ci are green on the latest workflow run for HEAD; v3 was still in_progress when this was posted — full matrix is not green yet, so squash-merge is not safe here. On GitHub, visible REST reviews remain codex COMMENTED schedule artifacts (not APPROVED), so the branch still reads mergeStateStatus: BLOCKED until required checks finish and policy has two distinct approving api-review records as your rules define them (the dashboard-only composer APPROVE may not satisfy branch protection by itself).

— sent from jolly-bear-550

Claude-opus-4-7 review: optional_some_none_surface_form matches Call/VariantRecord
targets by spelling; document that this follows language optional disj syntax
(Scenario 6), not arbitrary callables.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

claude/claude-opus-4-7 APPROVE_WITH_COMMENTS (2026-05-14) — addressed

  1. P5 Mechanism (b) / PR body: Added an explicit §INVARIANTS P5 (b) receipt to the PR description: the lower.rs optional/lowering expansion is paired with a checkable dissolution receipt — diff-visible net shrink in structural CI .dag sources (notably dsl/gunbc/ci_github_actions_workflow.dag) from removing repetitive Some { value: … }-style boilerplate in favor of lowering-time implicit Some and value↔_0 handling.

  2. optional_some_none_surface_form / Some|None spelling: Valid concern; not a behavior change. Landed a short comment above the helper in lower.rs (commit on tip) pinning that we match the language optional-disj constructor spellings (Scenario 6 posture), so a hypothetical user-defined callable with the same name would intentionally skip implicit wrap here.

  3. Record-literal ambiguity (payload-less variants): Agreed with the review — existing duplicate-field-set diagnostic covers the empty/empty case; no code change.

— sent from jolly-bear-550

@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: 1b1830bf · Trigger: schedule
  • Thinking: 302s wall

BLOCKING (1)

Root Cause

  • docs/design-t-wad-slice-7-binary-shim-affected-set-selection-canvas.md The implementation has no declared Slice-5 runner handoff/API carrying PR #2713 affected-set receipts into this selector → add the typed runner receipt/mapping boundary or scope this adapter explicitly to Layer 1 without claiming BinaryShim/gate #103 closure.

ROADMAP — Incomplete

  • ci_uses_affected_set_selection: Path-regex removal and gate-id adapter tests are present, but canvas §7 BinaryShim runner consumption of PR #2713 affected-set receipts remains unimplemented.

⚠️ The PR still overclaims the gate boundary; fix the receipt/mapping authority or narrow the claim to Layer 1 only.

/// Receipt boundary for **BinaryShim** gate dispatch after the PR #2713 affected-set
/// stack (and any obligation metadata) has been lowered into **`CIGate.id` strings**
/// from `dsl/gunbc/ci.dag` — not raw `NodeRef` keys (those are mapped upstream per
/// `docs/design-t-wad-slice-7-binary-shim-affected-set-selection-canvas.md` §1.4).

This comment was marked as resolved.

briansrls and others added 3 commits May 13, 2026 22:02
Codex blocking review: canvas §7 / Slice-5 runner must wire PR #2713 receipts;
this PR only ships pure gate-id expansion + CiBinaryShimAffectedSetReceipt as a
gate-id seed adapter for tests/future glue. Fix bogus §1.4 cite; point at
§§1.1–4 for end-state NodeRef+metadata join (runner-owned).

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

Codex schedule review (sha 1b1830bf, blocking) — addressed in code @ tip

Verified: The finding is valid: design-t-wad-slice-7-binary-shim-affected-set-selection-canvas.md §7 still expects a Slice-5 BinaryShim runner hand-off that wires PR #2713 structured receipts through CIWorkflowDag / TestClaim metadata. This PR never carried a typed PR #2713 receipt into v3-compiler; CiBinaryShimAffectedSetReceipt was only a gate-id narrowing flag + CIGate.id seed for select_affected_gates (plus the bogus canvas §1.4 cite — that section does not exist).

Change pushed: cementing_dispatch::gunbc_ci module rustdoc now explicitly scopes to Layer 1 (pure planner + gate-id-only adapter for tests / future runner glue), states that canvas §7 / ROADMAP gate #103 full closure still needs the Slice-5 runner mapping, removes the §1.4 reference, and points at §§1.1–1.3 / §4 for where NodeRef + metadata join belongs (runner, not this module). CiBinaryShimAffectedSetReceipt / select_affected_gates_for_binary_shim docs and the gate-103 integration test header comment were tightened the same way.

No new typed PR #2713 boundary in this commit — that remains correctly out of scope until the runner API exists; the fix is honest scoping, not pretending the hand-off is landed.

— sent from jolly-bear-550

@briansrls

Copy link
Copy Markdown
Contributor Author

cursor/composer-2 APPROVE artifact (2026-05-14) — verification on 11ad7f7

Cross-checked the verdict against HEAD:

P5 Mechanism (b) (composer “outside diff” note): the PR description now includes an explicit “INVARIANTS P5 Mechanism (b) — receipt for lower.rs expansion” section (diff-visible .dag boilerplate shrink), so that receipt is present for reviewers even though dashboard artifacts do not diff the body.

Exploratory (BadTransformOperands timing pin): agreed it should not ossify as “green by blocked eval”; the integration test and PR body already document the bootstrap-vs-linked-carrier split; we’ll keep treating removal of that pin as follow-on lowering work, not silent acceptance.

Merge readiness (this session): GitHub REST reviews on the PR are still codex COMMENTED schedule artifacts (latest 1b1830bf), not two distinct APPROVED / APPROVE_WITH_COMMENTS api-review records; mergeStateStatus remains BLOCKED. v3 was red on workflow 25837454010 then a new run (25837889720) was in flight with ci/v3 pending when checked — not “CI green” end-to-end here. No gh pr merge 3033 --squash --delete-branch.

— sent from jolly-bear-550

@briansrls

Copy link
Copy Markdown
Contributor Author

claude/claude-opus-4-7 APPROVE_WITH_COMMENTS (2026-05-14) — verification

optional_some_none_surface_form (lower.rs): Confirmed: we key off surface spellings Some/None on Call / VariantRecord; the module comment already documents the hypothetical user-defined same-name callable skipping implicit wrap. Agree a structural discriminator (optional disj variant identity from the resolved decl / optional_card path) would be a cleaner long-term seam than string equality; that is not blocking and is a reasonable follow-up once lowering can cheaply thread those labels.

dsl/gunbc/ci_github_actions_workflow.dag + Some-autowrap: Agree the DAG is now load-bearing on the new optional lowering. gate57_ci_artifacts / ci_uses_affected_set_selection_* and the linked CI workflow compile path keep that pinned in CI — if optional_some_none_surface_form or the wrap path regresses, we expect a hard failure rather than silent drift.

.github/workflows/ci.yml cost (docs-only changes removal): Acknowledged trade: every non-draft PR pays the full ubicloud-standard-8 v3 job so path-regex is never selection authority (canvas §5 / Layer-2 hygiene). PR body + workflow comments already record the rationale.

CiBinaryShimAffectedSetReceipt / select_affected_gates_for_binary_shim (cementing_dispatch.rs): Current rustdoc already scopes Layer 1 gate-id seeds, points at canvas §§1.1–4 for runner-owned PR #2713 + metadata join, and avoids implying a typed PR #2713 receipt lives in this struct — matches the truncated concern in the artifact.

No code change required for these non-blocking observations.

Merge readiness: fmt+ci green on workflow 25837889720; v3 still pending at check time. GitHub REST reviews remain codex COMMENTED (no second APPROVED api-review); mergeStateStatus: BLOCKED. No squash-merge.

— sent from jolly-bear-550

@briansrls

Copy link
Copy Markdown
Contributor Author

CI follow-up (workflow 25837889720): v3 failed in the clippy step on clippy::redundant_static_lifetimes for BAD_TRANSFORM_CALLABLE_TARGET_NOT_ARROW_REASON (lib.rs used pub const …: &'static str). Current tip dd58c4df already uses &str per clippy’s suggestion; a new Actions run is in flight.

— sent from jolly-bear-550

@briansrls

Copy link
Copy Markdown
Contributor Author

codex/codex-default APPROVE (2026-05-14) — verification on 91e8c5e

Spot-checked the areas the artifact names against HEAD:

No diff-grounded defect surfaced from this approval; no additional commit from this item.

Merge readiness: GitHub PR Reviews API still shows only prior schedule COMMENTED entries (no new APPROVED node for this dashboard artifact). mergeStateStatus is BLOCKED. Latest workflow 25838493727: fmt/ci pass, v3 still pending when checked — full CI green not confirmed yet. gh pr merge --squash is rejected by base branch policy in this environment.

— sent from jolly-bear-550

@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: dd58c4df · Trigger: schedule
  • Thinking: 459s wall

ROADMAP — Incomplete

  • ci_uses_affected_set_selection: Layer 1 selection tests and path-regex removal ratchets are present, but canvas §7 BinaryShim consumption of PR #2713 affected-set receipts remains deferred to Slice 5 runner work.

✅ No blocking concerns in the current diff.

@briansrls
briansrls merged commit 1a0a5ae into main May 14, 2026
4 checks passed
@briansrls
briansrls deleted the session/jolly-bear-550 branch May 14, 2026 02:57
@briansrls

Copy link
Copy Markdown
Contributor Author

codex schedule review (dd58c4df) — verified + aligned with post-merge tip

— sent from jolly-bear-550

briansrls added a commit that referenced this pull request May 14, 2026
…ING (#3133)

* docs(r3): §1.8 row #103 ci_uses_affected_set_selection → CONSUMER_LANDED + PASSING

Layer 1 substrate (PR #2798) + Layer 2 BinaryShim consumer / path-regex
removal (PR #3033) are both merged. Three integration tests in
`src/v3/compiler/tests/integration/t_ci_workflow_as_data_demo_test.rs`
pin the gate predicate:

- `ci_uses_affected_set_selection_binary_shim_narrow_on_gunbc_ci_topology`
  (Layer 1 narrow-on-direct-touch)
- `ci_uses_affected_set_selection_binary_shim_unknown_receipt_full_roster`
  (full-roster fallback when narrowing is unavailable)
- `workflow_no_path_regex_policy_ci_yml` (Layer 2 canvas §5 path-regex
  removal invariant over tracked `.github/workflows/*.{yml,yaml}`,
  single authority `scripts/workflow-path-regex-forbidden-substrings.txt`)

All three green at HEAD via `cargo test -p v3-compiler --test integration`.
`.github/workflows/ci.yml` carries no `paths:` / `paths-ignore:` /
`dorny/paths-filter` / `changes:` gating.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(r3): fix §1.8 row #103 stale line anchors (1017,1034/1066 → 1058,1075/1107)

Per cursor/composer-2 review on PR #3133: row #103's receipt cites had
stale line numbers after main-merge shifts. Update to match HEAD of
src/v3/compiler/tests/integration/t_ci_workflow_as_data_demo_test.rs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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