feat: native-first executor backends + hub-and-spoke human gates (v1.6.0)#9
Merged
Conversation
Replace the B1-B4 backend ladder with named launch modes targeting each host's native parallel-agent machinery: - claude-team: agent teams, one teammate per story in a standing team (TeamCreate once; spawn/shutdown teammates per tick), SendMessage steering, teammate->lead HUMAN_GATE channel - claude-bg: native background sessions (claude --bg/attach/logs/stop), OS-bound, cron-driver compatible, cwd-enforced worktree - codex-subagent: multi_agent workers (desktop app + CLI) with shipped aep-builder/aep-evaluator roles, send_input steering, native approval overlay as human gate - codex-exec: headless codex exec --cd workers, steerable cross-session via codex exec resume; the cron-driver / hard-isolation Codex mode - legacy: tmux+cmux recipes preserved verbatim, selected only by explicit pin (git config aep.executor-backend tmux) or on generic hosts Cross-mode additions: human-gate protocol (signals/needs-human.md + blocked_on), orphan re-adoption after lead restarts, driver x backend compatibility matrix (session-bound vs OS-bound lifetimes), mode- dispatched evaluator spawn for build Phase 5, mode-dispatched wrap teardown, autopilot state gains backend/agent_id/last_liveness_hash. Also normalize all AEP command references to their canonical /aep-* names (/aep-autopilot, /aep-launch, ...) across skills, README, and docs. ADR: docs/decisions/native-first-executor.md Co-Authored-By: Claude Fable 5 <[email protected]>
…e backend Human gates no longer require the human to visit a worker's control surface: the main agent is the canonical console. Workers raise gates in needs-human.md; the orchestrator asks the human in the main session and relays the answer. Two styles: - block-in-place (claude-team / codex-subagent / legacy): worker waits, answer arrives by push (SendMessage / send_input / nudge) - gate-and-park (workflow / headless / codex-exec / claude-bg): worker commits WIP, records the gate, ends its run cleanly; orchestrator resumes a worker into the same worktree with the answer (orphan re-adoption recipe + answer) Gate-and-park elevates the dynamic-workflow fan-out into a complete backend: build agents return a structured `gated` result instead of guessing or stalling; the main agent collects gated stories after the run, asks the human, and resumes them (resumeFromRunId continuation or re-launch). New "Mode: workflow" recipe in backends.md; the /aep-dispatch "with workflow" path now creates .feature-workspaces worktrees and announces gate behavior instead of "no mid-flight feedback". Direct worker surfaces (teammate pane, claude attach, Codex threads, tmux attach) remain optional conveniences. Co-Authored-By: Claude Fable 5 <[email protected]>
…tegy Co-Authored-By: Claude Fable 5 <[email protected]>
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
Replaces the B1–B4 executor ladder with named launch modes targeting each host's native parallel-agent machinery, and redesigns human gates as hub-and-spoke (the main agent is the human's console). Every mode keeps the three invariants: per-story context window, AEP-created worktree at
.feature-workspaces/<ws>, per-story.dev-workflow/with the file-based signals protocol as the source of truth.New launch modes
claude-teamSendMessageHUMAN_GATE:(block-in-place)claude-bgclaude --bg)feedback.md+ stop/respawncodex-subagentaep-builder/aep-evaluatorroles (desktop app + CLI)send_inputcodex-execcodex exec --cdworkerscodex exec resume <id>exec resumelegacytmux send-keysworkflowgatedresultBehavior change: Claude Code with tmux installed no longer auto-selects tmux — pin with
git config aep.executor-backend tmux.Hub-and-spoke human gates
Workers record gates in
signals/needs-human.md+blocked_on: "human". The question flows to the main agent, the human answers there, and the answer is relayed per mode — by push (block-in-place) or by resuming a parked worker into its worktree (gate-and-park). Direct worker surfaces are optional conveniences. This is what elevates workflow mode: build agents return agatedresult instead of guessing/stalling; gated stories resume after the human answers.Also
/looplead supports teams; cron drivers require OS-bound modescodex exec --cd/ tmux split)/aep-*names across skills, README, docsdocs/decisions/native-first-executor.md; CHANGELOG[1.6.0]; marketplace.json → 1.6.0Verification
claude-team, confirming tmux demotion--bg→ probe correctly degrades; codex 0.130.0multi_agentstable)/loop,/opsx:*, Codex/agentuntouched🤖 Generated with Claude Code