Skip to content

feat(goal-mode): expose autonomous Goal Mode lifecycle (T-27) - #6

Merged
jaesbit merged 1 commit into
mainfrom
feat/t27-goal-mode
Jul 2, 2026
Merged

feat(goal-mode): expose autonomous Goal Mode lifecycle (T-27)#6
jaesbit merged 1 commit into
mainfrom
feat/t27-goal-mode

Conversation

@jaesbit

@jaesbit jaesbit commented Jul 2, 2026

Copy link
Copy Markdown
Owner

Why

T-27: bring omp's Goal Mode to the cockpit so an objective can continue in a controlled way across turns, from the web session.

Scope

  • Per-session Goal Mode bridge (apps/server/src/bridge/goal-mode-bridge.ts) over the SDK's real goalRuntime — create, pause, resume, cancel, and persistence hydration on resume (restored paused via goalRuntime.onThreadResumed()).
  • WebSocket action transport and snapshot fields for goal state/progress (apps/server/src/bridge/{in-process,types}.ts, apps/server/src/ws.ts, packages/protocol/src/index.ts).
  • /goal <objective> and /goal pause|resume|cancel composer commands (apps/web/src/components/Composer.tsx).
  • Header status/progress display and pause/resume/cancel controls (apps/web/src/components/chat/ChatHeader.tsx).
  • Store/reducer wiring and state hydration (apps/web/src/lib/{store,reducer,types}.ts).

Design notes

  • goal-start/goal-continuation are hidden custom messages — autonomous turns never render as manual composer prompts.
  • Plan Mode and Goal Mode are mutually exclusive: enabling Plan Mode pauses (not drops) a live goal; creating/resuming a goal exits Plan Mode first; cancel aborts a streaming goal before dropping it, then restores the previous tool set.

Testing

  • Focused bridge tests (5), queue regression tests (8), reducer tests (17) — all pass.
  • Server typecheck and web production build pass.
  • No service restart performed as part of this work.

- Per-session Goal Mode bridge over the SDK goalRuntime: create, pause,
  resume, cancel, and persistence hydration on resume (restored paused).
- WebSocket action transport and snapshot fields for goal state/progress.
- /goal <objective> and /goal pause|resume|cancel composer commands.
- Header status/progress display and pause/resume/cancel controls.
- Plan Mode and Goal Mode are mutually exclusive: enabling Plan Mode
  pauses a live goal, creating/resuming a goal exits Plan Mode first,
  cancel aborts a streaming goal before dropping it.
@jaesbit jaesbit self-assigned this Jul 2, 2026
@jaesbit
jaesbit merged commit c1bbfdf into main Jul 2, 2026
@jaesbit
jaesbit deleted the feat/t27-goal-mode branch July 2, 2026 21:31
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