Skip to content

editor: New thread opens the what-to-build screen, never an empty thread - #500

Merged
sandersonstabo merged 1 commit into
masterfrom
new-thread-home
Sep 27, 2026
Merged

sandersonstabo merged 1 commit into
masterfrom
new-thread-home

Conversation

@sandersonstabo

@sandersonstabo sandersonstabo commented Sep 27, 2026 •

Copy link
Copy Markdown
Collaborator

Why

Clicking New thread landed on an empty thread titled "New task" that said "No messages yet." instead of the "What should we build in editor?" screen. begin_new_task sent CreateTask, and mounting the created thread navigated the new-thread route to it.

What

  • begin_new_task no longer creates a thread. It retires the open thread (subscription stop), binds the composer to the project's new-task draft (ComposerDraftScope::Project) and shows the new-thread screen. The Forge creates the thread when the draft is sent, using the existing project-draft send flow (#83457dbf).
  • Typed text still carries into the new task. An empty composer shows the project's saved draft instead of overwriting it.
  • Choosing another project with an unsent prompt keeps the destination listed as empty until its first send, so no remembered thread opens over the prompt.
  • Removed the "No messages yet" overlay, its selector, its predicate and the unused padding constant.

Tests

Rewrote the tests that asserted CreateTask (new-thread retirement, project choice from new-thread/existing/home, initially empty project, desktop new task). They now assert: no thread is created, the source stops, the route is NewThread on the project draft, the draft is kept, and Send is available.

cargo test -p artisan-frontend --lib: 776 passed, 2 failed. work_group_header_row_paints_without_a_disclosure_wrapper and send_has_stable_identity… fail identically on master without this change.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.


Summary by cubic

Clicking New thread now opens the "What should we build in editor?" screen instead of an empty thread that showed "No messages yet." No thread is created up front; the Forge creates it when the draft is sent, and the currently open thread is retired first.

  • Typed text still follows into the new task, and an empty composer shows the project's saved draft instead of replacing it.
  • Choosing another project with an unsent prompt keeps the destination listed as empty until its first send, so no remembered thread opens over the prompt.
  • Removed the "No messages yet" overlay and its supporting code.
  • Tests rewritten to assert no thread is created when opening the new-thread screen and that the project's new-task draft is shown.

Written for commit e221050. Summary will update on new commits.

Review in cubic

New thread asked the Forge to create a "New task" thread up front, and
mounting it replaced the new-thread screen with an empty thread showing
"No messages yet". It now retires the open thread and shows the
new-thread screen on the project's new-task draft; the Forge creates the
thread when that draft is sent, which the screen already supported.
Typed text still follows into the new task; an empty composer shows the
project's saved draft instead of replacing it.

The "No messages yet" overlay is gone: a conversation with no turns shows
nothing, and the new-thread screen owns the empty prompt.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@sandersonstabo
sandersonstabo merged commit 7c1f555 into master Sep 27, 2026
20 of 30 checks passed
@sandersonstabo
sandersonstabo deleted the new-thread-home branch September 27, 2026 10:07
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