Commit Graph
27 Commits
Author SHA1 Message Date
pastilhasandClaude Opus 5 6c47cbeb74 make the email url the selection instead of a mirror of it
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 11:51:45 +00:00
pastilhas d3922bd9d3 stop couriering a system prompt through the framework
`promptPrefix` was a workspace-context field: the email and browser screens set it, `WorkspaceView`
put it on the context, and `ChatPanelWrapper` read it back off. Only the chat app has ever understood
what the string is, so the framework was carrying an app's vocabulary between two places that both
know each other.

`components` already exists for this — a screen supplies its own component for a panel id, and
`PanelSlot` prefers it over the registry while still taking header and provider from the registry
entry, so a screen-mounted chat panel keeps its normal chrome. Both screens now do that, and pass the
prefix as a prop. `ChatPanelWrapper` is exported from the barrel for it.

Also removes the same prop from `WorkspaceLayout`, where it had no callers at all: every preview and
settings pane rendering through it was already handing its chat panels an undefined prefix.
2026-08-07 09:40:47 +00:00
brunorezioandClaude Opus 5 0d67e2af26 clear the remaining type errors
- DiscordAccount seeded DiscordStatus without its two nullable fields.
- bug-report typed reporter.name as string, but users.name is nullable; and the
  Discord upload wrapped a Buffer directly in a Blob.
- Lucide icons take no `title` prop, so the sync spinner's tooltip moved to a
  wrapping span.
- DesktopView cast its dynamic import to a type that included `| null`.
- dock PUT cast the request body straight to string[]; it now rejects anything
  that is not an array of strings instead of writing it to the database.
- buildZodSchema assembles a mutable record, since z.ZodRawShape is readonly in
  zod v4.
- The dev-server proxy forwards Bun's `string | Buffer` frames through a helper
  that satisfies WebSocket.send without copying.

bunx tsgo is now clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 23:30:20 +01:00
pastilhasandClaude Opus 4.8 260d201731 chat: delete dead EmailChat.tsx
Orphaned standalone email-assistant chat, superseded by the officerdev/chat panel
(ChatPanelWrapper) that the email layout uses. Imported nowhere.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 14:47:09 +00:00
pastilhasandClaude Opus 4.8 58373c9d59 email: group messages into conversations (Gmail-style threading)
Hybrid grouping via a new thread_id column: new mail threads exactly on
References/In-Reply-To (id is sha1(Message-Id), so a referenced id hashes to
the ancestor's own id); already-synced mail is backfilled with a
normalized-subject + counterpart key. Folder views collapse to one row per
thread with a count badge; the reader shows the thread as a collapsible stack.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 08:21:40 +00:00
pastilhasandClaude Opus 4.8 18d69616d2 compose: rich contenteditable body — inline images land at the caret/drop point
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 08:05:40 +00:00
pastilhasandClaude Opus 4.8 c590d6253c compose: bcc field, inline pasted/dropped images, attach button stays regular
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 07:52:11 +00:00
pastilhasandClaude Opus 4.8 ced1796a56 compose: single close button + attachment support (paste, drag-drop, file picker)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 07:39:27 +00:00
pastilhasandClaude Opus 4.8 ead8f53951 email: compose + reply via Gmail SMTP (app password), with recipient autocomplete
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 07:12:34 +00:00
pastilhasandClaude Opus 4.8 1791e2e6a1 email: Gmail-style search operators (from:/to:/subject:/body:/has:/is:/label:/before:/after:)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 18:23:53 +00:00
pastilhasandClaude Opus 4.8 1ac2bb59f6 email: keepPreviousData so searching doesn't remount the panel and drop input focus
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 17:40:26 +00:00
pastilhasandClaude Opus 4.8 3f00999a2a email: full-text search (FTS5) — backend index + /email/search + search box in the list
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 17:38:03 +00:00
pastilhasandClaude Opus 4.8 4b08d0b99c email: push new-mail to /email via SSE (IMAP IDLE -> sidecar -> server -> EventSource)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 17:29:20 +00:00
pastilhasandClaude Opus 4.6 b3f1d10bc1 inline email resync instead of job queue, refresh list on completion
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 17:07:06 +00:00
pastilhasandClaude Opus 4.6 ecd83dc1ec dynamic claude.md regeneration and email db env for claude code
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 12:45:41 +00:00
pastilhasandClaude Opus 4.6 bd7ece80cf email list sync button uses new email-sync handler, job duration logging
Rewired EmailList sync button to call /email/accounts/:id/sync instead
of the old gmail-sync job. Shows sync button for connected and synced
accounts. Allow manual incremental sync for synced accounts.

Added duration logging to queue runner: start/complete/fail markers
with elapsed time.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 07:25:26 +00:00
pastilhasandClaude Opus 4.6 0068244356 claude-code as channel model, container trust/permissions fixes, terminal cwd fix
- add claude-code as virtual model in channel messaging (telegram/discord/whatsapp)
- new send-claude-code.ts: docker exec claude -p with session resumption
- route claude-code model in sendAndAwait before Pi pipeline
- append claude-code to listPiModels output
- fix container .claude mount (rw for sub-mounts), hooks format (matcher-based)
- pre-seed hasTrustDialogAccepted and bypassPermissions in container settings
- git init in entrypoint to skip workspace trust prompt
- fix ~/~ double-tilde in CommandTerminalWrapper cwd resolution
- remove --continue from claude-code panel command

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 20:00:45 +00:00
pastilhasandClaude Opus 4.6 b963d9b7a7 email: charset decoding, inline attachments, UI fixes
- respect charset from Content-Type when decoding body and headers
- detect inline attachments with filenames (not just disposition: attachment)
- fix broken decodeQuotedPrintable reference in parseAttachments
- white background for email iframe (emails designed for light bg)
- sticky header in email list, scrollable message area
- arrow key navigation between emails with scroll-into-view
- /email/:id routing for deep linking to specific emails
- empty folder shows "No emails in this folder" instead of losing header
- fix attachment viewer header overlap with dialog close button

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 20:00:45 +00:00
pastilhasandClaude Opus 4.6 927267e041 workspaces to dashboards, imap email sync, ffmpeg tool, tts fix, file browser refresh, automation sidebar reorder
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 20:00:45 +00:00
pastilhas bc4c20929c Discord 2026-02-27 08:27:43 +00:00
pastilhasandClaude Opus 4.6 269b1026e5 preview auto-refresh after chat tool calls, gmail sync label scoping, queue notify option, workspace-scoped chat sessions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 01:49:52 +00:00
pastilhasandClaude Opus 4.6 968d502eaa persist panel sizes for email and automation screens, fix session title from prompt prefix
- switch email and automation screens from WorkspaceLayout to WorkspaceView + useWorkspacesState
- add promptPrefix prop to WorkspaceView, thread into WorkspaceContext
- automation dynamically adds/removes chat panel while preserving persisted sizes
- use displayText for session title so prompt prefix doesn't leak into titles
- fix email context filter to match screens/email workspace key

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 00:23:21 +00:00
pastilhasandClaude Opus 4.6 a8d3d1a423 email chat uses officerdev/chat app with session history and email context scoping
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 23:29:13 +00:00
pastilhasandClaude Opus 4.6 7f04ecd644 dock config to postgres, auto-add /email on google oauth, improved email empty state
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:42:27 +00:00
pastilhas 42abb97d7b email syncyng 2026-02-26 01:39:38 +00:00
pastilhas 0226608d8f email 2026-02-25 01:34:09 +00:00
pastilhas e36908cb0b opengraph stuff 2026-02-24 21:47:36 +00:00