Skip to content

Refactor assistant, preview, and project-details modules#2

Merged
justelson merged 4 commits intodevfrom
refactor/modularize-assistant-preview-project-details
Apr 16, 2026
Merged

Refactor assistant, preview, and project-details modules#2
justelson merged 4 commits intodevfrom
refactor/modularize-assistant-preview-project-details

Conversation

@justelson
Copy link
Copy Markdown
Owner

Summary

  • modularize the assistant runtime, store, composer, rail, and timeline flows into smaller focused modules
  • split the fullscreen preview workspace, markdown rendering, and preview shell into dedicated components and helpers
  • streamline project-details and git loading flows, remove obsolete registry/readiness plumbing, and refresh the current architecture docs

Commits

efactor(assistant): modularize runtime, store, composer, and timeline flows

efactor(preview): split fullscreen preview workspace and markdown rendering

efactor(project-details): streamline git overview and progressive loading flows

  • docs(architecture): refresh current capabilities and runtime notes

Validation

  • not run (build/typecheck/tests were not re-approved in this session)
  • visual verification not performed for the UI refactors

Copy link
Copy Markdown

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, we are unable to review this pull request

The GitHub API does not allow us to fetch diffs exceeding 20000 lines

@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 16, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dev-scope Ready Ready Preview, Comment Apr 16, 2026 0:08am

@justelson justelson merged commit 6ec2cad into dev Apr 16, 2026
3 checks passed
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d150fa80d3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

deps.flushAssistantTextDelta({ threadId: event.threadId, messageId })
const existing = deps.requireThread(event.threadId).messages.find((message) => message.id === messageId)
deps.flushAssistantTextDelta({ threadId: eventThreadId, messageId })
const existing = (eventThreadRecord?.thread || deps.requireThread(event.threadId)).messages.find((message) => message.id === messageId)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Re-read thread after flushing assistant text deltas

After flushAssistantTextDelta runs, the code still checks existing against eventThreadRecord?.thread, which was captured before the flush. When a turn emitted content.delta chunks, that flush can create/update the assistant message, but the stale pre-flush thread snapshot still appears empty and the fallback path appends event.payload.text again, duplicating the assistant response text. Re-fetch the thread state after flushing before deciding whether to append fallback text.

Useful? React with 👍 / 👎.

...nextQueuedMessage.options,
dispatchMode: 'immediate'
})
if (cancelled) return
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Dequeue successfully sent queued prompt after session switch

The drain coroutine bails out on if (cancelled) return, and cleanup sets cancelled = true whenever selectedSessionId changes. If a queued message send is in flight and the user switches sessions, a successful send for the previous session returns here without removing the queue head. When the user later returns, the same queued prompt is sent again. The queue item should still be reconciled/dequeued for the dispatched session even if selection changed mid-flight.

Useful? React with 👍 / 👎.

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