Repository navigation
Typed observe/materialize/read-back for ProvisionCodexRuntime; delete host_codex_runtime_provision_script.dag - #8595
Merged
Merged
Conversation
… host_codex_runtime_provision_script.dag Replaces the hand-rolled bash body (concat-built if/grep/printf receipt markers) with three typed single-command argv steps in host_effect_realize: observe (--version), materialize (gunbc.Cli.Run against materialize_codex_runtime_on_local_host), and a mandatory read-back that re-runs observe and must independently satisfy the version-identity marker before the reconciliation converges. LocalShell dispatches through the existing typed argv services (gunbc.WitnessBin.Run / gunbc.Cli.Run); SshShell/FleetSsh route the same argv shapes through run_typed_argv_transport. Branching lives in .dag over typed exec results, not shell text markers. The argv builder codex_runtime_observe_argv moved to host_codex_runtime_provision_verdict.dag to avoid a host_effect_realize -> host_codex_runtime_provision -> host_toolchain_ensure -> host_effect_realize import cycle. The standalone mkdir-release-parent step is dropped: materialize_codex_runtime_bundle's own call chain already runs shell.Mkdir.Parents on release_parent. dag/gunbc/host_codex_runtime_provision_script.dag is deleted in this same cut, per the replacement-migration doctrine (one vertical, no dual authority). The rewritten design-witness test file's 10 test fns are verified green-by-execution via claim_batch. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
codex_runtime_observe_argv lives in gunbc.host_codex_runtime_provision_verdict (moved there to avoid an import cycle), not in gunbc.host_codex_runtime_provision as the prose note said. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Aug 20, 2026
Conflict was in docs/plans/shell-to-dag-residual-census-and-arc-completion.md only -- a hand-authored markdown file, not a generated projection (checked line 1 before resolving). Both conflicting regions were this branch's new text against the PRE-EDIT ORIGINAL, not against anyone else's change: main's edits to this file (#8595's LANDED row) are elsewhere and auto-merged cleanly. Verified by diffing the resolved file against origin/main and reading every removed line -- all ten are exactly the text this branch deliberately replaced. Merge commit rather than rebase, per repo policy: no force-push, so no dropped dashboard approvals. The nag asked for a rebase; the policy asks for a merge, and the merge reaches an identical end state without moving the head under review. 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.
Summary
ProvisionCodexRuntime(concat-built if/grep/printf receipt markers) with three typed single-command argv steps inhost_effect_realize.dag: observe (--version), materialize (gunbc.Cli.Runagainstmaterialize_codex_runtime_on_local_host), and a mandatory read-back that re-runs observe and must independently satisfy the version-identity marker before the reconciliation converges — never "we issued the install therefore it is installed".gunbc.WitnessBin.Run/gunbc.Cli.Run); SshShell/FleetSsh route the same argv shapes throughrun_typed_argv_transport. All branching (does the version match? did materialize fail?) is decided in.dagover typed exec results (exit code, stdout), not shell text markers.codex_runtime_observe_argvmoved fromhost_codex_runtime_provision.dagtohost_codex_runtime_provision_verdict.dagto avoid ahost_effect_realize -> host_codex_runtime_provision -> host_toolchain_ensure -> host_effect_realizeimport cycle.materialize_codex_runtime_bundle's own call chain (release_codex_runtime_bundle_immutable) already runsshell.Mkdir.Parentsonrelease_parent.dag/gunbc/host_codex_runtime_provision_script.dagis deleted in this same cut — per DESIGN.md's replacement-migration doctrine (one vertical, no dual authority, delete-first).docs/plans/shell-to-dag-residual-census-and-arc-completion.mdrows to reflect this cutover as LANDED.Test plan
dag/gunbc/host_effect_realize.dagtypechecks cleanly (verified by remoteclaim_batchresolve/typecheck pass).test fns in the rewrittendag/test/claim/host_codex_runtime_provision_design_witness_test.dagPASS, green-by-execution viaclaim_batch --hermetic(not just typecheck/grep):design_witness_realize_carries_scaffolddesign_witness_identity_mismatch_refuses_fail_closeddesign_witness_identity_ok_convergesdesign_witness_materialization_failed_refuses_fail_closeddesign_witness_transport_refused_refuses_fail_closeddesign_witness_host_unsupported_refuses_fail_closeddesign_witness_routes_through_host_effect_applydesign_witness_default_effect_is_codex_runtimedesign_witness_toolchain_kind_maps_to_effectdesign_witness_srv1_bundled_executable_under_release_root