mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-08-22 23:25:28 +00:00
Previously /goal state lived only in frontend memory — page refresh or
multi-device sessions lost the active goal. Now the CLI emits goal status
updates as structured daemon events (_meta.goalStatus), which flow through
the transcript as status blocks (source: 'goal', data: {...}). The web-shell
rebuilds goal state from transcript blocks on connect, making goal status
survivable across page refreshes and syncable across devices.
- CLI: emitGoalStatus on goal set/clear, pass outputHistoryItems through
nonInteractiveCliCommands, add setAt to goalCommand output
- SDK: widen DaemonUiStatusEvent source/data types, preserve them in
transcript blocks
- webui: normalize _meta.goalStatus in DaemonSessionProvider, replace
sentinel-prefix text encoding with structured data
- web-shell: derive activeGoal from transcript blocks (getLatestActiveGoalFromBlocks),
remove optimistic client-side goal dispatch, parse structured goal data
in GoalStatusMessage/SystemMessage
- Tests: cover emitGoalStatus, outputHistoryItems passthrough, transcript
block serialization, DaemonSessionProvider event conversion
- Also: harden McpDialog restart result type check with isRestartEntriesResult
Co-authored-by: ytahdn <ytahdn@gmail.com>
|
||
|---|---|---|
| .. | ||
| ApprovalModeDialog.tsx | ||
| DeleteSessionDialog.tsx | ||
| DialogPrimitives.module.css | ||
| dialogStyles.ts | ||
| HelpDialog.module.css | ||
| HelpDialog.tsx | ||
| McpDialog.tsx | ||
| MemoryDialog.module.css | ||
| MemoryDialog.tsx | ||
| ModelDialog.tsx | ||
| ReleaseSessionDialog.tsx | ||
| ResumeDialog.tsx | ||
| SkillsDialog.tsx | ||
| ThemeDialog.tsx | ||
| ToolsDialog.tsx | ||