Skip to content

feat(app): let the conversation lead the Goal Chat view - #5077

Open
huangruiteng wants to merge 2 commits into
codex/app-honest-work-surfacefrom
codex/app-goal-chat-declutter
Open

huangruiteng wants to merge 2 commits into
codex/app-honest-work-surfacefrom
codex/app-goal-chat-declutter

Conversation

@huangruiteng

Copy link
Copy Markdown
Collaborator

Stacked on #5071. The Goal conversation is now the main content of the Goal Chat view. Background machinery no longer stacks up above it.

Delivery brief

  • Goal/source: The App conversation RFC (docs/architecture/rfcs/app-conversation-and-async-inbox-v0.md) asks for the conversation to dominate the view, with delegation and returns shown inline.
  • Current gap: Opening a busy Goal's Chat showed a column of cards before any message: every scheduled monitor and heartbeat, routine runs, and every draft proposal. Drafts were labelled with raw protocol strings such as monitor.create · ready.
  • Observable result:
    • Scheduled checks, heartbeats and routine runs fold into one 后台工作 / Background work line, for example 4 个定时任务已启用 · 1 次执行已结束.
    • Drafts use owner language, for example 新定时检查 · 待你确认 / New scheduled check · Awaiting you. Only the newest draft awaiting the owner stays open; the others fold into 另有 N 个待确认提议.
  • Owning boundary: presentation only (channel-timeline.tsx). No change to the action, proposal or schedule contracts.

What stays visible

These stay visible on purpose, and no text-based inference decides that something is safe to hide:

  • items that need you;
  • waiting, interrupted and failed runs;
  • applying, applied, failed and stale proposals;
  • the gated (needs-authorization) history, which keeps its existing fold.

Only proposals whose status is ready fold behind the newest one.

Behavior change disclosure

  • Schedule rows are no longer in the main timeline by default. They open from the Background work fold, and their drawers and actions are unchanged.
  • The proposal row label no longer shows the raw action kind. The kind moves to data-action-kind for tooling and tests. The typed-actions, steward-journey and team-plan scenarios now select by that attribute and assert the owner-facing label.

Entry points

  • Frontend: changed.
  • CLI and Lark: no change. They do not render the App timeline.

Validation

  • tsc --noEmit: passed.
  • npm run build, including the packaged chat bundle: passed.
  • Personal workspace browser suite, all 17 scenarios: passed in development and in packaged mode.
  • typed-actions now asserts that a schedule is hidden until Background work is opened, then drives the schedule drawer actions (run now, pause, edit, stop) from the fold.

Future-facing pass

Applied: kind and status labels come from one i18n map (proposal.kind.*, proposal.status.*) instead of string concatenation. Deferred: delegation and returned results inline in the conversation (async inbox) will be the next slice.

First-screen gate

This changes the Goal Chat first viewport. The owner reviews before/after screenshots before merge; leave the merge to the maintainer.

huangruiteng and others added 2 commits September 26, 2026 01:45
Scheduled checks, heartbeats and routine runs fold into one Background
work line. Drafts use owner-facing kind and status labels instead of raw
action strings, and only the newest draft awaiting the owner stays open.
Needs-you items, waiting or failed runs and non-draft proposals remain
visible.

Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@huangruiteng
huangruiteng force-pushed the codex/app-goal-chat-declutter branch from 7c7df22 to 3afdfe4 Compare September 25, 2026 18:01

This branch has not been deployed

No deployments
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