Add local unified inbox and managed Discord sync - #5
Merged
Peyton-Spencer merged 40 commits intoAug 30, 2026
Conversation
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: unavailable · PR result: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
Peyton-Spencer
force-pushed
the
feat/unified-inbox
branch
from
August 29, 2026 04:04
a86f130 to
f602d97
Compare
This was referenced Aug 29, 2026
feat: define app-scoped native automation adapters
Peyton-Spencer
marked this pull request as ready for review
August 30, 2026 20:19
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Changed
/usr/bin/ditto, and Ditto Harness resolves the current siblingcrates/nodelayoutWhy
This is the first usable surface on top of #3. A user can open Ditto without an account, enable local Discord history import, browse Discord and iMessage conversations from the normal sidebar, and reply through transports that actually advertise send capability.
The chat sources reuse T3 Code's navigation language without writing foreign channel data into the coding-project or coding-thread tables. The managed helper is opt-in and local. No Discord cache is imported until the user turns sync on, and no Discord user token is extracted.
Fresh installs no longer need Ollama merely to initialize Ditto memory. The current built-in hash embedder prioritizes zero-dependency local operation; a higher-quality bundled model can replace it later without changing this inbox contract.
Stack
Depends on #3 (
feat/discord-imessage-adapters). Durable Discord media caching is stacked separately in #6.Validation
pnpm --dir apps/web typecheckpnpm --dir apps/server typecheckpnpm --dir packages/contracts typecheckpnpm vp check(0 errors; 19 existing unrelated warnings)UI Changes
Adds a first-class Chats section to the existing T3 Code sidebar. Discord and iMessage behave like collapsible project sources, conversations behave like thread rows, and selection is URL-backed so the sidebar and Inbox workspace stay synchronized. Discord messages use the familiar compact left-aligned layout and reuse T3 Code's mature Markdown rendering rather than a second parser.
Checklist
Note
Add unified inbox, native Discord/Telegram sync, and knowledge packets
/inboxroute with InboxPage.tsx andChannelSidebarto display channel accounts and conversations.DiscordCompositeAdapterto merge live protocol and Discrawl archive data into a single Discord account.ConnectedChannelAccountschema requires the newenabledfield; defaultembeddersetting changed fromollamatohash.Macroscope summarized 747ebe9.