Skip to content

Add persistent plan mode and thread goals - #48

Draft
Qjzn wants to merge 1 commit into
mainfrom
agent/plan-goal-ux
Draft

Add persistent plan mode and thread goals#48
Qjzn wants to merge 1 commit into
mainfrom
agent/plan-goal-ux

Conversation

@Qjzn

@Qjzn Qjzn commented Aug 2, 2026

Copy link
Copy Markdown
Owner

What changed

  • keep Plan mode enabled until the user explicitly disables it or implements a plan
  • render structured plan events as stable expandable cards with progress and persisted implementation state
  • add authoritative thread-level goals with create, edit, pause, resume, clear, progress, refresh recovery, and idle continuation
  • isolate goal editor, menu, and confirmation state across thread switches
  • improve phone ergonomics, keyboard focus behavior, destructive confirmation, and Plan + Goal coexistence guidance
  • add normalization coverage, regression fixtures, and manual acceptance contracts

Why

Plan was previously treated like a one-turn send option, structured plan output could be flattened or hidden, and the frontend did not own the App Server thread-goal lifecycle. This made long-running work difficult to understand and fragile across refreshes, thread switches, and mobile use.

User impact

Users can keep Plan mode active, explicitly implement the latest eligible plan, and manage a persistent goal for each conversation without transient state leaking into another thread. Mobile actions remain reachable without horizontal overflow.

Validation

  • npm run build:frontend
  • npm run verify:frontend-normalizers
  • npm run verify:server-modules
  • vue-tsc --noEmit
  • git diff --check
  • headless Playwright at 393x852 and 1280x800 for Plan/Goal coexistence, cross-thread isolation, keyboard focus, durable clear confirmation, history-derived implementation state, 44px actions, and overflow

The broad live test:7420:frontend run stopped at its idle preflight because the current handling thread was still the single active runtime request; no runtime state was force-cleared.

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