Repository navigation
Compiler lowerer cleanup - #95
Merged
Merged
Conversation
…ostics RT38: Replace panic in derive_file_spec with eprintln + None return. Unknown file operations now produce a clear error message instead of crashing the lowerer. RT39: Replace silent advance in parse_service_config with parse errors. auth and auth_input now require identifiers; endpoint now handles both direct string literals and typed field syntax (String = "..."). RT4c: Add lowering completeness diagnostic. wire_callable_return_outputs now emits a warning when a non-optional return output can't be wired (unsupported expression kind). RT4b: Add passthrough missing-input diagnostic. When a declared output port has no wired input and falls back to Value::Skipped, an eprintln warning is emitted. https://claude.ai/code/session_019ruTLog2NipP4MtauP8L4w
Extends resolve_return_expr_source() to handle BinOp, UnaryOp, If,
Match, Pipe expressions by synthesizing ReturnExprCompute nodes.
Root cause fix for the overall_success: Skipped bug (see POSTMORTEM
in tasks.md). Previously, return expressions like
`build.success && test.success && clippy.success` silently fell
through to `_ => None`, causing no edge to __out:overall_success.
Implementation:
- New PrimitiveOpKind::ReturnExprCompute { fn_body } variant
- collect_expr_leaf_refs: walks expression tree to find all node/port
source references (Ident, FieldAccess)
- remap_expr_idents: converts AST expressions to LoweredExpr with
remapped identifiers (build.success -> build__success)
- synthesize_return_expr_compute: creates compute node with inputs
from leaf references and a LoweredFnBody for evaluation
- ReturnExprComputeOp: resolver-side executor that evaluates the
fn body with inputs via evaluate_fn_body
- Updated match sites in daglang-emit (computation.rs,
rust_exec_runtime.rs)
https://claude.ai/code/session_019ruTLog2NipP4MtauP8L4w
RT40: Add `is_optional: bool` to `OutputFieldSpec` and `is_type_expr_optional()`
helper in ast_utils. The TrimStdout handler in resolve_service.rs now uses
`f.is_optional` instead of the stringly-typed `f.type_id.ends_with('?')` check.
All 28 hand-coded OutputFieldSpec construction sites updated.
RT46: Replace silent fallbacks `unwrap_or(TestClass::Unit)` and
`unwrap_or(FermiCost::XS)` in fidelity.rs with explicit panics that include
the actual value. DSL evaluator results are now fail-fast on unexpected variants.
https://claude.ai/code/session_019ruTLog2NipP4MtauP8L4w
RT47: Replace speculative `speculative_pos` index manipulation in multi-param lambda parsing with `try_parse_lambda_params()` helper that uses normal parser advance/peek/check methods with save/restore backtracking. Supports `(a,b)=>`, `(a, b) =>`, and `(a,b,) =>` (trailing comma). RT42: Replace hard-coded 25-name pipe method allowlist in `should_track_call_name()` with `PipeMethod` enum as single authoritative registry. `from_str` provides O(1) lookup. Adding a new pipe method now requires: (1) add variant, (2) add string match, (3) implement in eval.rs — no hidden allowlists to update. https://claude.ai/code/session_019ruTLog2NipP4MtauP8L4w
RT84: Delete MockResponseDef dead scaffolding. The struct existed in the AST but the parser never populated it (always Vec::new()). Removed from OperationDef, CapabilityDef, and all 5 parser construction sites. When response blocks ship (RT48), they will use a proper ResponseDef type, not this stub. RT88 (partial): Translation layer fail-closed audit fixes: - probe_best_response(): Add diagnostic when all response candidates fail instead of silently falling back to default_shell_response(). - json_to_value(): Fix Null→"" silent coercion (now Null→Unit), add Float support for non-integer numbers (was silently stringifying). Document intentional fallbacks (heterogeneous arrays, objects). https://claude.ai/code/session_019ruTLog2NipP4MtauP8L4w
Strengthen RT4b diagnostic to distinguish required vs optional output ports. execute_with_declared_output_passthrough() now receives port optionality info (derived from Port.type_id at IR level). Required ports (non-?) produce a clear error diagnostic when no wired input is found, while optional ports (T?) silently fall back to Value::Skipped as before. DeclaredOutputCallableOp and PipelineDispatchOp updated to carry Vec<(String, bool)> output_ports instead of Vec<String> output_port_names. https://claude.ai/code/session_019ruTLog2NipP4MtauP8L4w
RT13: Add `registry_gen` module to derive VirtualBackendConfig requirements from DAG analysis. TransportClass enum classifies transport executors as REST/Shell/File/TCP by examining node IDs and port types. Tests for all classification paths. RT14: Replace S-tier fidelity ladder stub with real codegen that creates a VirtualTransportBackend, registers per-transport-class default stubs, and installs via TransportBackendGuard. RT15: Add M-tier sandboxed tempdir test with `sandboxed_tests` feature gate. RT16: Add L/XL tier tests with cost-gated guard_test calls using GUNBC_TEST_MAX_COST env check. RT55: Add `fermi_depth()` and `is_hermetic()` methods to ServiceTransportClass — single authoritative source for transport cost classification, mirroring DSL `transport_depth`/`transport_hermetic` in std/fidelity.dag. https://claude.ai/code/session_019ruTLog2NipP4MtauP8L4w
RT58: Move param_source_* propagation into BoundaryMocks - Add propagate_to_param_sources() method to BoundaryMocks - CLI generator calls it automatically after wiring inputs - Replace 28-line manual block in sdlc.rs with 2-line call - 2 unit tests: propagation + no-overwrite-explicit RT61: Add --mode flag support to CLI generator - Add enable_mode field to ToolMeta - When enabled, generated CLIs accept --mode=verify/ensure - Verify mode forces dry-run so content_upsert checks without writing - Uses ExecMode::parse_strict for clear error on invalid values - Builder method: ToolDef::enable_mode() - 2 tests: mode-enabled and mode-disabled CLI generation RT63: Subcommand dispatch for multi-func modules - Add SubcommandDef struct to registry - Add generate_cli_with_subcommands() to CLI generator - Generates dispatch main() with per-subcommand run functions - Each subcommand gets own schema, graph builder, and mock spec - Update dsl_registry to group multi-func modules automatically - codegen_cli.rs dispatches to subcommand generation when applicable - Help text shows available subcommands - 1 test: subcommand dispatch generation https://claude.ai/code/session_019ruTLog2NipP4MtauP8L4w
RT69: Move fidelity.rs from gunbc-dag to core/codegen
- Classification engine (classify_callable, classify_module, requires_from_transport_classes)
now lives in core/codegen/src/fidelity.rs with all 8 unit tests
- Added daglang-derive, daglang-driver, daglang-lower as core/codegen deps
- gunbc-dag/src/fidelity.rs retains only end-to-end smoke tests that depend
on dsl_builder (gunbc-dag internal)
- Updated testgen_dag imports to use gunbc_codegen::fidelity
RT81: Replace thin wrapper modules with generic lookup
- Added build_tool_graph(name) and tool_signature(name) to dsl_builder.rs
providing convention-based "tools/{name}.dag" compilation
- Simplified bootstrap/mod.rs, build/mod.rs, codegen/mod.rs, deps_tool.rs,
infra/mod.rs to delegate to the generic functions
- All existing callers preserved (public API unchanged)
Blocked tasks (deferred):
- RT67: resolve_service.rs → core/ir blocked by circular deps (needs exec + daglang_lower)
- RT70: dsl_builder.rs → core/codegen blocked by circular deps (needs resolve in gunbc-dag)
- RT68: mock_defaults.rs split needs trait injection point for GCP-specific logic
https://claude.ai/code/session_019ruTLog2NipP4MtauP8L4w
… analysis Phase 0: Make 15+ internal types/functions pub(crate) for cross-module access (LoweredEndpoint, ServiceTransportEndpoint, ServiceCallSite, resolve fns, etc.) Phase 1: New scope.rs module with ScopedBody/ScopedItem/ScopedServiceCall types that walk callable AST bodies and preserve the scope tree — tracking which service calls are top-level vs. nested inside match/if/for control flow. Query methods: direct_service_calls(), all_service_calls(), has_service_calls(). Phase 1b: 5 integration tests against real DSL corpus (credential patterns) documenting parser limitations with lossy match arm block bodies. 13 new tests (8 unit + 5 integration), all 107 daglang-lower tests pass. https://claude.ai/code/session_019ruTLog2NipP4MtauP8L4w
Problem: Service calls inside if/match branches had their transport triplets created at the top level, firing unconditionally regardless of which branch was taken. Only for-loop bodies had scoped transports. Fix: Follow the existing for-loop pattern for branches: 1. Enrich IfBranchSite with then/else service call paths 2. Enrich MatchBranchSite with per-arm service call paths 3. Update make_branch_body_dag to create transport triplets inside the branch SubDag when service calls are present (same as make_loop_body_dag) 4. Update add_control_flow_pattern_nodes to resolve and pass transports for if/match branches 5. Update add_service_call_edges to filter out branch-nested calls (previously only filtered for-loop body calls) The body_op retains condition/input ports so BranchBuilder/IfBuilder can attach guards. Transport triplets inside the guarded SubDag only execute when the branch condition is met. All 7 parity tests pass — existing DAGs unchanged (backward-compatible). 5 new tests covering detection, DAG construction, and BranchBuilder integration. https://claude.ai/code/session_019ruTLog2NipP4MtauP8L4w
…I45' into cursor/compiler-lowerer-cleanup-a0b7 Co-authored-by: Brian Searls <briansrls@users.noreply.github.com>
… snapshot updates, scope.rs warnings Merge origin/claude/red-team-tasks-zGI45 into this branch, bringing: - Scoped IR Phase 0+1: scope.rs with ScopedBody/ScopedServiceCall types - Scoped IR Phase 2+3: Branch-scoped transport triplets for if/match - Waves 3-11: RT4a (complex return expressions), RT38-RT88 hardening - Binary elimination infrastructure (RT58, RT61, RT63) - Fidelity migration + thin wrapper consolidation (RT69, RT81) Integration fixes for the merge: 1. exec-runtime: skip unclassifiable nodes (ReturnExprCompute, ExternCall, Pattern) instead of erroring — classify_handler returns None for these, which is correct skip-behavior, not an error 2. RT4c lowering warnings: remove eprintln! that broke CLI tests asserting empty stderr; leave TODO for structured LowerWarnings in return type 3. scope.rs: suppress dead_code warnings via #[allow(dead_code)] on module declaration (types are infrastructure for ongoing integration) 4. Update golden snapshots: makegen_expand.txt (+21 lines for 3 new ReturnExprCompute nodes), obligation fixtures s1/s2/s3/s5/w_clippy/w_deps 5. Add Design variant to WorkspaceBinary enum (codegen generates it) 6. Update test_tool_has_entrypoints for RT63 subcommand dispatch (multi-func tools have empty top-level entrypoints; params live on subcommands) 7. Create stub main.rs for 6 subcommand binaries not yet generated by codegen Co-authored-by: Brian Searls <briansrls@users.noreply.github.com>
…t top-level tools Co-authored-by: Brian Searls <briansrls@users.noreply.github.com>
Comprehensive analysis and migration plan for refactoring the 8,300-line imperative lowerer (lib.rs) into a chain of pure functions. Key findings: - 33 functions take &mut DagBuilder (central mutable accumulator) - 30 silent drops (_ => None) in wiring paths - 22+ functions with >6 parameters (max 11) - 105 conditional skips vs 74 edge additions - 9-phase mutation pipeline prevents independent testing Proposed architecture: each phase returns typed intermediate data, mutation confined to final assemble_dag(). Six migration waves using strangler fig pattern. Subsumes RT4a/4b/4c/38/43/82/BT-E1. See docs/design/v4/lowerer-pure-function-refactor.md Co-authored-by: Brian Searls <briansrls@users.noreply.github.com>
|
Cursor Agent can help with this pull request. Just |
briansrls
marked this pull request as ready for review
February 28, 2026 13:02
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8c46d213d9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
The WorkspaceBinary enum was a hand-maintained registry of 15 binary names
that duplicated what CargoInvocation::composed(name, "dag") already derives
from the naming convention. Every variant mapped to the same one-liner:
CargoInvocation::composed(self.component(), "dag")
This was the code smell described in design-eliminate-registration-lists.md:
a manual list that grows every time a binary is added, enforced by a test
with its own hand-maintained exclusion list (non_workspace_dispatch_bins).
Replace all WorkspaceBinary::Foo.invocation() calls with direct
CargoInvocation::composed("foo", "dag") at call sites. Delete:
- binaries.rs (173 lines including macro, enum, tests)
- Two coverage tests in tool_registration.rs that enforced enum↔Cargo.toml sync
- Re-export from lib.rs
- Imports from 8 consumer files
No behavior change — the generated CargoInvocation values are identical.
Co-authored-by: Brian Searls <briansrls@users.noreply.github.com>
…t (RT63) Co-authored-by: Brian Searls <briansrls@users.noreply.github.com>
…ring, nested call filtering
P1: exec-runtime classify_handler — fail closed on unknown ops
Replace the broad 'None => continue' with a three-way HandlerClassification
enum: Handler(kind), MetadataOnly, or None (error). Only explicitly tagged
metadata-only node kinds (Pattern, ExternCall, ContentUpsertOutputPath,
ReturnExprCompute) are skipped. Unknown ops produce UnresolvableNode error,
preventing silent emission of semantically incomplete graphs.
P1: collect_expr_leaf_refs — include param refs
Parameter identifiers were silently skipped in leaf collection, so
synthesize_return_expr_compute never created input ports or edges for
param-only expressions (e.g. return { out: a + b } where a, b are params).
Now collects param refs with a PARAM_REF_SENTINEL marker; the synthesizer
resolves them via ensure_param_source_node and wires edges from the
param_source node to the compute node input.
P2: nested service call filtering — use removal budget, not path equality
The old service_calls.retain filtered by path equality, which removed ALL
calls matching a nested path — including top-level calls that happened to
invoke the same operation. Now uses a count-based removal budget: for each
nested path, only remove as many matching calls as were detected nested,
preserving any top-level calls with the same operation path.
Co-authored-by: Brian Searls <briansrls@users.noreply.github.com>
New ReturnExprCompute + param_source nodes appear for functions where return expressions reference parameters (previously silently dropped). Makegen snapshot: +83 lines. Obligation counts: param_source_targets and pure_node_determinism_targets increase across 7 fixtures. Co-authored-by: Brian Searls <briansrls@users.noreply.github.com>
Lane A (Substrate Deletion, ~12.9k LOC): Delete hand-written binaries, workflow catalog/commands/spec_builders, makegen Rust registry, extern impls, policy/pragma, tool wrappers, and compensating tests. Lane B (Compiler Hardening, ~9.2k LOC): Lowerer pure-function extraction, scope.rs integration, dead AST scaffolding deletion, fail-closed resolver audit, extract resolve/testgen/mock to core/ crates, executor dead code. Lanes touch different files — no merge conflicts. 7 existing tasks made redundant by broader consolidation design (RT29, RT56, RT57, RT86, RT87, RT44, RT13, RT18). See docs/design/v4/red-team-two-lane-plan.md Co-authored-by: Brian Searls <briansrls@users.noreply.github.com>
The codegen-dag, testgen, and pragma freshness steps passed '-- dag' as a binary argument, but none of these binaries accept 'dag' as a subcommand. codegen_cli.rs accepts: commit, rollback, codegen, cigen. Generated binaries (testgen, pragma) accept: --dry-run, --print-inputs. The 'dag' argument was likely from an earlier version of the binary protocol. Removing it lets the binaries run with their default behavior (commit for codegen-dag, standard execution for testgen/pragma). Co-authored-by: Brian Searls <briansrls@users.noreply.github.com>
collect_expr_leaf_refs now handles Expr::FieldAccess where the base is a parameter (e.g. section.has_title → port section__has_title). Without this, functions like render_document_section whose return expressions reference param fields produced ReturnExprCompute nodes with missing inputs, causing 'unbound variable: section__has_title' at runtime. The fix mirrors the plain-param-ref fix: collect with PARAM_REF_SENTINEL, then in synthesize_return_expr_compute split 'base__field' to find the base param, ensure its param_source node exists, and wire from the field port. Also removes vestigial '-- dag' arguments from freshness steps (the codegen-dag, testgen, and pragma binaries don't accept 'dag' as a subcommand). Co-authored-by: Brian Searls <briansrls@users.noreply.github.com>
1. Add #[derive(Debug, PartialEq)] to HandlerClassification enum and update 6 test assertions to use HandlerClassification::Handler(...) instead of bare HandlerKind (type mismatch prevented test compilation). 2. Fix ReturnExprCompute input port types: all ports were hardcoded to 'Bool' regardless of the actual upstream type. Now carries type_id through the collect_expr_leaf_refs 4-tuple: param refs use the param's declared type, other sources use 'Any' (field access types require port-level type resolution which isn't available at collection time). Co-authored-by: Brian Searls <briansrls@users.noreply.github.com>
Theme D (B11): Expr walker totality — audit all match expr arms for silent catch-all drops in collect_expr_leaf_refs, remap_expr_idents, etc. Theme E (B12): Typed leaf references — replace PARAM_REF_SENTINEL string encoding with LeafRef enum, delete split_once decoding. Theme F: scope.rs integration priority — B2 elevated since 589-line module has zero callers outside tests. Co-authored-by: Brian Searls <briansrls@users.noreply.github.com>
… ident
The ReturnExprCompute fn body evaluator needs to resolve param.field
expressions at runtime. Previously, remap_expr_idents flattened
FieldAccess(Ident('document'), 'trailing_newline') to
Ident('document__trailing_newline'), but the input port only carried
the full record under key 'document' — causing 'unbound variable:
document__trailing_newline' at runtime.
Fix: remap_expr_idents now preserves FieldAccess structure for all
field accesses (not just non-ident bases). The evaluator handles
FieldAccess natively via field_access(). For param field access,
collect_expr_leaf_refs collects the base param name (not base__field),
so the full record flows through and the evaluator does the field
extraction.
Also adds exhaustive Expr variant handling to collect_expr_leaf_refs:
Record, StringInterp, List, Lambda, For, Return now recurse into
sub-expressions instead of silently dropping via _ => {}.
Co-authored-by: Brian Searls <briansrls@users.noreply.github.com>
Add 6 architectural principles derived from PR review discussion: pure functions, clear errors, strong interfaces, no compile-then-eval, minimal language core, delete-don't-relocate. Key insight codified: the fidelity.rs 'compile a .dag, extract fn bodies, call the evaluator at runtime' pattern is an anti-pattern. DSL should compile to static data, not require re-parsing on every invocation. Added compile-then-eval deletion to consolidation opportunities. Co-authored-by: Brian Searls <briansrls@users.noreply.github.com>
Functions like render_document() have let bindings (with_header, sections)
that the return expression references. ReturnExprCompute only carries the
return expression, not the preceding let bindings, so evaluation fails
with 'unbound variable: with_header'.
Fix: collect_expr_leaf_refs now detects unresolvable identifiers (not a
param, not a bound callable/service, not an endpoint) and sets
has_local_refs. synthesize_return_expr_compute returns None when local
refs are detected, falling back to the existing passthrough mechanism.
Also adds exhaustive Expr variant handling to collect_expr_leaf_refs
(If, Record, StringInterp, List, Lambda, For, Return, UnaryOp) instead
of silently dropping via _ => {}. StringInterp added to remap_expr_idents.
Co-authored-by: Brian Searls <briansrls@users.noreply.github.com>
briansrls
added a commit
that referenced
this pull request
May 14, 2026
briansrls
added a commit
that referenced
this pull request
May 14, 2026
briansrls
added a commit
that referenced
this pull request
May 14, 2026
briansrls
added a commit
that referenced
this pull request
May 14, 2026
briansrls
added a commit
that referenced
this pull request
May 14, 2026
briansrls
added a commit
that referenced
this pull request
May 14, 2026
briansrls
added a commit
that referenced
this pull request
May 14, 2026
briansrls
added a commit
that referenced
this pull request
May 14, 2026
Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls
added a commit
that referenced
this pull request
May 14, 2026
briansrls
added a commit
that referenced
this pull request
May 14, 2026
Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls
added a commit
that referenced
this pull request
May 14, 2026
briansrls
added a commit
that referenced
this pull request
May 14, 2026
CI fmt check drift on substrate-eval helpers and gate #95 asserts. Co-authored-by: Cursor <cursoragent@cursor.com>
6 tasks
briansrls
added a commit
that referenced
this pull request
May 14, 2026
…ace) Composer review #12221: parallelism_iteration_opt_in_enforcement_violates now returns Result<bool, LensApplyError>; missing parallelism.dag maps to SubstrateReflect. Document ParallelismIterationBudget as GREEN coproduct per modeling-discipline §4. Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls
added a commit
that referenced
this pull request
May 14, 2026
Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls
added a commit
that referenced
this pull request
May 14, 2026
6 tasks
briansrls
added a commit
that referenced
this pull request
May 14, 2026
v3 job failed on unclassified ^type ParallelismMode in parallelism.dag; add POSITIVE_ROWS inventory entry plus thesis/ROADMAP disposition sync (LAS gate #95 budget carrier). Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls
added a commit
that referenced
this pull request
May 14, 2026
briansrls
added a commit
that referenced
this pull request
May 14, 2026
briansrls
added a commit
that referenced
this pull request
May 14, 2026
briansrls
added a commit
that referenced
this pull request
May 14, 2026
briansrls
added a commit
that referenced
this pull request
May 14, 2026
briansrls
added a commit
that referenced
this pull request
May 14, 2026
briansrls
added a commit
that referenced
this pull request
May 14, 2026
briansrls
added a commit
that referenced
this pull request
May 14, 2026
Extend sg0-pr-body-append.3131.txt to receipt dag.rs/lib.rs/lower.rs alongside enforced_lens_application for the same gate #95 slice; align INVARIANTS integration + LAS consumer cross-refs. Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls
added a commit
that referenced
this pull request
May 14, 2026
…trated (T-Lens-Application-Surface / **Cluster F (T-LP-Ret) (#3131) * WIP: R3 gate #95: opt_in_iteration_parallelism_via_lens_application_demonstra * WIP: R3 gate #95: opt_in_iteration_parallelism_via_lens_application_demonstra * WIP: R3 gate #95: opt_in_iteration_parallelism_via_lens_application_demonstra * WIP: R3 gate #95: opt_in_iteration_parallelism_via_lens_application_demonstra * fix(ci): SG-0 PR-body prepend for gate #95 census (+1) Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: R3 gate #95: opt_in_iteration_parallelism_via_lens_application_demonstra * docs(test): clarify gate #95 integration vs enforced_application split Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: R3 gate #95: opt_in_iteration_parallelism_via_lens_application_demonstra * chore: rustfmt enforced_lens_application (gate #95) CI fmt check drift on substrate-eval helpers and gate #95 asserts. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(v3-compiler): gate #95 probe returns Result (no public panic surface) Composer review #12221: parallelism_iteration_opt_in_enforcement_violates now returns Result<bool, LensApplyError>; missing parallelism.dag maps to SubstrateReflect. Document ParallelismIterationBudget as GREEN coproduct per modeling-discipline §4. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(test): clarify gate #95 integration banner for Result probe Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: R3 gate #95: opt_in_iteration_parallelism_via_lens_application_demonstra * docs(parallelism): Practice §4 TERMINAL checkpoint for ParallelismMode Codex inline BLOCKING on parallelism.dag: classify OptInIndependent|Sequential coproduct per modeling-discipline §4 adjacent to the type declaration (LAS budget carrier vs Lane‑2 workflow). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ci): classify ParallelismMode in compiler-std ratchet (#642) v3 job failed on unclassified ^type ParallelismMode in parallelism.dag; add POSITIVE_ROWS inventory entry plus thesis/ROADMAP disposition sync (LAS gate #95 budget carrier). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: R3 gate #95: opt_in_iteration_parallelism_via_lens_application_demonstra * WIP: R3 gate #95: opt_in_iteration_parallelism_via_lens_application_demonstra * WIP: R3 gate #95: opt_in_iteration_parallelism_via_lens_application_demonstra * WIP: R3 gate #95: opt_in_iteration_parallelism_via_lens_application_demonstra * WIP: R3 gate #95: opt_in_iteration_parallelism_via_lens_application_demonstra * WIP: R3 gate #95: opt_in_iteration_parallelism_via_lens_application_demonstra * WIP: R3 gate #95: opt_in_iteration_parallelism_via_lens_application_demonstra * docs(thesis): restore End state line in compiler-std consolidation Fix inline editing artifact (...findings. 0. Each...) by splitting the explicit primary-ratchet end-state sentence onto its own line (Claude api-review exploratory note). Co-authored-by: Cursor <cursoragent@cursor.com> * docs(thesis): align compiler-std primary ratchet count with TRACKED_ROWS (4) openai-pro review: prose said \"3\" while ROADMAP + check-compiler-std-ratchet.sh enumerate four in-ratchet scaffold carriers including NonCommutingPairLookup. Point readers at TRACKED_ROWS / BASELINE_TRACKED_TOTAL as authority; restore tokenizer-migration clause dropped in the tightening edit. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(p5): enumerate gate #95 hand-Rust co-touches in 3131 prepend Extend sg0-pr-body-append.3131.txt to receipt dag.rs/lib.rs/lower.rs alongside enforced_lens_application for the same gate #95 slice; align INVARIANTS integration + LAS consumer cross-refs. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
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.
Merge
red-teamlowerer refactor branch and resolve integration issues to consolidate ongoing refactor work and stabilize the codebase.This PR integrates the Red Team hardening (RT4a, RT63, etc.) and Scoped IR (Phase 0-3) lowerer refactor efforts. It fixes several integration issues, including
exec-runtimepanics, CLI tests failing due to stderr warnings, dead code in the newscope.rsmodule, outdated snapshot fixtures, missingWorkspaceBinaryenum variants, and tests not accounting for subcommand dispatch. A design document for the next phase of the lowerer refactor is also included.