You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
🤖 refactor: derive workspace status from todo list
Derive workspace sidebar and landing-page progress from the current todo list.
- publish todo-derived activity snapshots for live and background workspaces
- prefer todo-derived status over legacy status_set payloads in the UI
- remove status_set from the default tool surface and refresh agent/docs guidance
---
_Generated with `mux` • Model: `openai:gpt-5.4` • Thinking: `xhigh` • Cost: `$n/a`_
<!-- mux-attribution: model=openai:gpt-5.4 thinking=xhigh costs=n/a -->
@@ -128,7 +129,7 @@ Mobile app tests live in `mobile/src/**/*.test.ts` and use Bun's built-in test r
128
129
- Never use emoji characters as UI icons or status indicators; emoji rendering varies across platforms and fonts.
129
130
- Prefer SVG icons (usually from `lucide-react`) or shared icon components under `src/browser/components/icons/`.
130
131
- For tool call headers, use `ToolIcon` from `src/browser/components/tools/shared/ToolPrimitives.tsx`.
131
-
- If a tool/agent provides an emoji string (e.g., `status_set` or `displayStatus`), render via `EmojiIcon` (`src/browser/components/icons/EmojiIcon.tsx`) instead of rendering the emoji.
132
+
- If a tool/agent provides an emoji string (e.g., todo-derived status or `displayStatus`), render via `EmojiIcon` (`src/browser/components/icons/EmojiIcon.tsx`) instead of rendering the emoji.
132
133
- If a new emoji appears in tool output, extend `EmojiIcon` to map it to an SVG icon.
133
134
- Colors defined in `src/browser/styles/globals.css` (`:root @theme` block). Reference via CSS variables (e.g., `var(--color-plan-mode)`), never hardcode hex values.
134
135
- For incrementing numeric UI (costs, timers, token counts, percentages), use semantic numeric typography utilities (`counter-nums` / `counter-nums-mono`) to prevent width jitter.
@@ -229,9 +230,9 @@ Freely make breaking changes, and reorganize / cleanup IPC as needed.
229
230
- E2E tests (tests/e2e) work with Radix but are slow (~2min startup); reserve for scenarios that truly need real Electron.
230
231
- Only use `validateApiKeys()` in tests that actually make AI API calls.
231
232
232
-
## Tool: status_set
233
+
## Tool: todo_write
233
234
234
-
-Set status url to the Pull Request once opened
235
+
-Keep the TODO list current during multi-step work; sidebar progress is derived from it.
Copy file name to clipboardExpand all lines: docs/config/notifications.mdx
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,7 +43,7 @@ The recommended way to configure the `notify` tool is via a `Tool: notify` scope
43
43
- Notify on CI failures or deployment issues
44
44
- Notify when waiting for user input longer than 30 seconds
45
45
- Do not notify for routine status updates
46
-
- Use status_set for progress updates instead
46
+
- Use `todo_write` for routine progress updates instead
47
47
```
48
48
49
49
See [Instruction Files](/agents/instruction-files) for more on scoped instructions.
@@ -94,7 +94,7 @@ notify: {
94
94
description:
95
95
"Send a system notification to the user. Use this to alert the user about important events that require their attention, such as long-running task completion, errors requiring intervention, or questions. "+
96
96
"Notifications appear as OS-native notifications (macOS Notification Center, Windows Toast, Linux). "+
97
-
"Infer whether to send notifications from user instructions. If no instructions provided, reserve notifications for major wins or blocking issues. Do not use for routine status updates (use status_set instead).",
97
+
"Infer whether to send notifications from user instructions. If no instructions provided, reserve notifications for major wins or blocking issues. Do not use for routine progress updates — keep the todo list current instead.",
// Legacy-only: keep the schema for historical transcript rendering, but new runs
1453
+
// should drive progress through todo_write so sidebar status can derive from the todo list.
1452
1454
status_set: {
1453
1455
description:
1454
1456
"Set a status indicator to show what Assistant is currently doing. The status is set IMMEDIATELY \n"+
@@ -1645,7 +1647,7 @@ CREATE TABLE IF NOT EXISTS delegation_rollups (
1645
1647
description:
1646
1648
"Send a system notification to the user. Use this to alert the user about important events that require their attention, such as long-running task completion, errors requiring intervention, or questions. "+
1647
1649
"Notifications appear as OS-native notifications (macOS Notification Center, Windows Toast, Linux). "+
1648
-
"Infer whether to send notifications from user instructions. If no instructions provided, reserve notifications for major wins or blocking issues. Do not use for routine status updates (use status_set instead).",
1650
+
"Infer whether to send notifications from user instructions. If no instructions provided, reserve notifications for major wins or blocking issues. Do not use for routine progress updates — keep the todo list current instead.",
1649
1651
schema: z
1650
1652
.object({
1651
1653
title: z
@@ -2118,7 +2120,6 @@ export function getAvailableTools(
0 commit comments