Repository navigation
git extdeps is wrong - lets find the scope - #5059
Conversation
…across families) Implements representative fixes from the extdeps damage audit, one per pattern family, so the friction surfaces concretely: - git.dag: add faithful name-only diff primitives (DiffNameOnly / DiffNameOnlyMerge); the origin/main...HEAD business case (PR #5048's ChangedFiles) composes from these in the workflow layer instead of living in extdeps. Drop stale "services/git.dag" header (services/ merged into extdeps in 55dd577). - github.dag: fix stale "core.dag" filename + dead "services/github/*" header. - gcp.dag: collapse the 3-way OAuth2-refresh fork — remove the shell.OAuth2.RefreshToken curl bridge (a business re-impl of the REST endpoint, with a self-flagged JSON defect); one model of the refresh endpoint remains (oauth2.Google.Refresh). Repoint the patterns.dag usage comment. - cargo_build.dag: remove decorative all_targets/deny_args inputs (declared but never wired into any argv, passed by no caller); mark the fused policy flags as honest debt. - DESIGN.md §3: state the rule explicitly — extdeps owns interface SHAPE; transport is a §2 Realization handler (one of N); business policy is a workflow fact. Names the two tells (literal-in-argv; one-op-per-transport fork) so a future lens can gate them. Verified: v1 parse::gist_transitive_closure_parse + effects (30) green. Out of scope (load-bearing, escalation-gated): Node.transport Option→Vec for true N-handlers-per-op (A1), and the enforcing lens (A2). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Fold llm.Claude into llm.Anthropic.CliPrompt on anthropic_rest.dag (one interface, REST + shell handlers per DESIGN §3). Wire output_format and permission_mode as inputs. Drop forked Claude service from cli.dag; mark Gemini fused argv flags as honest debt (#5059 pattern). Co-authored-by: Cursor <cursoragent@cursor.com>
Conflicts resolved: - dsl/extdeps/rust/cargo_build.dag: defer to main. Main fixed the real phantom (defined cargo_compile_env/clippy_deny_args that were undefined and erroring at runtime) and added the Fmt op; that bugfix outranks my decorative-input removal, and the Lane B lens (#5068) flags the fused-policy smell anyway. Dropped my cargo edits. - dsl/extdeps/git/git.dag: main landed `ChangedFiles` (the origin/main...HEAD business case) with a live consumer (tools.rust_gates_ci). Kept it working alongside the faithful DiffNameOnly/DiffNameOnlyMerge primitives, and reframed my comment from "must NOT live here" to a named dissolution trigger (when rust_gates_ci composes DiffNameOnlyMerge directly, delete ChangedFiles). DESIGN.md §3 generalization, gcp OAuth2 fork removal, github header fix all auto-merged cleanly and survived. Verified: v1 parse + effects (30) green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* WIP: extdeps cleanup: cron protocol + llm split * WIP: extdeps cleanup: cron protocol + llm split * Unify Anthropic CLI under llm.Anthropic; parameterize Claude CLI flags Fold llm.Claude into llm.Anthropic.CliPrompt on anthropic_rest.dag (one interface, REST + shell handlers per DESIGN §3). Wire output_format and permission_mode as inputs. Drop forked Claude service from cli.dag; mark Gemini fused argv flags as honest debt (#5059 pattern). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: extdeps cleanup: cron protocol + llm split --------- Co-authored-by: Brian Searls <briansrls@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…` (review follow-up)
Review (cursor/composer-2.5) flagged that DiffNameOnlyMerge exposed only `paths`,
while the ChangedFiles op it is meant to replace also exposes `success: Bool from
"exit_success"` — consumed by tools.rust_gates_ci for fail-closed gating
(should_run_gates(git_success: ...)). Without it the documented dissolution trigger
was hollow: the op could not actually drop in for ChangedFiles.
Add `success` (a faithful git fact — the command's exit status) to both name-only
primitives so the merge op carries ChangedFiles' full {paths, success} contract;
update mocks + the dissolution note. Parse green.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ght the flaw)
The prior wording ("what migrates is cited data + dispatch, never the taxonomy
type; the agnostic shape AND its grounded type stay central") was too narrow, and
the EntryKind example ("POSIX EntryKind stays in std") was wrong — it privileged
one OS's taxonomy in a std type. FileSystemSemantics is already Posix|Ntfs|Apfs, so
the multi-OS axis exists: the OS-agnostic reduction stays in std, but each
realization's *taxonomy* (POSIX st_mode special files; NTFS junctions) migrates to
extdeps with a reduction fn. So per-OS taxonomy types DO migrate; only the agnostic
shape stays. Reworded the rule and dropped the EntryKind example (its corrected form
lands with the filesystem PR #5072, which implements posix.dag + ntfs.dag).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… into Refresh's real input shape Review (claude-opus-4-7 on #5059): the commented local_auth pseudocode showed oauth2.Google.Refresh(refresh_token: adc_content.content, ...) — eliding that the REST op's real input shape is {client_id, client_secret, refresh_token} and that the ADC JSON must be parsed first. On a PR about faithful modeling, narrative should not paper over the contract. Replace the raw fs.read with gcloud.Auth.ReadADC (which parses the JSON to the three fields) and pass all three explicitly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…5068) + generalization The auto-commit captured the in-progress merge with conflict markers still in DESIGN.md. This commits the resolution: main's 'Scaffolded by v2.lens.extdeps_shape_transport_policy' supersedes the stale 'not yet lens-enforced' clause (the lens landed in #5068), and the interface↔realization generalization + the corrected EntryKind/FileSystemSemantics example are preserved. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…auto-commit While verifying the gcp_oauth de-fusion regression guard, a perturbation test temporarily re-added 'service shell.OAuth2' to gcp.dag; the harness auto-committed that transient state (6025864), making the de-fusion guard correctly FAIL. This restores the clean de-fused gcp.dag (no shell.OAuth2 fork). The recast witness (corpus_gcp_oauth_defused_holds) is unchanged and now passes against the clean file. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…s CI) #5082 (grammar-inverse type-decl round-trip test) merged AFTER #5077's repo-wide "ban self-naming symbol bindings (data X: Symbol = X -> ^X)" sweep, so its new emit_ingest_type_decl_round_trip_test.dag was never swept. Two stragglers, both #5077's exact pattern: - imported the deleted named binding grammar_relation_field_tokens from target_model -> use the ^grammar_relation_field_tokens literal (this is the actual main-RED / CI failure: name not found). - re-introduced one self-naming binding (the file #5077 drove to zero) -> dead binding removed; ^type_decl_round_trip_foreign_binding literal already used at the call site. Pure merge-skew repair (#5077 x #5082, no merge queue); restores the "zero self-naming bindings remain" invariant. No substrate/proof-logic change. Verified by execution. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
CI triage — the prior red was a main-skew, not this PR's change; this PR now carries the repair. The failing check (
This PR's merge of main applies #5077's exact pattern to that one straggler file (4-line change, no substrate/proof-logic change):
Verified green by execution (not grep): the previously-red floor step now reports Heads-up on merge ordering: main is red on this skew right now. Merging this PR repairs main; alternatively the same 4-line straggler fix can be applied directly to main. |
… gcp witness The auto-committed merge (e2c55aa) left conflict markers in 3 extdeps files. Resolution: keep this branch's representation migration (*_test.dag rename, test fn, no unified_claim row) AND main's post-#5059 semantics — the gcp OAuth2 fork was de-fused, so the corpus witness now asserts ABSENCE (corpus_gcp_oauth_defused_holds = !shows_fork) rather than presence. Receipt and gate rows updated to the new function name + _test.dag path. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
#5089) * WIP: dsl whole-tree compile-clean CI gate + fix the backlog it surfaces * Wire dsl whole-tree compile-clean CI gate and fix Option surface backlog. Enroll `ci_full_dsl` in the CI floor so every dsl/**/*.dag file must compile; migrate lingering Some/None spellings to Present/Absent/none and fix the Url→String kv_pair mismatch that blocked a clean tree. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: dsl whole-tree compile-clean CI gate + fix the backlog it surfaces * Align dsl compile-clean gate with gunbc compile per operator brief. Replace ci_full_dsl cargo test with `gunbc compile --source-root dsl --target rust` in CI (whole-tree index+resolve+typecheck+emit, 0 hard diagnostics). Add dsl_compile_clean_witness claim-run pin; document RED perturb in witness comments. Note: --target dag blocked on dag_collect identity-key debt (180 emit errors) — escalated to parent. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: use ^grammar_relation_field_tokens in type-decl round-trip witness Co-authored-by: Cursor <cursoragent@cursor.com> #5082 follow-up: the symbol lives in v2.std.grammar (caret binding), not target_model export — unblocks claim_batch resolve in CI. * WIP: dsl whole-tree compile-clean CI gate + fix the backlog it surfaces * Enforce dsl compile-clean gate by execution with rust-target scaffold. Wire CI through dsl_compile_clean_gate (SCAFFOLD: --target rust pending dag_collect fix) and make the witness run live compile +/- receipts instead of returning true. Co-authored-by: Cursor <cursoragent@cursor.com> * Revert out-of-scope type-decl round-trip witness edit to main. Co-authored-by: Cursor <cursoragent@cursor.com> #5059 owns the #5077 x #5082 skew fix; keep the DSL gate PR scoped to dsl/. * WIP: dsl whole-tree compile-clean CI gate + fix the backlog it surfaces --------- Co-authored-by: Brian Searls <briansrls@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
* WIP: ci transpor tpolicy * WIP: ci transpor tpolicy * Carry the #5092 main-fix into this branch (main-sync dragged in broken file) The dashboard synced main into this branch at 24f2571, before #5092 merged, so the #5077x#5082 breakage (emit_ingest_type_decl_round_trip_test.dag importing the deleted grammar_relation_field_tokens) is now in this tree and fails the CI floor claim_batch resolve. Apply the same approved fix as #5092 (drop the stale import, use ^grammar_relation_field_tokens caret form). When #5092 merges first, this becomes a no-op under squash-merge. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * WIP: ci transpor tpolicy * Resolve merge conflicts: union of test fn migration + main's de-fused gcp witness The auto-committed merge (e2c55aa) left conflict markers in 3 extdeps files. Resolution: keep this branch's representation migration (*_test.dag rename, test fn, no unified_claim row) AND main's post-#5059 semantics — the gcp OAuth2 fork was de-fused, so the corpus witness now asserts ABSENCE (corpus_gcp_oauth_defused_holds = !shows_fork) rather than presence. Receipt and gate rows updated to the new function name + _test.dag path. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Drop the two vestigial --scan-dir flags from the consolidated CI floor #5101 reinstated --scan-dir src/v2/test and the extdeps scan-dir on the consolidated claim_batch line. Both are now vestigial: this PR migrated the extdeps witnesses to test fn (discovered via the src/v2 source-root walk), and src/v2/test has no unified_claim_* rows. claim_batch (main's version) allows discovery with no scan-dir when explicit --entry rows are present. Honors the operator request to remove --scan-dir src/v2/test. Verified by execution: claim_batch over src/v2+dsl, no scan-dir, +5 explicit entries -> 207 witnesses pass, 0 fail; all 5 extdeps witnesses discovered. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Brian Searls <briansrls@gmail.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Auto-opened by session-dashboard for session
zesty-lark-54.Pushing to
session/zesty-lark-54advances this PR.Worker attestation
Before flipping this PR to ready for review, confirm each item:
npm test,cargo test) and the result.Closes #Ndirective.Summary
TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.
Test plan