Skip to content

fix: adopt DOCX and verify renderer runtimes and full assets - #350

Merged
wybaby168 merged 10 commits into
mainfrom
codex/restore-intermediate-stabilization-20261008
Oct 9, 2026
Merged

wybaby168 merged 10 commits into
mainfrom
codex/restore-intermediate-stabilization-20261008

Conversation

@wybaby168

@wybaby168 wybaby168 commented Oct 8, 2026 •

Copy link
Copy Markdown
Member

Summary

Restored renderer fixes depended on transitional DOCX packaging, and Web Full exceeded jsDelivr's 150 MB unpacked limit. This candidate adopts the published DOCX engine, verifies ordinary browser runtime dependencies, and retains every Full renderer while moving heavy offline assets into matching dependency packs.

  • Preserve the intermediate XML, IFC, codec, Vite, WordML, native DOC, PDF and opt-in legacy encoding fixes already integrated into this PR.
  • Adopt ordinary @file-viewer/docx@0.3.34 and remove the active DOCX patch and repackaging helper. Verify identical DOCX bytes across all three delivery surfaces.
  • Build bundled DICOM and Mermaid inputs normally. Verify cold consumers without overrides, actual retained DICOM PNGs, multiframe changes, fully visible mathematics, cleanup and offline requests in Chromium and WebKit.
  • Keep all 22 Full renderers, 32 pipelines and 221 extensions. Use exact-version CAD/drawing asset dependencies for CDN selection and complete offline CLI copying.
  • Schedule capability dependencies and renderers in the same workspace build batch. A fresh checkout with affected outputs absent now builds and type-checks successfully.

Public head: 9d56e9737b84bd3c88674b97dac730b0bc009c8c; tree: 439b912825445278b0b091a04ada760853af757b. This normal merge integrates main e8a2cf9581e942cf31a9b32b3791e646d6fdc579 after #313, #348, #349, #346 and #347 were squash merged. Its file tree is identical to the previous verified candidate 18c12a899372140eba38c2bf8950827b294c889b. The official source projection again verified 5,297 source objects and 290 transformed outputs without missing, mismatched or forbidden files.

Related issue

Refs #311, #326, #329, #338, #340, #341, #346, #347, #348, #349 and #351. Traditional PPT ownership and publication remain a separate release gate.

Change classification

  • User-visible UI or rendering change
  • Non-visual change
  • File-format or renderer behavior
  • Public API, package, Worker, WASM, or deployment-path change

Verification

Completed check Result
pnpm build:renderer-packages Pass in a fresh checkout with affected build outputs absent; text precedes Mermaid, which precedes drawing.
pnpm type-check:core Pass after removing the affected outputs again.
node packages/renderers/dicom/scripts/verify-packed-browser.mjs Pass on macOS and Linux: eight fixtures per browser, six transfer syntaxes, actual PNG content, frame changes and cleanup; full/production cold-consumer audits both zero.
node packages/capabilities/mermaid/scripts/verify-packed-browser.mjs Pass on macOS and Linux: offline Markdown/drawing flowcharts and two fully visible math labels per viewer; full/production cold-consumer audits both zero.
pnpm --filter @file-viewer/web-full verify:packed-assets Pass: actual tarball sizes, complete offline copying, stable repeat receipts, CDN selection, DWG and Draw.io rendering in both browsers.

The independent Linux cold-browser job passed for the current head. Its GitHub merge commit eab601b062fc3096189617796c91ed7301585261 has main e8a2cf9581e942cf31a9b32b3791e646d6fdc579 and this PR head as parents, with the same tree as the PR. All 22 retained DICOM PNG records were independently checked for byte/hash identity and visible center-image content. The current artifact ZIP matches GitHub digest f51a2c55979770f362b2ba181295e3ffa0571db4e4fc8474475fa7004f1f4291.

The current-head pipeline passed both jobs, including source build, type-check, issue regressions, real cold consumers and browser gates. Security and Geo3D also passed. After the normal base merge, the local Web build, 31 Node contracts and 14 Vitest consumer contracts passed. This source candidate is being prepared for review; the formal readiness helper rechecks all current-head gates, and exact-head landing authorization remains required. Aggregate version freeze, traditional PPT publication and registry release verification remain separate release gates.

Sample / fixture evidence

  • Public CT: apps/viewer-demo/public/example/ct-small.dcm; licensed compressed/multiframe fixtures: test/fixtures/dicom/.
  • Offline CAD and drawing: apps/viewer-demo/public/example/sample.dwg and apps/viewer-demo/public/example/process.drawio.
  • Current screenshot provenance binds the public screenshots to this head, tree, CI run and artifact hashes. The PNG bytes match those from the previous verified candidate.

Visual evidence

Current Linux WebKit CT:

WebKit renders the public CT fixture

Current Linux WebKit mathematics in Markdown and drawing:

Both Mermaid viewers render complete mathematics

The earlier blank WebKit CT capture is rejected by the new PNG-content gate. Earlier screenshots remain historical coverage for preceding fixes.

Risk and compatibility

  • Affected packages/formats: DOCX, DICOM, Mermaid/text/drawing, Web Full and its CAD/drawing asset packs, plus the preserved intermediate renderer fixes.
  • Compatibility or migration risk: legacy encoding remains opt-in. CDN consumers obtain heavy assets from matching dependency versions; self-hosted deployments copy the complete offline output. Web Full unpacked size is 133,035,113 bytes; CAD is 30,738,234 and drawing is 62,171,315. Each is below 150,000,000 bytes. Complete offline copying retains 2,916 files / 198,661,914 bytes. Aggregate versions remain unfrozen, traditional PPT publication is unresolved, and these source-packed checks do not establish the safety of already published 3.1.2 packages. The measured 3.1.2 tarballs are unpublished test builds.
  • Rollback: revert the affected source commits and rebuild matching packages/assets through the normal release process. No registry version is overwritten by this PR.

Checklist

  • I added or updated focused automated coverage, or explained why it is not needed.
  • I updated user-facing documentation or release notes when behavior or API changed, or marked them not applicable.
  • I verified offline/private-deployment paths when changing Worker, WASM, fonts, vendor assets, or URLs.
  • I did not commit secrets, customer files, private samples, generated caches, or unrelated changes.

Combine current-base PRs #348, #346, #349 and #347 and preserve newer main changes while restoring reviewed renderer and package boundaries.

Prepared and validated by Codex <codex@openai.com> in an independent cloud workspace. Local candidate: 7f478f7e0ea01aa9a596a2cc7c054913fe46b892. Exact validated tree: 3524dfa. Connector publication controls remote author metadata.

No npm release or compatibility-floor change.
Pin Next and its matching env/SWC cohort to16.3.8 to resolve six current docs-site advisories. Preserve unrelated dependencies and compatibility floors.

Validated by Codex in the independent cloud: frozen install, full and production official audits, docs build/type-check, cohort tests and governance. Existing ignored Vue2 low finding remains explicit.

Local validated commit accf4a6e01a818bb75de1d43666ca30b76c2a09c; exact tree285cc92f0dc18b7aa5abc7ab10fce451a8ca616b. Connector controls remote author metadata.
The actual Chromium font-table gate reproduced zero-height vertical glyphs from WenQuanYi. Install the reviewed Noto CJK prerequisite and retain its physical font cohort as evidence; keep all glyph bounds and advance assertions unchanged.

Local workflow formatting/governance passed. Original failed pixels and geometry retained from run37718395780. Local commit249c3700c91b71693b0e8b9a70c1658e4aaa715f; exact tree320792ed4bcbfbf09ea9992d76b61cbb605a9679. No renderer/runtime source change.
Selectively adapt PR #326 without importing its historical dependency or
Markdown implementation. Preserve BOM/UTF-16/strict UTF-8 auto precedence
and the default GB18030 fallback; expose six explicit single-byte labels
and text.fallbackEncoding throughout current text rendering, including LRC.

Use single-byte offsets for virtual line segments and search. Add charset,
public type, precedence, exact-offset and real-browser regression gates to
the standard test chain, retaining browser artifacts in Public CI.

Validated locally: 53 focused tests, 35 text package tests, core and all 34
renderer builds/type-checks, governance, docs, browser fixtures and bundle.
Chromium/WebKit execution is pending on GitHub-hosted CI; local browser
launch was not attempted. No dependency, release or compatibility-floor change.

Co-authored-by: 4gray <fourgray@proton.me>

Prepared as local commit 1809ec12042523f0c7158263c6dab39150ab01c5; published through the authorized connector with identical tree ecabf9c.
@wybaby168 wybaby168 changed the title fix: restore intermediate renderer and package contracts fix: restore renderer contracts and legacy text encodings Oct 8, 2026
Document the application-owned dependency overrides, current default versus constrained audit results, existing transitive Node requirement, CLI Full selection and workspace license-snapshot boundary. Link both installation guides to the shipped policy.

Six Markdown files only; runtime, package dependencies, engines and workflows are unchanged. Validation: JSON examples and links, release facts, 114-page documentation production build, and final wording diff checks. Prepared and reviewed from local Codex commit 892b058791a0c3493d763e85c8550c1793985f19; remote tree is identical.
Add isolated packed DICOM browser evidence with contamination controls and repair transactional preparation for an ordinary versioned DOCX dependency. Preserve rendering assertions and verify registry package integrity after migration.

Locally validated source tree: 0fe8d63
Local source commit: 303dfe3d780e8e1beb10af78feef4ec4726c6ecf
Keep the exact measurement that satisfied the rendering poll and independently enforce the retained report thresholds. Add negative controls for an intervening blank read and blank retained evidence while preserving the original hosted discrepancy.

Validated source tree: b506193
Local source commit: cd3fcf5cdd7f97d609064738b9dbf0195ce508d4
Use ordinary published DOCX 0.3.34 and remove its transitional patch. Bundle DICOM and Mermaid runtime inputs with exact license and file identities; verify cold installed consumers, rendered screenshots, compressed DICOM syntaxes, visible mathematics, and cleanup in Chromium and WebKit.

Retain the complete Full renderer set while using exact-version CAD and drawing asset dependencies to meet the CDN unpacked-size limit. Validate complete offline copying and actual DWG/Draw.io rendering. Add independent Linux browser evidence gates and project all licensed DICOM test fixtures.

This is a source review candidate. Aggregate versions remain unfrozen, Linux validation is pending, and the traditional PPT publisher binding is unresolved.

Source commit: 8d6531781b5d193c84fd94008bc462a755346f44
@wybaby168 wybaby168 changed the title fix: restore renderer contracts and legacy text encodings fix: adopt DOCX and verify renderer runtimes and full assets Oct 9, 2026
Schedule renderer and capability workspaces together through pnpm's dependency order instead of building all renderers before capabilities. A clean drawing build now waits for the Mermaid engine and its declarations. Remove the redundant later capability batch from the root build.

Validation: a fresh isolated checkout with independent frozen dependencies and empty affected dist/build-info directories passed the normal root build and standalone type checks. Text completed before Mermaid, and Mermaid completed before drawing started. All 17 DICOM and 104 Mermaid output files match the passed browser evidence byte-for-byte; 11 projection checks and two clean-build contracts passed.

Source commit: 7f6e90984f04b76aa95af92b5c6e4f72440064f3
Integrate the five verified constituent squash merges. Preserve the ordinary published DOCX dependency guard and the complete offline asset distribution rules. The resolved tree is identical to the previously verified candidate.
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