Skip to content

Office fitted first-page/slide/sheet poster (declared poster slot) - #6030

Draft
lukemelia wants to merge 6 commits into
cs-12526-pdf-fitted-first-page-poster-poster-slotfrom
cs-12527-office-fitted-first-pageslide-poster-poster-slot
Draft

Office fitted first-page/slide/sheet poster (declared poster slot)#6030
lukemelia wants to merge 6 commits into
cs-12526-pdf-fitted-first-page-poster-poster-slotfrom
cs-12527-office-fitted-first-pageslide-poster-poster-slot

Conversation

@lukemelia

Copy link
Copy Markdown
Contributor

What this does

Stacked on #6029 (PDF poster).

DocxDef/PptxDef/XlsxDef share a poster screenshot slot (170×250 @ dsf 2, keyBy: 'file-content', useAsThumbnail). The capture-only component (file-formats/office-captures) renders the extracted structure's first unit as a page-shaped poster: a document's opening text flow, a deck's title slide, a workbook's first sheet.

  • Rasterization through the screenshot engine is the design, not a workaround: the browser has no OOXML decode path, so the extracted-structure rendering is the office viewer, and the capture engine shoots it. Deterministic by construction — synchronous DOM over already-extracted fields, no readiness signal needed.
  • No viewer changes: the fitted cell prefers the captured poster via the view model's thumbnail seam; the typed placeholder (paper + format badge + count) remains the fallback for uncaptured files.

Test plan

Realm-server e2e (extends the file-capture suite): writes the licensed docx-simple.docx fixture, asserts the poster manifest entry and that the prerendered fitted HTML embeds the durable poster URL. CI-validated (the cached-fixture suite doesn't run locally).

🤖 Generated with Claude Code

DocxDef/PptxDef/XlsxDef share a poster screenshot slot whose capture-only
component renders the extracted structure's first unit — the document's
opening text flow, the deck's title slide, the workbook's first sheet — as
a page-shaped poster. Rasterization goes through the screenshot engine by
design: there is no in-browser OOXML decode path, so the extracted
rendering is the office viewer and the capture engine shoots it. The
render is synchronous DOM over extracted fields, so the engine's settle is
the readiness signal. keyBy 'file-content' + useAsThumbnail route it to
the fitted cell through the view model's thumbnail seam, with the typed
placeholder as the fallback.

Part of CS-12527.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… cs-12527-office-fitted-first-pageslide-poster-poster-slot
@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Host Test Results

    1 files  ±0      1 suites  ±0   1h 58m 14s ⏱️ - 1m 51s
4 628 tests ±0  4 614 ✅ ±0  14 💤 ±0  0 ❌ ±0 
4 643 runs  ±0  4 629 ✅ ±0  14 💤 ±0  0 ❌ ±0 

Results for commit 6744c6e. ± Comparison against earlier commit fb2f0e6.

Realm Server Test Results

    1 files  ±0    202 suites  ±0   1h 8m 53s ⏱️ +38s
2 631 tests ±0  2 630 ✅ ±0  0 💤 ±0  1 ❌ ±0 
2 670 runs  ±0  2 669 ✅ ±0  0 💤 ±0  1 ❌ ±0 

Results for commit 6744c6e. ± Comparison against earlier commit fb2f0e6.

For more details on these errors, see this check.

… cs-12527-office-fitted-first-pageslide-poster-poster-slot
… cs-12527-office-fitted-first-pageslide-poster-poster-slot
… cs-12527-office-fitted-first-pageslide-poster-poster-slot
… cs-12527-office-fitted-first-pageslide-poster-poster-slot
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.

1 participant