allowlist.tsfix: allow HTML files in brain upload allowlist
Add .html/.htm (text/html) as a supported upload category so users can
drag-and-drop or select HTML files via the file picker in the brain UI.
Updates both the frontend and server allowlists in sync.
Co-Authored-By: Claude Sonnet 4.6 (1M context) <<email>>Jun 18, 2026, 2:54 PMdropTraversal.tsfeat: v1 working image uploadMay 6, 2026, 1:27 PMpastedFiles.tsfeat: paste screenshots from the clipboard into the chat input
Cmd/Ctrl+V of a copied image now attaches it to the message, routed
through the same allowlist validation + upload path as drag-and-drop.
Nameless clipboard files get a synthesized filename.
Co-Authored-By: Claude Opus 4.8 (1M context) <<email>>Jul 24, 2026, 10:14 PMuploadRunner.tsfix(types): close 205 typecheck errors by repairing real client/server drift
apps/mail typechecked against a stale apps/server/dist d.ts (the server's
package.json points "types" at dist), so a chunk of the reported drift was
phantom. Rebuilt it and fixed the four script errors that blocked `tsc -b`
in server, which is what regenerates it.
The rest was genuine contract drift, fixed at the source rather than cast
away — routes that dropped fields their callers still read (agentExecutions,
getUpcomingCalendarEvents' conversationId, createCanvas' description),
schema splits the UI never followed (conversationUsers vs
conversationContacts), and enums that grew server-side but not client-side
(TASK_TYPES, ActionStatus, DateFilterOperator).
Also deletes code that was already dead: an unreferenced sort popover whose
store API is gone, a panel importing a deleted module, the system-skill
metadata UI whose mutation was removed deliberately, and a test asserting a
store method that no longer exists.
apps/server: 4 -> 0. apps/mail: 228 -> 23, all remaining errors being
dependency resolution (zod v3/v4, react-router dev/runtime skew, tiptap
v2 via novel) rather than code.
Co-Authored-By: Claude Opus 5 (1M context) <<email>>Aug 2, 2026, 7:45 PMuseFileUpload.tsrefactor: drop subPath everywhere — full canonical path migration (Phase 2)
Completes the path-canonicalization migration started in
"refactor: migrate documents.getDoc input to canonical path (Phase 1)".
Server
- documents.path is now the sole source of truth; the deprecated
scope_type / scope_id / sub_path columns are removed from the Drizzle
schema (DB drop in migration 0032).
- GetDocResult no longer returns `subPath` — clients derive the relative
suffix from `path` when needed.
- file-system FsNode loses its subPath shim; chat-attachments authorization
checks the path prefix instead of the dropped scopeType column.
- One-shot Phase A migration scripts (seed-file-system,
backfill-overview-docs-to-agent-namespace) are deleted — they operated
exclusively on the columns being dropped.
- account-setup/phase1-org uses a path-prefix LIKE filter in place of the
deleted scope-column equality.
Client
- FsNode in documentsSlice drops `subPath`; all hierarchical operations
(rename, move, delete subtree, sort) now operate on path prefixes via a
new `rootPrefixForScope` helper.
- New `relativeSubPath(path)` helper exported from documentsSlice for the
handful of display callers that genuinely need the in-scope portion.
- ConversationDocumentData, PendingDocNavigation, FileLinkSuggestionItem,
DocLinkSuggestion, FsNode-derived types in CompanyExplorer / playground /
Reports / file-graph all lose the `subPath` field.
- ActiveDoc in OverviewDocTab continues to thread a relative `subPath`
internally — that's a local-state concept used to build the canonical
path inside the component.
- FileLinkChip, document-store playground, ReportsView, ConversationDocsTab,
DocumentSaveJigTab, AgendaDocTab, PastEventsTimeline, ConversationBody*
components migrated to derive label/breadcrumb from `path` directly.
Migration
- 0032_documents_drop_deprecated_scope_columns.sql deletes orphan rows
created by the doubled-prefix bug (path ~ 'conversation/{id}/conversation/'),
then drops the scope_type / scope_id / sub_path columns.
Co-Authored-By: Claude Opus 4.7 (1M context) <<email>>May 19, 2026, 11:18 AM