previewsetup.ts injects docx (mammoth), xlsx (SheetJS, sheet tabs, 200-row cap), pptx (pptx-preview full fidelity; pptx2html dropped for a broken module entry — tXml case mismatch breaks Linux builds — per the D2 fallback clause), and the /api/url-preview fetcher, all dynamic import: main entry grows ~12KB while xlsx (430KB), pptx (1.2MB) and jszip (98KB) load on first preview. DocViewer becomes a FilePreview container (keeps text editing); Workbench gains a preview tab (store.railPreview); artifact chips and panel rows gain rail-preview actions; the panel delete button is removed while api.deleteArtifact and DELETE /api/artifacts/{id} remain (reserved capability). Contracts regenerated with Part.card.cardId; cardflow onLocate semantics adopted.
## What
previewsetup.ts injects docx (mammoth), xlsx (SheetJS, sheet tabs, 200-row cap), pptx (pptx-preview full fidelity; pptx2html dropped for a broken module entry — tXml case mismatch breaks Linux builds — per the D2 fallback clause), and the /api/url-preview fetcher, all dynamic import: main entry grows ~12KB while xlsx (430KB), pptx (1.2MB) and jszip (98KB) load on first preview. DocViewer becomes a FilePreview container (keeps text editing); Workbench gains a preview tab (store.railPreview); artifact chips and panel rows gain rail-preview actions; the panel delete button is removed while api.deleteArtifact and DELETE /api/artifacts/{id} remain (reserved capability). Contracts regenerated with Part.card.cardId; cardflow onLocate semantics adopted.
## Verification
tsc clean; vitest 33 passed; build ok. Rebased onto cardflow frontend main.
Refs: task feature/file-preview-caps; ui abbf9b9→b0ee51b; backend c0baa34; core 6bdc4f2.
Why: the adjudicated plan (D1-D4) calls for office/link previews with
loaders injected from the host, right-rail light preview alongside the
overlay viewer, and artifact deletion kept as an API capability with no
UI entry.
Evidence: previewsetup.ts injects docx (mammoth), xlsx (SheetJS, sheet
tabs, 200-row cap), pptx (pptx-preview full-fidelity; pptx2html was
dropped for a broken module entry — tXml case mismatch breaks Linux
builds — per the D2 fallback clause), and the /api/url-preview fetcher,
all via dynamic import: the main entry grows ~12KB while xlsx (430KB),
pptx (1.2MB) and jszip (98KB) load on first preview. DocViewer becomes a
FilePreview container (keeps text-family editing); Workbench gains a
preview tab with rail-preview state (store.railPreview); artifact chips
and panel rows gain a rail-preview action; the panel delete button is
removed while api.deleteArtifact and DELETE /api/artifacts/{id} remain.
tsc clean; vitest 33 passed; production build succeeds.
Impact: previews work end to end for the whole format matrix; deletion
stays plugin-reachable only.
Refs: task feature/file-preview-caps; ui fb76239; core 4d29301; backend
6d4ccfd.
weichen
merged commit c5e93568a5 into main2026-09-30 17:20:27 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What
previewsetup.ts injects docx (mammoth), xlsx (SheetJS, sheet tabs, 200-row cap), pptx (pptx-preview full fidelity; pptx2html dropped for a broken module entry — tXml case mismatch breaks Linux builds — per the D2 fallback clause), and the /api/url-preview fetcher, all dynamic import: main entry grows ~12KB while xlsx (430KB), pptx (1.2MB) and jszip (98KB) load on first preview. DocViewer becomes a FilePreview container (keeps text editing); Workbench gains a preview tab (store.railPreview); artifact chips and panel rows gain rail-preview actions; the panel delete button is removed while api.deleteArtifact and DELETE /api/artifacts/{id} remain (reserved capability). Contracts regenerated with Part.card.cardId; cardflow onLocate semantics adopted.
Verification
tsc clean; vitest 33 passed; build ok. Rebased onto cardflow frontend main.
Refs: task feature/file-preview-caps; ui abbf9b9→b0ee51b; backend c0baa34; core 6bdc4f2.
Why: the adjudicated plan (D1-D4) calls for office/link previews with loaders injected from the host, right-rail light preview alongside the overlay viewer, and artifact deletion kept as an API capability with no UI entry. Evidence: previewsetup.ts injects docx (mammoth), xlsx (SheetJS, sheet tabs, 200-row cap), pptx (pptx-preview full-fidelity; pptx2html was dropped for a broken module entry — tXml case mismatch breaks Linux builds — per the D2 fallback clause), and the /api/url-preview fetcher, all via dynamic import: the main entry grows ~12KB while xlsx (430KB), pptx (1.2MB) and jszip (98KB) load on first preview. DocViewer becomes a FilePreview container (keeps text-family editing); Workbench gains a preview tab with rail-preview state (store.railPreview); artifact chips and panel rows gain a rail-preview action; the panel delete button is removed while api.deleteArtifact and DELETE /api/artifacts/{id} remain. tsc clean; vitest 33 passed; production build succeeds. Impact: previews work end to end for the whole format matrix; deletion stays plugin-reachable only. Refs: task feature/file-preview-caps; ui fb76239; core 4d29301; backend 6d4ccfd.