Loading...
Loading...
Cancel any active OMX mode (autopilot, ralph, ultrawork, ecomode, ultraqa, swarm, ultrapilot, pipeline, team)
npx skill4agent add yeachan-heo/oh-my-codex cancel--force/cancel/cancelstate_list_activestate_get_status.omx/state/sessions/{sessionId}/….omx/state/*.json.omx/state/swarm.db.omx/state/swarm-active.markerstate_clear--force--all/cancel --force/cancel --allstate_list_active.omx/state/sessions/{sessionId}/…state_clearstate_clearsession_id.omx/state/*.json.omx/state/swarm*.db.omx/state/team/*/omx-team-*state_clearsession_id--force--all.omx/state/autopilot-state.json.omx/state/ralph-state.json.omx/state/ralph-plan-state.json.omx/state/ralph-verification.json.omx/state/ultrawork-state.json.omx/state/ecomode-state.json.omx/state/ultraqa-state.json.omx/state/swarm.db.omx/state/swarm.db-wal.omx/state/swarm.db-shm.omx/state/swarm-active.marker.omx/state/swarm-tasks.db.omx/state/ultrapilot-state.json.omx/state/ultrapilot-ownership.json.omx/state/pipeline-state.json.omx/state/plan-consensus.json.omx/state/ralplan-state.json.omx/state/boulder.json.omx/state/hud-state.json.omx/state/subagent-tracking.json.omx/state/subagent-tracker.lock.omx/state/rate-limit-daemon.pid.omx/state/rate-limit-daemon.log.omx/state/checkpoints/.omx/state/sessions/# Check for --force or --all flags
FORCE_MODE=false
if [[ "$*" == *"--force"* ]] || [[ "$*" == *"--all"* ]]; then
FORCE_MODE=true
fistate_list_active.omx/state/sessions/{sessionId}/…state_get_statusautopilotralphultraworksession_id/cancel.omx/state/*.jsonstate_clear.omx/state/team/# Check for active teams
ls .omx/state/team/*/config.json 2>/dev/nullFor each team found in .omx/state/team/:
1. Read config.json to get team_name and workers list
2. For each worker:
a. Write shutdown inbox to .omx/state/team/{name}/workers/{worker}/inbox.md
b. Send short trigger via tmux send-keys
c. Wait up to 15 seconds for worker tmux pane to exit
d. If still alive: mark as unresponsiveAfter graceful pass:
1. For each remaining alive worker:
a. Send C-c via tmux send-keys
b. Wait 2 seconds
c. Kill the tmux window if still alive
2. Destroy the tmux session: tmux kill-session -t omx-team-{name} 1. Strip AGENTS.md team worker overlay (<!-- OMX:TEAM:WORKER:START/END -->)
2. Remove team state directory: rm -rf .omx/state/team/{name}/
3. Clear team mode state: state_clear(mode="team")
4. Check for linked ralph: state_read(mode="ralph") — if linked_team is true:
a. Clear ralph state: state_clear(mode="ralph")
b. Clear linked ultrawork if present: state_clear(mode="ultrawork")
5. Emit structured cancel reportTeam "{team_name}" cancelled:
- Workers signaled: N
- Graceful exits: M
- Force killed: K
- tmux session destroyed: yes/no
- State cleaned up: yes/no.omx/state/team/*/config.jsontmux kill-session -t omx-team-{name}rm -rf .omx/state/team/{name}/state_clear(mode="team")cancelAutopilot()src/hooks/autopilot/cancel.ts:27-78# Autopilot handles its own cleanup + ralph + ultraqa
# Just mark autopilot as inactive (preserves state for resume)
if [[ -f .omx/state/autopilot-state.json ]]; then
# Clean up ralph if active
if [[ -f .omx/state/ralph-state.json ]]; then
RALPH_STATE=$(cat .omx/state/ralph-state.json)
LINKED_UW=$(echo "$RALPH_STATE" | jq -r '.linked_ultrawork // false')
# Clean linked ultrawork first
if [[ "$LINKED_UW" == "true" ]] && [[ -f .omx/state/ultrawork-state.json ]]; then
rm -f .omx/state/ultrawork-state.json
echo "Cleaned up: ultrawork (linked to ralph)"
fi
# Clean ralph
rm -f .omx/state/ralph-state.json
rm -f .omx/state/ralph-verification.json
echo "Cleaned up: ralph"
fi
# Clean up ultraqa if active
if [[ -f .omx/state/ultraqa-state.json ]]; then
rm -f .omx/state/ultraqa-state.json
echo "Cleaned up: ultraqa"
fi
# Mark autopilot inactive but preserve state
CURRENT_STATE=$(cat .omx/state/autopilot-state.json)
CURRENT_PHASE=$(echo "$CURRENT_STATE" | jq -r '.phase // "unknown"')
echo "$CURRENT_STATE" | jq '.active = false' > .omx/state/autopilot-state.json
echo "Autopilot cancelled at phase: $CURRENT_PHASE. Progress preserved for resume."
echo "Run /autopilot to resume."
ficlearRalphState()clearLinkedUltraworkState()src/hooks/ralph-loop/index.ts:147-182if [[ -f .omx/state/ralph-state.json ]]; then
# Check if ultrawork is linked
RALPH_STATE=$(cat .omx/state/ralph-state.json)
LINKED_UW=$(echo "$RALPH_STATE" | jq -r '.linked_ultrawork // false')
# Clean linked ultrawork first
if [[ "$LINKED_UW" == "true" ]] && [[ -f .omx/state/ultrawork-state.json ]]; then
UW_STATE=$(cat .omx/state/ultrawork-state.json)
UW_LINKED=$(echo "$UW_STATE" | jq -r '.linked_to_ralph // false')
# Only clear if it was linked to ralph
if [[ "$UW_LINKED" == "true" ]]; then
rm -f .omx/state/ultrawork-state.json
echo "Cleaned up: ultrawork (linked to ralph)"
fi
fi
# Clean ralph state
rm -f .omx/state/ralph-state.json
rm -f .omx/state/ralph-plan-state.json
rm -f .omx/state/ralph-verification.json
echo "Ralph cancelled. Persistent mode deactivated."
fideactivateUltrawork()src/hooks/ultrawork/index.ts:150-173if [[ -f .omx/state/ultrawork-state.json ]]; then
# Check if linked to ralph
UW_STATE=$(cat .omx/state/ultrawork-state.json)
LINKED=$(echo "$UW_STATE" | jq -r '.linked_to_ralph // false')
if [[ "$LINKED" == "true" ]]; then
echo "Ultrawork is linked to Ralph. Use /cancel to cancel both."
exit 1
fi
# Remove local state
rm -f .omx/state/ultrawork-state.json
echo "Ultrawork cancelled. Parallel execution mode deactivated."
ficlearUltraQAState()src/hooks/ultraqa/index.ts:107-120if [[ -f .omx/state/ultraqa-state.json ]]; then
rm -f .omx/state/ultraqa-state.json
echo "UltraQA cancelled. QA cycling workflow stopped."
fiecho "No active OMX modes detected."
echo ""
echo "Checked for:"
echo " - Autopilot (.omx/state/autopilot-state.json)"
echo " - Ralph (.omx/state/ralph-state.json)"
echo " - Ultrawork (.omx/state/ultrawork-state.json)"
echo " - UltraQA (.omx/state/ultraqa-state.json)"
echo ""
echo "Use --force to clear all state files anyway."--force--allstate_list_activestate_get_statusautopilotralphultraworkstate_clearstate_clearstate_clearsession_id.omx/state/*.json.omx/state/team/*/omx-team-*session_id| Mode | Success Message |
|---|---|
| Autopilot | "Autopilot cancelled at phase: {phase}. Progress preserved for resume." |
| Ralph | "Ralph cancelled. Persistent mode deactivated." |
| Ultrawork | "Ultrawork cancelled. Parallel execution mode deactivated." |
| Ecomode | "Ecomode cancelled. Token-efficient execution mode deactivated." |
| UltraQA | "UltraQA cancelled. QA cycling workflow stopped." |
| Swarm | "Swarm cancelled. Coordinated agents stopped." |
| Ultrapilot | "Ultrapilot cancelled. Parallel autopilot workers stopped." |
| Pipeline | "Pipeline cancelled. Sequential agent chain stopped." |
| Team | "Team cancelled. Teammates shut down and cleaned up." |
| Plan Consensus | "Plan Consensus cancelled. Planning session ended." |
| Force | "All OMX modes cleared. You are free to start fresh." |
| None | "No active OMX modes detected." |
| Mode | State Preserved | Resume Command |
|---|---|---|
| Autopilot | Yes (phase, files, spec, plan, verdicts) | |
| Ralph | No | N/A |
| Ultrawork | No | N/A |
| UltraQA | No | N/A |
| Swarm | No | N/A |
| Ultrapilot | No | N/A |
| Pipeline | No | N/A |
| Plan Consensus | Yes (plan file path preserved) | N/A |
.omx/state/tmux list-sessions -F '#{session_name}' 2>/dev/null | grep '^omx-team-'rm -rf .omx/state/team/*/<!-- OMX:TEAM:WORKER:START --><!-- OMX:TEAM:WORKER:END -->--forcerm -rf .omx/state/team/ # All team state
# Kill all omx-team-* tmux sessions
tmux list-sessions -F '#{session_name}' 2>/dev/null | grep '^omx-team-' | while read s; do tmux kill-session -t "$s" 2>/dev/null; done