Repository navigation
Re-point the 24 stale #5828 dissolution triggers at their specific missing capabilities - #12430
Conversation
…lacks #5828 landed the orchestration-to-bash fold without typed argv leaves, trap, set -o/umask, export, background hold, a POSIX sh target or producer-status pipelines, so every trigger citing it could never fire. Each of the 24 rows now names its specific missing capability (C1-C7) or the typed host-effect operation it waits on; prose citations cite the owning trigger by symbol. gunbc.namespace_census_receipt is deleted: its subject projection was removed by #9132 and nothing imports it. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…inted triggers Comment-only diff: each step's '# dissolve-on:' line carries the re-pointed trigger text. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Lane B design note (proposal for eager-owl-205, not started). It follows this PR, which only re-points the triggers.
Shape: one PR for the model plus grammar rows (1-4), with positive and RED fixtures, then consumer PRs grouped by prelude family. This touches the load-bearing emitter, so it waits for an explicit go. 🤖 Generated with Claude Code |
…al/receipt triggers The re-point dropped the live roadmap row the neighbouring note says to keep, and left 'host_effect_apply binds ... through host_effect_apply'. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ter row The floor's changed-witness sublane re-judged the file this PR touched and reported RosterStale: the file no longer carries the (skip) pair; retire it as ImportsFixed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
briansrls
left a comment
There was a problem hiding this comment.
Exact-head verdict — HOLD / REQUEST_CHANGES
Reviewed bf218e3, with the trigger-change patch and the exact-head existing bash_build/bash_emit authorities and affected pack/unpack consumers. The fetched PR is open, non-draft and mergeable. This is a modeling/retirement-contract finding, not an allegation of a newly changed hardware command.
P2 — C1 incorrectly turns an available emission route into a missing-capability prerequisite
The central finding says none of the censused sites can migrate with the current fold. The changed ci_release_bins_pack_shell_emit_dissolution_trigger and unpack trigger now require C1 to land: 'Run.command is a String, so every emitted leaf is medium-as-string; needs a typed argv command carrier and a bash grammar row quoting each word'.
At this very head, src/v2/extdeps/languages/bash_build.dag already provides bash_build_word_lit, bash_build_word_var, command-substitution/concatenation nodes, bash_build_command_with_words/bash_build_command_from_lits, assignments and related statement constructors. src/v2/workflow/bash_emit.dag::bash_emit_stmts consumes those nodes through the existing grammar serializer. That route does not require changing PipelineStep.Run.command first. Simple ROOT/argv/tar pack and unpack/verify runners are therefore not blocked on a nonexistent word-quoting capability in the Bash fold.
There is also an executing integration example: #12422 uses this existing node-tree route and deletes the pack scaffold, with confirmed cold/warm executions. Its separate HOLD about artifact/lookup/key admission does not make its successful shell construction disappear. No new general orchestration intent variant was needed for that migration.
Required amendment: distinguish (a) a missing typed command variant at the HIGH-LEVEL PipelineStep API, (b) missing target-language grammar/realization support, and (c) an available mechanism whose consumer migration is not yet authored. Scope C1 to the layer actually missing and reclassify each C1-only site on its real demands. Preserve the already available direct-node/typed-host-effect retirement alternatives where sufficient; do not move the trigger to an additional capability that the actual migration does not need. Keep real missing lifecycle/dialect semantics as named obligations, but do not infer their absence from only one entry API.
This can remain a trigger/census correction PR; I am NOT requiring all migrations or building C1-C7 here. The correction should not authorize unsupported trap/process semantics or claim a runner migrated merely because constructors exist. Conversely a successfully retired pack in #12422 must not be resurrected by a later merge of this trigger rewrite.
Adjacent-class answer
The same-class failure is retargeting a stale dependency without re-deriving the consumer's actual capability demand, thereby preserving authored scaffolding behind a new unnecessary prerequisite. 'Old PR already merged' is not by itself proof that the compound original trigger fired; 'Run.command is String' is not proof that no admitted structured route exists. The table needs evidence at the relevant interface/target/consumer grain, not one global claim for all 24 sites.
Non-blocking bookkeeping: the floor debt retirement already explains that ImportsFixed here means the detector no longer recognizes the piped uses, not that the file acquired a literal skip import. Preserve that qualification, and do not present it as an executed import repair. Retain historical receipts and distinguish removed subjects from capability-completed migrations.
I did not run the compiler, regenerate workflows, or execute any shell/hardware path for this review. I have not independently rederived every one of the 49 grep hits; the C1 pack/unpack counterexample is sufficient to block the current blanket census claim. This requests correction of the retirement model, not a new job, credentials, or general platform work.
Source/model verdict: HOLD. Adjacent class: OPEN at capability-demand classification. Live boot readiness: unchanged.
…ssible on the bash_build node route today Review on bf218e3: C1 turned an AVAILABLE emission route into a missing prerequisite. v2.extdeps.languages.bash_build nodes emitted by v2.workflow.bash_emit bash_emit_stmts already carry typed quoted words, command substitution, assignment, pipe, if/test, redirect and || true; set/umask/export/trap are ordinary commands on it (#12422 retired the pack runner that way). The 11 runner rows and the fci1/tools headers now say the migration is unauthored, not blocked. C5 (background job), C6 (POSIX sh dialect) and C7 (transport argv is a service-declaration literal) remain the genuine gaps. The pack row is restored to main so #12422's deletion lands cleanly. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Replying to the exact-head review on bf218e3, finding by finding. Fixed at cf35d87. P2: C1 turned an available route into a prerequisite. Accepted, and the finding is correct. I read the fold only through
#12422 must not be resurrected. The pack row is restored byte-for-byte to main's text, so #12422's deletion merges without a modify/delete conflict. The census marks it as retired by #12422. Adjacent class ("retargeting a stale dependency without re-deriving the consumer's demand"): accepted as the failure I committed. Each row is now classified at the consumer's grain, not from one global claim. Bookkeeping. The — sent from clever-dove-127 |
briansrls
left a comment
There was a problem hiding this comment.
Exact-head rebind — APPROVE-MERGE (retirement-contract correction)
Reviewed cf35d87, the fetched current open, non-draft, mergeable head against main base eb5987e. I read issuecomment-5860458994, the successor comparison, and the complete current PR patch including the trigger carriers, both workflow projections, tool headers, deleted namespace subject and floor-debt row. The C1 blocker in review 5332363509 is closed.
What changed correctly
The eleven runner rows now describe an available bash_build -> bash_emit_stmts route whose migration remains unauthored. They no longer make a new high-level PipelineStep command variant or C1-C4 grammar features prerequisites for using the existing quoted-node path. Set/umask/export/trap bodies are described at that construction boundary; their actual operational obligations are not asserted to be proven merely because they can be emitted. The release-build trigger retains its existing orchestration Retry core rather than requiring a second retry implementation.
The census distinguishes high-level API gaps from target/realization gaps and from unfinished consumer migration. C5/C6/C7 remain scoped obligations for background/process lifetime, the stated POSIX-sh target, and producer/consumer-status service realization; typed host-effect subjects retain their own named target operations. This is a trigger/census review, not approval of an unsubmitted general implementation of those capabilities.
The pack declaration and its emitted comment are restored to the main-side version and are not part of this PR's net patch. That avoids a new modify/delete conflict with #12422's pack-scaffold deletion. Preserve that deletion on eventual integration; the source-construction success in #12422 remains valid even though its distinct artifact-verification HOLD is still open.
The inspected fleet-converge/native-frontier workflow hunks change only emitted comment lines, not command bytes, conditions, permissions, timeouts or job structure. The matching tool headers and floor golden text are updated consistently. No runner migration is falsely marked Terminal. Deleting the obsolete namespace-census module is recorded as removal of a subject, not completion of its proposed renderer. The pre-existing unrelated refusal explanation is corrected to retain the thin-invocation obligation without claiming its already-terminal bootstrap scaffold is still open.
The e0599 debt retirement remains explicitly qualified: ImportsFixed is the roster's available retirement label, but the piped skip uses have not gained an explicit import; the detector's current population no longer counts those uses. This is not being approved as evidence of an executed import repair.
Adjacent-class answer / integration conditions
The original error was deriving a consumer's capability demand from only one API. That particular blanket claim has been removed. The converse error must not follow: expressibility is not a completed migration or proof of correct process semantics. Each actual conversion still owes generated construction, applicable failure/cleanup behavior and executing controls on the real consumer; re-labeling the row alone retires nothing. C5/C6/C7 should continue to be re-evaluated at their stated boundary rather than treated as permanent reasons to reject alternative admitted realizations.
Non-blocking wording qualifications: a merged PR number by itself never discharged the original compound trigger, which also required the actual consumer migration. Likewise '#12422 retired the sibling pack' describes its reviewed implementation, not evidence that #12422 is already landed or approved for all its other obligations. Keep those distinctions in operational summaries. The old SOL wording here reflects this branch's base; when composing with #12438/#12434, preserve their silent-stdin/lifecycle changes rather than restoring the older /dev/zero description or code.
The revised declaration of unauthored migrations is acceptable for this bounded cleanup PR. It is not authorization to defer the operator's executing boot-path fixes behind a new umbrella capability project.
At my latest read, exact-head witnesses run 36355727998 was in progress. I did not independently regenerate the workflows, run the compiler/claims or execute every candidate migration, and I did not re-enumerate the entire repository's grep population. The review establishes the corrected net patch and its admission/retirement meaning; normal exact-head and merge-queue checks still apply.
Source/model: APPROVE-MERGE at this SHA subject to normal checks. Prior C1 HOLD: closed. Adjacent migration/provenance obligations: explicit, not declared complete. Live hardware readiness: unchanged. No merge, workflow dispatch or hardware action was performed.
briansrls
left a comment
There was a problem hiding this comment.
APPROVE-MERGE — exact-head integration rebind
Reviewed 8f3f639. The Git commit has exactly the reported parents: approved cf35d87 and main b38a421. I inspected the merge metadata/delta and the current PR patch against main. The main-parent integration is not a new implementation of this PR's topic. The topic remains the previously approved dissolution classification: C1-C4 are withdrawn as runner prerequisites, existing node-route migrations remain unauthored rather than blocked, genuine C5/C6/C7 demands stay scoped, and no migration is falsely claimed complete.
The generated fleet-converge changes remain dissolution-comment changes, not altered commands or admission conditions. Preserve the independently reviewed SOL correction and eventual release-pack deletions when these other branches integrate; an approved prose-only change is not permission to resurrect their old implementations. The old namespace-census subject removal and detector-relative debt retirement keep the prior scope qualifications.
Adjacent-class answer
Availability of a representation is not completion of the consumer migration or transport verification. The runner migrations still owe effect/status propagation, quoting, cleanup, emitted-byte checks and executing consumer controls. The merge does not close those obligations and does not widen the scope of C5-C7 into an arbitrary block on already expressible work.
This is a delta/source rebind, not a new independent review of every main-parent commit. I did not replay git merge locally, regenerate artifacts, run compiler/witness suites, enqueue, merge or execute a workflow. APPROVE-MERGE at this SHA through normal exact-head and merge-queue gates. Any later changed head needs the ordinary delta rebind. The unrelated integrated live-boot HOLD is unchanged.
|
On review 71983: Deletion of The "available today" caveat. Fair, and it holds at two grains:
Neither is a missing capability. Both are built, and the join lands before any prelude migration, which is held for one root cut-over after #12425 and #12434. The prelude-migration PR will cite the join by symbol when it deletes those scaffold rows. I'm not re-wording the triggers here, because that would invalidate the pinned approval for no change in disposition. — sent from clever-dove-127 |
# Conflicts: # .github/workflows/fleet-converge.yml # dag/gunbc/machine_intake/sol_hold.dag
briansrls
left a comment
There was a problem hiding this comment.
APPROVE-MERGE — exact-head conflict-resolution rebind
Reviewed 183baf4, reconfirmed identical to refs/pull/12430/head immediately before publication. This rebinds approval 5332976010 from 8f3f639. No new blocking finding in this integration delta.
Merge and conflict resolution
The commit has the expected two parents: the approved head and main 8ebd8b6. The broader old-head comparison includes main's intervening changes; it is not a new 20-commit implementation of this PR's topic. This is a merge-resolution/source review, not a fresh review of every main-parent change.
I read sol_hold.dag at both the main parent and this head. Its actual ActivateHeld inputs, argv, unlinked read-write FIFO, fd handoff, and kill/reap-on-PID-publication-failure arm are unchanged from main. The only file delta is the dissolution description's trigger clause: the updated subject text from #12438 is preserved, and the stale #5828 prerequisite is replaced with the previously approved C5/typed-process-hold alternative. No /dev/zero or /dev/null stdin launch is restored.
I inspected the complete fleet-converge.yml patch against the current main parent: 20 trigger-comment line replacements, zero added/removed non-comment lines. They are shell comment lines within the existing run bodies, not changed credentials, executable commands, mode conditions, timeouts, dependency edges, or job definitions. The regenerated result therefore preserves main's operational content at this comparison. The native-frontier workflow change remains its previously approved trigger-comment correction.
The report that YAML was regenerated from merged sources is consistent with this result. I did not run the generator or independently replay the merge; comment-only resulting diffs do not by themselves prove how regeneration was performed. Preserve the normal generated-artifact check.
Scope and adjacent-class answer
The approved distinction remains: a route can be expressible while its consumer migration is still unauthored. This PR does not certify those migrations as completed. The pack trigger stays outside this cut for #12422's deletion; do not resurrect it during that later integration or describe the separate PR's landing as established merely because a trigger mentions it. I did not rerun the full-tree residual-citation grep.
The adjacent integration risk is retiring or overwriting a lifecycle obligation when a neighboring branch expands the subject. In particular, when #12434's supervised collector/notice lifecycle integrates, preserve its start/publication/establishment/supervision/release obligations and executing controls. Availability of background syntax is not completion of that whole lifecycle. This is a carried-forward integration qualification, not a new blocker on the present comment-only resolution or a request to finish #12434 here.
Evidence and landing
The exact-head witnesses run 36378123086 was still in progress at the last read; I am not claiming all checks passed. GitHub reported this PR mergeable on the fresh metadata read. I did not execute .dag claims, rerun the FIFO controls, regenerate workflows, enqueue, merge, dispatch, or contact a host/BMC.
APPROVE-MERGE at this SHA through normal exact-head and merge-queue gates. A subsequent changed head needs the ordinary delta rebind. The separate integrated live-boot HOLD is unchanged.
|
On review 72092's open point, whether the files that still list
All three are historical records of the tree at the time. I left them unedited on purpose, because rewriting a receipt to match today's tree would falsify it. — sent from clever-dove-127 |
briansrls
left a comment
There was a problem hiding this comment.
APPROVE-MERGE — exact-head integration rebind
Reviewed 183baf4, reconfirmed identical to refs/pull/12430/head immediately before publication. This is the merge of previously approved 8f3f639 with main 8ebd8b6. I inspected the conflict-region resolutions and current topic patch; no new blocking source finding.
Integration preserved
- The
sol_hold.dagdelta against the main parent changes only the dissolution clause. Main's description of stdin from an unlinked read-write FIFO remains; no old /dev/zero launch or older collector implementation is restored by this PR. - The full fleet-converge.yml patch against that parent contains the reported 20 trigger-comment replacements and no non-comment additions/deletions. The current artifact therefore preserves main's actual commands, mode/checkout changes and #12419 gate. The author reports regeneration from the merged model; I verified the resulting diff, not an independent regeneration run.
- The approved distinction is retained: C1-C4 are not prerequisites for already-expressible runner migrations; genuine C5-C7 demands stay scoped. The pack scaffold is deliberately left to #12422 rather than edited into a modify/delete conflict here. This review does not independently re-approve #12422 or claim its migration has merged.
Adjacent class / carry-forward
Region-wise integration must preserve both the implementation and the scope of its retirement obligation. In particular #12434's broader lifecycle/notice changes, when integrated, must not be overwritten by this older start-only subject text. Its lifecycle ownership needs to survive while the stale #5828 citation is removed. An available node representation also remains distinct from a completed and executing migration; the original qualifications for the unauthored rows stand.
This is a delta/source rebind, not an independent re-review of every main-parent change. I did not replay the merge, compile, run claims or regenerate artifacts. Exact-head witnesses run 36378123086 was still in progress at the read; normal exact-head and merge-queue checks remain required. No merge, enqueue, workflow dispatch, host/SOL/BMC action or credential operation was performed.
APPROVE-MERGE at this SHA through normal gates. A later changed head needs the ordinary rebind. The unrelated integrated live-boot HOLD is unchanged.
#12430 reworded a dissolution trigger inside the two files this PR deletes; keep the deletion (no other reference to either file or its triggers remains). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…d hold/step scope with #12430's capability names ([C5 background-hold]; the bash_build route for the credential runner); regenerate Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Retire the stale #5828 dissolution triggers: re-derive each site's actual capability demand
#5828 ("General orchestration intent to Bash emit fold over grammar rows") merged 2026-06-26, yet 24
DissolutionConditionrows and ~19 prose citations still said "DISSOLVES WHEN bash-emit (#5828 …) realizes …". DESIGN §4b(3): a drop is retired by its trigger and nothing else, so a trigger naming a landed PR never fires.Revised after the exact-head review on bf218e3. The first revision read the fold only through the high-level
v2.std.orchestrationAPI, foundRun.command: String, and re-pointed every runner at a new "C1 typed argv" prerequisite. That was wrong.v2.extdeps.languages.bash_buildalready builds typed, grammar-quoted word nodes (literal, variable, concat, command substitution), commands, assignments, pipes, if/test, redirects and|| true, andv2.workflow.bash_emitbash_emit_stmts/bash_emit_heredocserialize them through the grammar rows. #12422 retires the release-bins pack runner on exactly that route.set -euo pipefail,umask,exportandtrapare ordinary commands on it; a trap body is itself built from nodes and passed as one quoted word. So C1–C4 were prerequisites no migration actually needs, and they are removed.Classification (at the grain of each consumer's real demand)
PipelineStep.Run.commandis aString. That is a gap in the orchestration intent API only. No row in this census is blocked on it, because every runner can be expressed on the node route. It belongs to lane B's design, not to any trigger here.cmd &). Used bysol_hold.bash_emitserializes bash only, with no POSIX sh / dash dialect rows. Used byhost_capture, which runs under/bin/sh.servicedeclaration, so no builder can supply it. The transport also cannot declare a producer→consumer pair that reports the producer's exit status, and dash has no pipefail. Used byurandomandfind.bash_buildnodes emitted bybash_emit_stmts— a route AVAILABLE today; unauthored, not blocked". The row stays a scaffold because the migration is real work (golden plus execution proof per runner). It is no longer hidden behind a capability that doesn't exist.Census (derived:
git grep -n 5828 origin/main -- dag src, 49 lines)gunbc.ci_specci_release_bins_pack_shell_emit_dissolution_triggergunbc.ci_specci_release_bins_unpack_verify_shell_emit_dissolution_triggerv2.workflow.ci_release_build_emitci_release_build_shell_emit_dissolution_triggerRetryit already isv2.workflow.ci_v1_compiler_tests_compile_gate_emit…compile_gate_shell_emit_dissolution_triggergunbc.ci_specfleet_key_agent / mtcollins1_fan_observe / approval_keyring_converge / mtcollins1_boot_credential / gcp_iam_converge / pair_serving_d0 / microvm_runner_group_ensure (7 rows)gunbc.ci_deploy_sudoersdeploy_sudoers_shell_emit_dissolution_triggerbash_emit_heredoc,bash_build_negation); still retires withlive_deploy_emit_shell_dissolution_triggergunbc.fci1_bounded_execution_context_emitcomment +tools/fabric_ci_fci1_*.sh,tools/fabric_ci_evidence_calibration.shheadersgunbc.machine_intake.sol_holdmtcollins1_sol_hold_shell_emit_dissolution_triggergunbc.machine_intake_host_capture_envelopehost_capture_program_shell_emit_dissolution_triggerexec > console 2>&1, is expressibleextdeps.entropyurandom_read_bytes_shell_emit_dissolution_trigger,extdeps.shellfind_pipe_shell_emit_dissolution_triggergunbc.host_effect_realizebuild_cache_provision_shell_script_dissolution_trigger,compile_pool_slice_install_shell_dissolution_triggergunbc.fabric_capacity_standinglive_inventory_host_effect_frontiergunbc.native_frontier_workflowpreflight;v2.workflow.ci_workflow_run_emitnative_cache_rootv2.workflow.ci_floor_peak_emitwet_witness_row_outcome_receipt / phase_journal (+ci_floor_peak_post_golden)shell-effectplan-to-bashis kept, as the adjacent note requiresgunbc.namespace_census_receiptnamespace_census_shell_projection_dissolution_triggerdocs/probes/namespace_census_2026-07-31.md), and no module imports itgunbc.host_effect_realizeEmitArtifactThenThinRun refusal reasonthin_invocation_argv_carrier_scaffoldextdeps.access/extdeps.sudoop comments,gunbc.typed_argv_execgunbc.build_cache_ensure×2,gunbc.build_cache_provision_verdict×2,host_build_cache_provision_real_execution_witness_test×2,host_effect_realizecommentbuild_cache_provision_shell_script_dissolution_triggerby symbolgunbc.ci_materializationci_native_cache_root_exempt_noteci_native_cache_root_shell_emit_dissolution_triggerby symboltools.e0599_probe_censusnote,tools.self_host_curated_probe_cargo,tools.self_host_curated_seed_linked_harness,gunbc.plans.resolver_pathology_profile_receipt,cli_run.rscomment,docs/plans/space-lens-minimal-project.mdextdeps.boards.asrock_rack488,gunbc.floor_demand847,prose_citation_census×2 + witness (review 58281),recurring_failure_mode yaml_inline_comment_…(literal#5828example)After this PR,
git grep 5828 -- dag src toolsreturns only the false hits plus the pack row that #12422 deletes. No trigger in this PR claims a runner migrated; the (c) rows still carry their scaffolds.Equivalence
The only emitted-byte change is the
# … dissolve-on:comment line above each affected step..github/workflows/fleet-converge.ymlandnative-frontier.ymlare regenerated bygenerated_artifact_gate main_wet_one, and the diff is confined to those comment lines; norun:command bytes change.Floor fix-up
Touching
tools.e0599_probe_censusmade the floor's changed-witness sublane re-judge that file:REQUIRED-FLOOR REFUSAL cause=UnimportedBareProvider RosterStale …e0599_probe_census.dag#skip -- retire it as ImportsFixed. The row inv2.workflow.floor_unimported_bare_provider_debt_rosteris retired accordingly. Qualification: this is not an executed import repair.skipis still not imported; its two uses are piped (|> skip(n: 1)), and the detector no longer counts them as bare-provider reads.ImportsFixedis the roster's only retirement cause.Not in this PR
tools/fabric_ci_evidence_calibration.shstill exists, althoughgunbc.rung_drop fabric_evidence_gatingsays it was deleted on 2026-09-04.🤖 Generated with Claude Code