Skip to content

feat(ifc): finalize sample regressions and release readiness - #276

Merged
brownie-cake merged 5 commits into
mainfrom
release/readiness-20260911
Sep 12, 2026
Merged

feat(ifc): finalize sample regressions and release readiness#276
brownie-cake merged 5 commits into
mainfrom
release/readiness-20260911

Conversation

@brownie-cake

@brownie-cake brownie-cake commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

Complete the sample-backed maintenance work after #272 and #273 and add an explicitly optional, browser-local IFC viewer. This PR does not publish packages, create tags, or close the related issues.

  • Correctly distinguish PKCS#7/GM SignedData from SES seal images. Display-only metadata is explicitly not-verified; preview does not claim cryptographic verification.
  • Add @file-viewer/renderer-3d/ifc with local IFC4/IFC4.3 rendering, navigation, picking/highlighting, basic properties/GlobalId, a post-load extension hook and deterministic cleanup.
  • Keep IFC dependencies behind the optional entry. Self-host the importer Worker, Fragments Worker and WASM using the packaged asset command; preserve licenses and checksums.
  • Cover installed npm-bin symlinks and the absence of secure-context-only UUID generation.
  • Add an actual-installed-DOCX-engine release gate and an exact-version preparation helper. The existing published dependency remains installable until the maintainer publishes the merged upstream.

Related issue

Refs #266, #267, #268 and flyfish-dev/docxjs#10. The latter is merged. The advanced import/Fragments configuration proposal in #275 will be integrated separately on this qualified foundation; the duplicate draft runtime will not be merged wholesale.

Change classification

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

Verification

Exact reviewed head: 78f8e5a8fbe9bd16e48e63c11492f15e8a99ec28.

  • pnpm install --frozen-lockfile — Passed.
  • pnpm verify:github-governance — Passed.
  • pnpm build — Passed.
  • pnpm type-check — Passed.
  • pnpm test — Passed.
  • pnpm docs:build — Passed.
  • pnpm --filter @file-viewer/renderer-3d verify:ifc — Passed.
  • pnpm --filter @file-viewer/renderer-3d verify:ifc-browser /tmp/ifc-samples — Passed in the dedicated qualification; official IFC4 and IFC4.3 rendering, picking and teardown also passed in the full PR CI.

Full exact-head Public CI: https://github.com/flyfish-dev/file-viewer/actions/runs/34625940086 — success.
Exact-head Security: https://github.com/flyfish-dev/file-viewer/actions/runs/34625940222 — success.

Original signature/sample qualification: https://github.com/flyfish-dev/file-viewer/actions/runs/34619156884 — success.
Packed merged DOCX upstream through the real File Viewer Word consumer: https://github.com/flyfish-dev/docxjs/actions/runs/34620182131 — success.
Actual cold-installed IFC tarballs, export, asset command and browser lifecycle: https://github.com/flyfish-dev/file-viewer/actions/runs/34624307848 — success.
Missing crypto.randomUUID reproduction and corrected runtime: https://github.com/flyfish-dev/file-viewer/actions/runs/34625715095 — success.

Both official models have 13 geometric items and render 1,143 triangles in the tested scene. All tracked Workers return to zero after unmount. Cold-installed core, geometry and renderer tarballs resolve the optional entry and execute the installed .bin/file-viewer-ifc-assets command, with generated Workers and WASM verified on disk.

The old published DOCX 0.3.31 intentionally fails the new behavioral release gate. Candidate upstream integration passed, but this is not a claim that a new version is already published. Missing original artifacts for #227, #248 and #269 remain unverified.

Sample / fixture evidence

Visual evidence

IFC4 IFC4.3
IFC4 browser IFC4.3 browser

Before/after Word/OFD and PPTX images are in the merged #273/#272 reports. The invoice's visible stamp is an existing page resource; this change does not invent a seal image.

Risk and compatibility

Affected packages/formats: optional renderer-3d IFC subpath, OFD signature metadata, and DOCX release preparation. Ordinary model/Office entry points remain unchanged.

Compatibility or migration risk: IFC requires explicit opt-in, documented peer versions and deployment of self-hosted assets and notices. It is visual inspection, not BIM authoring, clash detection or cryptographic signature verification. Unknown signatures retain diagnostics. Before publishing File Viewer, run pnpm release:prepare-docx <exact-published-version> and pnpm release:verify, then review and commit synchronized metadata. Do not skip the behavioral gate or publish with the old DOCX lock entry.

Rollback: revert this PR's squash commit as one unit; remove the optional IFC registration and deployed IFC assets only from consumers that enabled them. No migration of user files or persisted data is introduced. The preparation helper restores source metadata on failure and does not publish.

Checklist

  • Exact-head full CI and Security completed successfully.
  • Original-file and deterministic regressions are included.
  • Actual cold-installed exports and npm-bin execution were verified.
  • Worker ownership, cancellation, teardown and local hosting were verified.
  • Public fixture attribution, licenses and release handoff are documented.
  • No private fixtures, secrets, transfer payloads or temporary maintenance workflows are included.

github-actions Bot and others added 3 commits September 11, 2026 15:58
… integration

Refs #266. Preserve existing SES appearance, never claim cryptographic verification, and gate the next release on actual installed DOCX behavior.
Refs #267. Includes pinned official IFC4/4.3 browser gates, selection, properties, extension cleanup, cold-installed CLI and self-hosted Worker/WASM assets. Ordinary model and Office entries are unchanged.
@brownie-cake brownie-cake changed the title fix(ofd): distinguish digital signatures and gate upstream release integration feat(ifc): finalize sample regressions and release readiness Sep 11, 2026
github-actions Bot and others added 2 commits September 11, 2026 17:06
Refs #267. Reproduce failure with crypto.randomUUID absent, then verify official IFC4/4.3 models, actual picking, properties and complete Worker cleanup.
@brownie-cake
brownie-cake merged commit db73a73 into main Sep 12, 2026
8 of 9 checks passed
github-actions Bot added a commit that referenced this pull request Sep 12, 2026
…e hook

Preserves the advanced configuration direction from p4535992 in #275 on the #276 owned-worker implementation. Includes original-model Worker behavior, pre-load cancellation and cleanup-failure tests, coordinated dependency guards and complete issue triage. No package publication.
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