Skip to content

style(chat): drop the reply fill, spread left-hand messages; fix queued recall - #160

Merged
aazf merged 7 commits into
mainfrom
style/assistant-reply-no-fill
Oct 29, 2026
Merged

aazf merged 7 commits into
mainfrom
style/assistant-reply-no-fill

Conversation

@cd996

@cd996 cd996 commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Assistant replies have no fill. They sit directly on the chat background with their side padding; the card fill was the only thing left boxing a reply in. User messages keep their tinted bubble on the right, which is how the two are told apart. The change is the assistant tone in chat-block.ts.
  • Queued messages span the chat width. A queued message is a draft waiting for the next turn, not a sent bubble, so it fills the row like an agent follow-up instead of shrinking to its text (UserMessageEntry in LogEntry.tsx).
  • System wakes span the chat width too. Cron and message wakes were the last left-hand messages sized to their text; now only the user's own bubble on the right is.
  • Jump-to-file list is padded off its search box. The file items had no group around them, so the first one touched the input; the list in DiffPanel.tsx now has p-1.
  • Fix: recalling a queued message with attachments returned 500. deletePendingMessage() deleted the log row before the attachment rows that reference it, which fails with foreign keys on. Attachments now go first, in one transaction with the log row.

main is merged in, since the queued-message layout only exists there.

Test plan

  • chat-blocks and assistant-message-actions tests: replies have no bg- class; queued messages and cron wakes are w-full, not w-fit
  • pending-messages-unit test recalls a queued message with an attachment (failed with FOREIGN KEY constraint failed before the fix)
  • API tests (995), component tests (214), typecheck, lint
  • Manual check in dev

With no outline and no side padding, the card background was the only
thing left boxing a reply in. Replies now sit on the chat background;
user messages keep their tinted bubble on the right.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-29T07:18:56.215196Z 4495580 New commits
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@cd996
cd996 requested a review from aazf October 24, 2026 08:04
cd996 added 2 commits October 26, 2026 02:02
A queued message is a draft waiting under the input, not a sent bubble,
so it now fills the row like an agent follow-up instead of shrinking to
its text.
@cd996 cd996 changed the title style(chat): drop the fill of assistant replies style(chat): drop the reply fill and spread queued messages Oct 26, 2026
A cron or message wake stayed a text-sized row, so it read narrower than
the agent follow-ups and queued messages around it. Every left-hand
message now fills the row; only the user's own bubble sizes to its text.
@cd996 cd996 changed the title style(chat): drop the reply fill and spread queued messages style(chat): drop the reply fill and spread left-hand messages Oct 26, 2026
cd996 added 2 commits October 26, 2026 06:04
The file items sit straight in the command list with no group around
them, so the first one touched the search input. The list now has the
padding a group would give it.
Recalling deleted the log row before the attachment rows that reference
it, so with foreign keys on, editing a queued message with an image
failed with a 500. The attachment rows now go first, in one transaction
with the log row.
@cd996 cd996 changed the title style(chat): drop the reply fill and spread left-hand messages style(chat): drop the reply fill, spread left-hand messages; fix queued recall Oct 28, 2026

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

Copy link
Copy Markdown

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: 4df557f0e7

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

// Hard delete the pending row (it was never processed by AI). Its attachment
// records reference it, so they go first.
db.transaction((tx) => {
tx.delete(attachmentsTable).where(eq(attachmentsTable.logId, pending.id)).run()

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve attachments when recalling a queued message

When a user edits a queued message containing attachments, this deletes the attachment records before returning their metadata, so the returned IDs immediately resolve to 404. The only caller, ChatBody.handleEditPending, restores result.content but ignores result.attachments, meaning resending the edited message silently drops every attachment and leaves their files orphaned on disk. Keep the attachments usable through the edit flow or explicitly restore them into the input before deleting their records.

Useful? React with 👍 / 👎.

Recalling a queued message deletes its attachment records, and the input
only got the text back, so resending dropped every attachment. Download
the attachments before deleting the message and put them back into the
input with the text; a failed download leaves the message queued.
@aazf
aazf merged commit b949554 into main Oct 29, 2026
5 checks passed
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.

2 participants