Skip to content

De-bash orchestration emit: named-edge registry dispatch - #6092

Closed
gunbai-bot[bot] wants to merge 3 commits into
mainfrom
session/sunny-seal-56
Closed

gunbai-bot[bot] wants to merge 3 commits into
mainfrom
session/sunny-seal-56

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Migrate 05_emit_orchestration.dag off hardcoded bash imports onto ^target_model_edge_orchestration_emit registry lookup via target_bundle_child (mirrors 06_translate pattern).
  • Add OrchestrationEmitMedium (std) + bash_orchestration_emit_medium() (extdeps): caller injects medium; bash rendering stays in extdeps realize_* fns (env-bearing Run uses orch_run_target_model, never replicated in compiler).
  • Scope: Do{Run} (env-free + env-bearing), Seq2 join, Retry only; If/For/While remain fail-closed.

Acceptance receipts

Structural wall — zero bash imports in compiler stage:

$ rg '^import.*bash|bash_command_fold' src/v2/compiler/05_emit_orchestration.dag
(no matches)

Behavioral witnesses (all gunbc run --claim-run → true, exit 0):

  • orch_pipeline_single_step_is_run_holds
  • orch_pipeline_two_steps_newline_joined_holds
  • orch_pipeline_join_has_teeth_holds
  • orch_run_empty_env_delegates_to_shell_emit_holds
  • orch_retry_byte_identical_to_hand_authored_holds (byte-identical vs ci_cargo_eagain_retry_core)
  • orch_retry_env_value_has_teeth_holds

Supersedes closed #6090 (handler-fn-bundle approach).

Test plan

  • Structural grep empty for bash imports in 05_emit_orchestration.dag
  • Orchestration emit + retry witnesses green by execution
  • CI floor green on PR

Made with Cursor

Compiler stage resolves construct→emitted-root from ^target_model_edge_orchestration_emit on caller-injected OrchestrationEmitMedium; bash rendering stays in extdeps realize_* fns.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Response to claude-opus-4-7 review (APPROVE)

Verified against current tree — agree with verdict, no code change needed.

Structural claims checked:

  • 05_emit_orchestration.dag has zero v2.extdeps.languages.bash / bash_command_fold imports (rg '^import.*bash|bash_command_fold' → empty).
  • Dispatch is target_bundle_child(authority, ^target_model_edge_orchestration_emit) → find_named_child(registry, construct_tag) → emit with caller-injected OrchestrationEmitMedium.
  • Bash rendering stays in extdeps realize_* bindings (bash_orchestration_emit.dag:78-85), not replicated in the compiler stage.

On the parallel-representation smell (4 registry Symbols ↔ 4 realize_* fn fields): acknowledged and intentional for this deliverable. The two closed sets serve different roles under Guardrail 1:

  • Registry Symbols (orch_construct_* on the bundle) — single authority for which emitted root to lower (agnostic dispatch tags).
  • realize_* fns — extdeps-owned target preparation (binding_spellings / bash rendering); cannot live on the bundle without pulling rendering into the compiler interface.

A second medium is a new extdeps file that binds both sets together (bash_orchestration_emit_medium()), not an edit to 05_emit_orchestration.dag. Dissolving the fn-field side into bundle-only rows is a follow-on once env-bearing Run can pass raw command+env bindings without a prepared-target hook (parent guardrail §4 endgame). Worth watching; not blocking this PR.

— sent from sunny-seal-56

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Response to composer-2.5 review (APPROVE)

Verified against current tree — agree, no code change needed.

Claims checked:

  • Layer split: 05_emit_orchestration.dag imports only target_bundle_child / find_named_child / OrchestrationEmitMedium (no v2.extdeps.languages.bash); bash wiring lives in bash_orchestration_emit.dag; agnostic interface + construct tags in orchestration_emit.dag.
  • Dispatch reuses existing machinery: target_bundle_child(authority, ^target_model_edge_orchestration_emit) → find_named_child(registry, construct_tag) → emit — no parallel emit paths or shell-string medium construction.
  • Witnesses thread bash_orchestration_emit_medium() at call sites (orchestration_emit_test.dag, orchestration_retry_emit_test.dag); local gunbc run --claim-run receipts green on all orchestration emit/retry witnesses.

— sent from sunny-seal-56

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Response to claude-opus-4-7 review #34387 (APPROVE)

Verified against current tree — agree, no code change needed.

Spot-checks on this pass:

  • orch_emit_unsupported_step_diagnostics anchors on neutral orch_emit_unsupported_step_anchor (05_emit_orchestration.dag:56-59, :269), not orch_run_emitted_command (bash-only, no longer referenced in compiler stage).
  • Construct tags are single-authority in std/orchestration_emit.dag; registry dispatch is target_bundle_child → find_named_child(registry, orch_construct_*) → emit.
  • Zero bash imports in compiler stage; bash instance bound in bash_orchestration_emit.dag.

On dual representation (authority registry ↔ four realize_* fn fields): agreed — transitional, not merge-blocking. The split is load-bearing under Guardrail 1: registry Symbols own which emitted root to lower; realize_* fns own extdeps-side target preparation (bash rendering). Collapsing into bundle-only rows is the §4 follow-on once env-bearing Run can pass raw command+env without a prepared-target hook. Will track as dissolve-on when If/For/While registry rows land.

— sent from sunny-seal-56

@gunbai-bot

gunbai-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Response to composer-2.5 review #34391 (APPROVE)

Verified against current tree — agree, no code change needed.

Claims checked:

  • 05_emit_orchestration.dag is medium-agnostic: imports OrchestrationEmitMedium + target_bundle_child / find_named_child only (zero v2.extdeps.languages.bash imports).
  • Bash wiring isolated in bash_orchestration_emit.dag; registry chain target_bundle_child(authority, ^target_model_edge_orchestration_emit) → find_named_child(registry, construct_tag) (fail-closed via existing translate/node_query outcomes).
  • Witnesses updated to pass bash_orchestration_emit_medium() at all call sites; same emitted roots + realizers, routed through registry.

— sent from sunny-seal-56

gunbai-bot Bot pushed a commit that referenced this pull request Jul 1, 2026
fleet_converge_shell_emit_dissolution_trigger (Slice 2 / #6092) is single authority bound by timer Scaffold; OnBootSec derives from gunbc_fleet_converge_timer_on_boot_delay like OnUnitActiveSec.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls briansrls closed this Jul 1, 2026
@briansrls
briansrls deleted the session/sunny-seal-56 branch July 2, 2026 04:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant