Repository navigation
rename dsl -> dag - #6165
Merged
Merged
rename dsl -> dag#6165
Conversation
…dmap_authority: keep dag rename + main's enforcement-intent entry) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
briansrls
added a commit
that referenced
this pull request
Jul 2, 2026
Dissolution-trigger roster paths and runbook entry points now use dag/ so they match the renamed corpus tree. Co-authored-by: Cursor <cursoragent@cursor.com>
6 tasks
briansrls
added a commit
that referenced
this pull request
Jul 2, 2026
…checks. BMC Redfish alive (192.168.1.192, HTTP 200); router shows srv3 OS never on network. PREP everything runnable-by-command; live mount+boot+install is OPERATOR-GATED and the operator is available NOW — coordinate live steps th (#6134) * Rebase srv3 os-install-actuated prep onto main (#6151 landed). Replay srv3 bringup modeling on current main: seeded autoinstall ISO, actuator selection, install media fetch, SOL capture, scope boundaries, and witnesses. Ground hostnamectl path via fleet_posix_accounts; keep Co-authored-by: Cursor <cursoragent@cursor.com> #6151 grounded-principal ci_deploy_access authority intact. * Assimilate srv3 os-install prep with landed main modeling (#6151, #6146). Wire NBD serve consumers to seeded ISO path authority; add srv3_seeded_os_install_plan (NoCloudLocal on-ISO). Ground credential debt on bmc_srv3_admin_secret_ref while runtime login stays factory-login scaffold. Legacy NoCloudNet solver plan seed gap remains fail-closed until unattended boot proven by execution. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: srv3-bringup — finish prefix:os-install-actuated + first subsumption che * WIP: srv3-bringup — finish prefix:os-install-actuated + first subsumption che * Register actuator toolchain ensure on medium_structure_exception_roster. The concat-built bash ensure runner had a dissolve-on marker but no roster row, which would leak medium_structure_containment; align with sibling runners. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix off-by-one in workflow approval-before-boot witness. skip(n).first() is 0-based skip-then-head; operator approval is index 5 and boot-once index 6, not 4 and 5. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix toolchain ensure script concat parse error for srv1 live run. Nested concat arity and escaped-quote strings broke dsl compile; simplify websocat ensure for aarch64 actuator host (srv1). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: srv3-bringup — finish prefix:os-install-actuated + first subsumption che * Fix websocat ensure concat nesting for dsl compile on srv1. Prior nested concat left an unclosed paren; mirror apt-tool if/else/fi shape. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix live toolchain ensure: websocat asset name and socat version check. v1.14.0 publishes websocat_max.aarch64-unknown-linux-musl (not websocat.*); socat has no --version flag; mkdir /var/lib/gunbc/bin via sudo. Co-authored-by: Cursor <cursoragent@cursor.com> * Run BMC login and serve scripts via bash heredoc on srv1. serialize_bash emits multiline scripts; sh -c only executed the first line, leaving login response empty. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: srv3-bringup — finish prefix:os-install-actuated + first subsumption che * WIP: srv3-bringup — finish prefix:os-install-actuated + first subsumption che * WIP: srv3-bringup — finish prefix:os-install-actuated + first subsumption che * Register shell_bash_runner on medium_structure_exception_roster. The shared bash-heredoc concat helper lacked its own scaffold dissolve-on marker; consumers were rostered but the transport helper was not. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: srv3-bringup — finish prefix:os-install-actuated + first subsumption che * Derive BMC login username from credential resolution variant. srv3_bmcweb_login_body_content_for_resolution ignored its resolution parameter and always re-read intent.account; match UseFactoryCredential vs UseRotatedSecretRef so the body tracks the resolved credential path. Co-authored-by: Cursor <cursoragent@cursor.com> * Honest scaffolds for nbd RawLine bringup and SOL Redfish authority. Extend nbd_proxy_serve dissolution marker to name the live-bringup RawLine regression; wire redfish_serial_interface_authority via transport dispatch with a witness so the cited DMTF row is not orphaned. Co-authored-by: Cursor <cursoragent@cursor.com> * Wrap install-media-fetch and SOL capture in shell_exec_via_bash. Multiline serialize_bash/concat scripts must not ride bare shell.Exec.Run (sh -c first-line truncation); match seeded-media and toolchain ensure paths. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: srv3-bringup — finish prefix:os-install-actuated + first subsumption che * WIP: srv3-bringup — finish prefix:os-install-actuated + first subsumption che * Fix diagnostic observe-script emit and enroll checklist on medium roster. Escape bash/curl writeout fragments so the .dag parser does not treat ${VAR} and %{http_code} as host interpolations; register the new shell-runner checklist module on medium_structure_exception_roster. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: srv3-bringup — finish prefix:os-install-actuated + first subsumption che * WIP: srv3-bringup — finish prefix:os-install-actuated + first subsumption che * WIP: srv3-bringup — finish prefix:os-install-actuated + first subsumption che * WIP: srv3-bringup — finish prefix:os-install-actuated + first subsumption che * fix: update srv3 paths dsl→dag after main merge (#6165) Dissolution-trigger roster paths and runbook entry points now use dag/ so they match the renamed corpus tree. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Cursor <cursoragent@cursor.com>
6 tasks
2 tasks done
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Jul 3, 2026
db559b4 predates dsl->dag rename; cold CI cache missed the frozen corpus and `git archive dag` failed. Archive dsl src/v1 instead. Co-authored-by: Cursor <cursoragent@cursor.com>
This was referenced Jul 3, 2026
briansrls
added a commit
that referenced
this pull request
Jul 3, 2026
…dsl->dag rename (#6191) * WIP: Fix func_env_semantic_equivalence_test.rs: BASELINE_COMMIT db559b4 p * Recapture func_env semantic baseline fixture at post-rename commit BASELINE_COMMIT (aeb1739) predates neither the dsl->dag rename (#6165) — recapture the whole_corpus_semantic_oracle_snapshot fixture against that commit's tree so the corpus/diagnostic/emit-graph fingerprints match. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
briansrls
added a commit
that referenced
this pull request
Jul 3, 2026
…d builders (#6173) * De-fork coproduct_reflection: share live-registry walk and decl record builders Continue Chunk G after #6163's concept_decl_facts substrate: extract for_each_live_registry_item for all *_decl_facts_live builtins, plus fn_arrow_decl_record and data_init_decl_record shared by live evaluators. fn_item_param_names is now single authority for param extraction. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(coproduct_reflection): cargo fmt for for_each_live_registry_item call sites CI rust_tests gate failed cargo fmt --check on the single-line for_each_live_registry_item closures in concept/data_init live evaluators. Co-authored-by: Cursor <cursoragent@cursor.com> * ci: retrigger after 30m runner timeout (no code change) Prior run 28633571847: rust_tests and ci jobs were cancelled at timeout-minutes:30 while fmt/clippy passed and nextest/gunbc-ci were still running — infra timeout under fleet load, not a test failure. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(test): func_env semantic oracle archives dsl/ from pre-rename baseline rust_tests failed: git archive db559b4 dag — pathspec 'dag' did not match any files. Baseline commit predates #6165 (dsl → dag rename); use the historical tree name for archive, cache probe, and corpus roots. Co-authored-by: Cursor <cursoragent@cursor.com> * ci: retrigger on 9f66470 (full dsl baseline archive fix) Prior dashboard failure @ ab2f9d2 was a partial WIP (comment-only); superseded by 9f66470 which fixes archive/cache/roots to use dsl/ from pre-#6165 baseline. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls
added a commit
that referenced
this pull request
Jul 5, 2026
…r (QualifiedName, structural ==) + last dsl stragglers (E0 / PR-0b)
The fired subject_roster_string_dissolution_trigger (vocab.dag), executed:
SubjectRoster carried BOTH filesystem scope roots and declaration names as one
List<String> - a state-space conflation with two different comparison
semantics (path-literal vs segment-structural) in one representation.
- vocab.dag: SubjectRoster.entries -> List<QualifiedName> (v2.std.qualified_name
authority; compared via structural ==, qualified_name_eq); new ScopeRoster
{ roots: List<String> } for tree roots; ScopeNarrowed.missing -> ScopeRoster;
scope_roster_covers/subject_roster_covers now two fns with the right
semantics each; trigger row deleted, split note left on the carrier.
- standing_intent: desired_scope -> ScopeRoster; required_subjects grounds
v1.compiler.infer.build_type_env via qualified_name_from_dotted_string.
- contract/receipts/gate/enforcement_live: claimed_scope -> ScopeRoster;
discovered_fn_subjects converts at the decl_facts boundary (subject_qn_of,
same single pass, linear); self_application_for now reads facts directly
(String prefix pre-conversion, fn-like only - TypeItem no longer counts
toward self-application, a small honesty gain).
- NEW RED control: permuted_segment_subject_does_not_cover - a QualifiedName
with the same segments in a different order must NOT satisfy the subjects
leg (the discriminator List<String> equality could not express).
- self_application_liveness_discriminates gains a TypeItem-prefix control
(kind filter proven, not just prefix).
- dsl stragglers renamed (operator ask): phase_profile_proof_plan.dag
dsl/tools -> dag/tools AND phase_profile_claim_executor.rs --source-root
dsl -> dag. The Rust consumer test was failing on main since #6165
(source root does not exist: dsl); it now PASSES by execution - the only
.rs change is that one literal.
Receipts by execution (2026-07-05): 11/11 gate_test (incl. new permuted
control), 10/10 enforcement_live witnesses; enrolled pair 40s/39s (QualifiedName
interning over 14,283 facts is in the noise); pinned 3-red/3-green verdict
unchanged (representation-only, zero leg flips - as planned);
phase_profile_claim_executor 1 passed.
Typechecker note: QualifiedName alias vs FreeMonoid<Symbol> does not unify in
an if-branch JOIN (nominal expectation flows from a record-field into fold
init while the then-branch expands structurally) - worked around by hoisting
the fold out of the record construction; assignment-position coercion is fine.
Same #5552 alias-instantiation residue family.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
briansrls
added a commit
that referenced
this pull request
Jul 5, 2026
…tructural subjects + last dsl stragglers (E0 PR-0b) (#6256) * WIP: complexity lens enforcement * WIP: complexity lens enforcement * Enforcement rosters: split ScopeRoster (tree roots) from SubjectRoster (QualifiedName, structural ==) + last dsl stragglers (E0 / PR-0b) The fired subject_roster_string_dissolution_trigger (vocab.dag), executed: SubjectRoster carried BOTH filesystem scope roots and declaration names as one List<String> - a state-space conflation with two different comparison semantics (path-literal vs segment-structural) in one representation. - vocab.dag: SubjectRoster.entries -> List<QualifiedName> (v2.std.qualified_name authority; compared via structural ==, qualified_name_eq); new ScopeRoster { roots: List<String> } for tree roots; ScopeNarrowed.missing -> ScopeRoster; scope_roster_covers/subject_roster_covers now two fns with the right semantics each; trigger row deleted, split note left on the carrier. - standing_intent: desired_scope -> ScopeRoster; required_subjects grounds v1.compiler.infer.build_type_env via qualified_name_from_dotted_string. - contract/receipts/gate/enforcement_live: claimed_scope -> ScopeRoster; discovered_fn_subjects converts at the decl_facts boundary (subject_qn_of, same single pass, linear); self_application_for now reads facts directly (String prefix pre-conversion, fn-like only - TypeItem no longer counts toward self-application, a small honesty gain). - NEW RED control: permuted_segment_subject_does_not_cover - a QualifiedName with the same segments in a different order must NOT satisfy the subjects leg (the discriminator List<String> equality could not express). - self_application_liveness_discriminates gains a TypeItem-prefix control (kind filter proven, not just prefix). - dsl stragglers renamed (operator ask): phase_profile_proof_plan.dag dsl/tools -> dag/tools AND phase_profile_claim_executor.rs --source-root dsl -> dag. The Rust consumer test was failing on main since #6165 (source root does not exist: dsl); it now PASSES by execution - the only .rs change is that one literal. Receipts by execution (2026-07-05): 11/11 gate_test (incl. new permuted control), 10/10 enforcement_live witnesses; enrolled pair 40s/39s (QualifiedName interning over 14,283 facts is in the noise); pinned 3-red/3-green verdict unchanged (representation-only, zero leg flips - as planned); phase_profile_claim_executor 1 passed. Typechecker note: QualifiedName alias vs FreeMonoid<Symbol> does not unify in an if-branch JOIN (nominal expectation flows from a record-field into fold init while the then-branch expands structurally) - worked around by hoisting the fold out of the record construction; assignment-position coercion is fine. Same #5552 alias-instantiation residue family. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
briansrls
pushed a commit
that referenced
this pull request
Aug 11, 2026
main has been red since #8129 and every branch that merges it inherits the red. Two failures, one root cause, and the cause is NOT where it looks. `unresolved type 'Memory'` fired in dag/product/budget_tree.dag, dag/gunbc/ci_budget_tree.dag and dag/test/claim/budget_tree_witness_test.dag -- files dating to #6165 that were compiling. The obvious suspect was #8091, which added 213 lines to dag/std/measure.dag where `Memory` lives. That was a red herring: measure.dag's `Memory` lines are untouched. #8129 added a SECOND declaration spelled `Memory` -- a variant of BoardCapability in dag/product/compute_board/intent.dag -- and adding a name to the flat namespace is a corpus-wide edit, so `Memory` became ambiguous and every module importing it from std.measure as a type stopped resolving. The same PR added `unsatisfied_capabilities` to dag/product/compute_board/composition.dag, where gunbc.auth.github_credential already declared one, which is the second failure. THE NEWER NAME YIELDS, per the single-authority rule: `Quantity.Memory` in std.measure is the older and broader authority with consumers across the tree, and `unsatisfied_capabilities` in the auth module has five declaration sites and two consumers in heal_push_plan. So BoardCapability.Memory becomes MemorySubsystem -- accurate on an axis whose sibling constructor is already MemoryCapacity -- and the board fold becomes unsatisfied_board_capabilities. Nine call sites across four files; no behaviour changes and no emitted seed file mentions either name. Green by execution: compute_board_readiness, github_app_registry and budget_tree witnesses all pass here and all three fail on the base. WHAT THIS DOES NOT DO, stated so the repair is not mistaken for the wall. There is no mechanism preventing the next PR from doing exactly this again: the class is a flat-namespace homonym, which is decidable and therefore a construction wall waiting on the namespace lane's containment authority, not on diligence. Until that lands, this class recurs whenever two lanes add the same bare name, and it will keep arriving as an unrelated-looking build break in a third file. Co-authored-by: gunbc-ci-auto-heal <gunbc-ci-auto-heal@users.noreply.github.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
briansrls
pushed a commit
that referenced
this pull request
Aug 28, 2026
…says so first
I committed this file's import edge as "the witness that EXECUTES against
gunbc.auth.credentials" and opened its annotation with the same claim. I never
measured it. Measured now: 0 test fn, so floor discovery folds nothing from it;
no importer, so the support-module pattern that legitimises a zero-test-fn file
does not apply; no live_tree_disposition, so the fail-closed default would
decline it anyway. Eleven plain fn reachable by nothing.
Asserting execution without measuring it is the exact failure this change is
about, committed one level up: the PR's thesis is that a DeclarationRef creates
no edge, so a module cited that way is inert data dressed as an authority, and
I then offered inert evidence as proof of the repair. Found by smart-ram-730.
The prescribed repair is NOT applied, because it would declare something false.
Converting to test fn under SubstrateInputsOnly would enroll assertions whose
leaves are host effects: both roll-ups call gcp_oauth_access_token_via_gcloud,
whose body is shell.GCloud.AuthPrintAccessToken(), and the ADC leaves declare
uses net: std.resources.Network. Run directly, the gcloud leaf answers
Unimplemented { what: "unknown service operation: shell.GCloud.AuthPrintAccessToken" }
-- the call exists and nothing is behind it. Enrolled that way it would be
refused at the hermetic boundary, counted executed, assert nothing, and carry a
_test.dag name so BarrenTestSidecar vouched for it: a silently inert witness
converted into a loudly enrolled one, which is the decoration DESIGN 4b calls
worse than absent. smart-ram-730 verified this and withdrew the prescription.
So the annotation states the NO-ROUTE fact positively and first, rather than by
omission, and names what would actually make it execute -- modeling the gcloud
service operation, or restructuring onto a subject with no host effect. Neither
is done here; both are a different lane from a citation repair.
The import edge stays. It is a fact about REFERENCE, not execution: this module
names those symbols and resolved them through the flat whole-tree namespace, so
it was depended-upon-but-unimported regardless of whether its assertions ever
run.
The file is pre-existing (2749a44, #6165) and carries these properties on
main unchanged; this commit does not fix that and does not claim to.
briansrls
pushed a commit
that referenced
this pull request
Aug 28, 2026
…in for (#9453) * Replace the credential citation with the import edge it was standing in for gunbc.tailscale_acl_phase2_credential named gunbc.auth.credentials and gunbc.auth.optional_impersonation in four DeclarationRef rows and asserted the binding with a string-equality function, while reaching those modules by no import edge at all. A DeclarationRef is inert data -- no closure follows it -- so the module this carrier depends on for its credentials entered no compile closure and was typechecked by nothing, and its own defect (a bare shell.GCloud reference with no edge to extdeps.shell) stood on main behind that silence. The check was the matching decoration: every clause compared a row's literal field against the same literal, so its RED was authorable only by editing the row it read. Permanently green by construction and cited as evidence that the credential flow bound these authorities. Construction over validation (DESIGN section 5): the binding is now an import edge, carried by the same mechanism that typechecks the calls. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * wip: author the rest of the carrier's edges * Address review 56750: de-duplicate the witness match, make the strategy match exhaustive The witness restated the predicate's own match beside a call to it. Deleted. The wildcard arm is replaced by the named GcloudCli arm so a third strategy is a compile refusal at the operator-policy site rather than a silent false. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * Delete the strategy predicate too: it had the property I deleted the others for tailscale_acl_operator_adc_strategy is a literal data constant, so a predicate matching it is green by construction and reddenable only by editing the row it reads -- the exact property for which this change deleted five string comparisons. Keeping it was inconsistent; it is a change detector, not a check. The strategy is still carried structurally: it is passed to gcp_oauth_access_token, so a value that does not inhabit GcpOAuth2AccessTokenStrategy refuses at that call. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * Attach the witness annotation to its declaration The replaced comment block left a blank line before the following declaration. Section 4c admits only ATTACHED standalone leading // blocks; an unattached one refuses, which is why the witness entry started refusing before emit. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * Restore the live-write scaffold disposition my predicate deletion swallowed The deletion sliced from the annotation to design_holds, and that span also contained data tailscale_acl_phase2_live_write_disposition, so the witness referencing it went red. Restored verbatim from main, with the stale annotation that described the deleted predicate removed rather than left over it. The blank-line change in the witness is reverted: it was a wrong diagnosis of this error, not a fix for it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * Rebuild DESIGN.md as main's projection plus this change's paragraph The merge left DESIGN.md carrying the ours side verbatim, which drops main's authority-derived content -- what the generated-artifact merge driver warns about. Rebuilt from main's projection with the same two substitutions applied to the merged .dag authority, so the projection and its authority agree and main's new rows survive. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * The witness that EXECUTES against gunbc.auth.credentials records its edge too test.claim.gcp_oauth_access_token_witness called gcp_oauth_access_token and both leaf patterns with zero import statements, reaching them through the flat whole-tree namespace. That is depended-upon-but-unimported by a live consumer rather than by a prose row -- the same accidental pool coverage this change repairs in the carrier, in the worse place. Measured before adding the edge: each of the four names is declared in exactly one module across dag/ and src/v2, so the candidate set is a singleton and the import cannot reorder a binding. No claim is made about bare-name resolution where a name is multiply declared. Found by crisp-cat-907, verified by swift-badger-524, routed via warm-hawk-909. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * The witness I said EXECUTES does not execute, and the annotation now says so first I committed this file's import edge as "the witness that EXECUTES against gunbc.auth.credentials" and opened its annotation with the same claim. I never measured it. Measured now: 0 test fn, so floor discovery folds nothing from it; no importer, so the support-module pattern that legitimises a zero-test-fn file does not apply; no live_tree_disposition, so the fail-closed default would decline it anyway. Eleven plain fn reachable by nothing. Asserting execution without measuring it is the exact failure this change is about, committed one level up: the PR's thesis is that a DeclarationRef creates no edge, so a module cited that way is inert data dressed as an authority, and I then offered inert evidence as proof of the repair. Found by smart-ram-730. The prescribed repair is NOT applied, because it would declare something false. Converting to test fn under SubstrateInputsOnly would enroll assertions whose leaves are host effects: both roll-ups call gcp_oauth_access_token_via_gcloud, whose body is shell.GCloud.AuthPrintAccessToken(), and the ADC leaves declare uses net: std.resources.Network. Run directly, the gcloud leaf answers Unimplemented { what: "unknown service operation: shell.GCloud.AuthPrintAccessToken" } -- the call exists and nothing is behind it. Enrolled that way it would be refused at the hermetic boundary, counted executed, assert nothing, and carry a _test.dag name so BarrenTestSidecar vouched for it: a silently inert witness converted into a loudly enrolled one, which is the decoration DESIGN 4b calls worse than absent. smart-ram-730 verified this and withdrew the prescription. So the annotation states the NO-ROUTE fact positively and first, rather than by omission, and names what would actually make it execute -- modeling the gcloud service operation, or restructuring onto a subject with no host effect. Neither is done here; both are a different lane from a citation repair. The import edge stays. It is a fact about REFERENCE, not execution: this module names those symbols and resolved them through the flat whole-tree namespace, so it was depended-upon-but-unimported regardless of whether its assertions ever run. The file is pre-existing (2749a44, #6165) and carries these properties on main unchanged; this commit does not fix that and does not claim to. * The Unimplemented receipt was measured before the import edge existed, so it described a module this file no longer is I put a stale measurement into the commit that was correcting a false claim. The annotation said the gcloud leaf answers Unimplemented { what: "unknown service operation: shell.GCloud.AuthPrintAccessToken" } and concluded "nothing is behind it". That reading was real, but it was taken on main at dabe4c5 -- BEFORE this file had import extdeps.shell in its closure -- where the operation could not resolve at all. Carried across that boundary it described a module this file is no longer. Executed with the edge in place, both roll-ups DISPATCH: ◐ started shell.GCloud.AuthPrintAccessToken cause: TypeError { msg: "failed to execute 'gcloud': No such file or directory (os error 2)" } and the swapped roll-up first performs two real reads of ~/.config/gcloud/application_default_credentials.json. So the service operation is modeled and live; these entries execute a process exec and a file read, and fail only because the runner lacks the binary. The conclusion the stale receipt was offered for happens to survive unchanged -- SubstrateInputsOnly is false either way, and now for a stronger reason: not "the leaf is unreachable" but "the leaf demonstrably performs host effects". That is precisely what made it invisible. A false premise under a correct conclusion produces no contradiction to trip over, so nothing forced a re-read; the argument looked sound because it was sound, on the wrong evidence. Also corrected: "what would make it execute" named modeling the gcloud service operation. It is already modeled. What is missing is a subject with no host effect, or a disposition that admits one. Found by running the two roll-ups rather than re-reading the code -- the same instrument that produced the stale number, pointed at the current tree. --------- Co-authored-by: gunbc-ci-auto-heal <gunbc-ci-auto-heal@users.noreply.github.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.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.
Auto-opened by session-dashboard for session
eager-otter-104.Pushing to
session/eager-otter-104advances 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