Skip to content

Materialize standalone paginated HTML - #501

Draft
JSv4 wants to merge 2 commits into
agent/issue-437-export-architecturefrom
agent/issue-438-standalone-html
Draft

Materialize standalone paginated HTML#501
JSv4 wants to merge 2 commits into
agent/issue-437-export-architecturefrom
agent/issue-438-standalone-html

Conversation

@JSv4

@JSv4 JSv4 commented Aug 16, 2026

Copy link
Copy Markdown
Owner

Closes #438.

Depends on #500 and is intentionally based on agent/issue-437-export-architecture.

Summary

  • adds the UI-free docxodus/export-browser materializer for complete, standalone paginated HTML
  • snapshots caller bytes, validates the Add deterministic OOXML package manifests #493 package manifest/digest, enforces bounded resource and phase limits, and emits typed success/failure reports
  • isolates conversion and two independent pagination passes, verifies determinism, sanitizes automatic resources and active content, normalizes IDs/fragment links, and reopens the serialized document offline before returning it
  • binds the HTML, final-tree PageMap, renderer/runtime fingerprint, resource inventory, font observations, and report with SHA-256 digests
  • fixes owner-part relationship resolution for header/footer/note/comment images, charts, and hyperlinks
  • makes pagination use the supplied element's DOM realm and adds cooperative deadline/cancellation checks
  • packages a closed 46-asset runtime graph, schemas, documentation, and a browser example

Verification

  • npm run build
  • npm run pretest — 163 package-boundary files
  • Playwright integration gate — 27 passed
  • PaginatedHeaderFooterContentTests — 3 passed
  • HTML converter corpus — 53 passed
  • independent final CSS tokenizer/sanitizer audit — clean

The Playwright workflow now uploads npm/playwright-report/ and npm/test-results/ with if: always(). Successful runs include directly viewable standalone HTML, PageMap/report JSON, request logs, offline-reopen screenshots, and a self-contained artifact viewer; expected strict/clipping failures retain their structured failed reports too.

Intentional follow-ups

@JSv4
JSv4 force-pushed the agent/issue-437-export-architecture branch from 49ca3c7 to 10319b8 Compare August 17, 2026 18:52
@JSv4
JSv4 force-pushed the agent/issue-438-standalone-html branch from 7c5fd1f to 7593297 Compare August 17, 2026 19:54
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