Skip to content

fix(test): restore consumer security policy on current main - #347

Merged
wybaby168 merged 2 commits into
mainfrom
fix/consumer-security-main-20261007
Oct 9, 2026
Merged

wybaby168 merged 2 commits into
mainfrom
fix/consumer-security-main-20261007

Conversation

@wybaby168

@wybaby168 wybaby168 commented Oct 7, 2026 •

Copy link
Copy Markdown
Member

Summary

Cold packed consumers were discarding fixture-owned npm overrides and still installing Vue 3.5.21 and ts-loader 9.5.4. Preserve the Angular fixture's Piscina 5.3.2 and MCP SDK 1.31.0 policy, align Vue/compiler-sfc at 3.5.43, and use ts-loader 9.6.2.

Capture full and production-only npm audits separately after each cold install, with affected-entry totals and distinct advisory identities. Public CI retains the raw audits, installed lockfiles, fixture manifests and candidate tarball hashes.

This is a narrow current-main replacement for the consumer scope of #342. It preserves main's newer compatibility-engine packing, renderer work and package/lockfile. It does not supersede #339's remaining Vitest 5 upgrade and runtime-cohort assertions.

Related issue

N/A: consumer security maintenance and evidence preservation. Supersedes only the six-file consumer scope of #342; #339's independent remaining scope stays separate.

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

  • node --check apps/component-demo/scripts/build-packed-issue-consumer.mjs — Passed.
  • Independent Linux cloud, Node 24.20.0, NODE_PATH/NODE_OPTIONS cleared: focused Vitest 4.1.11 fixture-policy, lifecycle and audit-evidence tests passed (9 tests); helper syntax and all seven changed files' formatting passed.
  • Audit parser controls reject malformed zero-finding reports and missing advisory URLs; positive findings remain visible even if npm returns exit 0 under a configured threshold.
  • The exact remote tree was verified against main: seven changed files, with all other blobs and file modes retained.
  • node apps/component-demo/scripts/verify-packed-issue-closure.mjs — Passed in full Public CI on ca18e313a0429819af209e1657b6dced2a11e599: 21 Vue/React browser cases and Angular development/restart/production Worker plus missing-manifest checks.
  • The same full run passed 51 steps; only failure-evidence upload was skipped. Security, CodeQL and PR governance passed. No merge or release was performed.
  • Fresh installed audits: Angular 0 full / 0 production. Vue/React full: 39 affected entries (16 high, 16 moderate, 7 low), spanning 19 distinct advisories; production: 7 low entries from one KaTeX advisory (GHSA-238p-pmpm-9mq7). These results do not claim a clean legacy graph or universal downstream defaults.
  • The Public CI packed-consumer-security-evidence artifact contains exactly 14 allowlisted JSON files: both projects' full/production audits, summaries, installed locks, manifests, candidate hashes and engine provenance. All 48 candidate tarball hashes agree between projects. Archive SHA-256: abdbca6908bbb188fa30b58f3905eb91fa6c4bb1bd8a0385bfd18ba85fcaed17.
  • Both installed locks confirm Vue/compiler-sfc 3.5.43, ts-loader 9.6.2, Piscina 5.3.2 and MCP SDK 1.31.0 in their respective fixtures. Existing workspace audit policy separately retains 1 low ignored Vue 2 finding.
  • Local browser/socket execution is unavailable in this cloud environment; no local browser pass is claimed.

Sample / fixture evidence

Existing public repository fixtures only: apps/component-demo/test/webpack5-issues/src/App.vue, apps/component-demo/test/angular-pptx, and apps/viewer-demo/public/example/ppt.pptx. No private samples are introduced.

Visual evidence

N/A: this change repairs test-application dependency policy and preserves audit evidence. Rendering and Worker behavior are verified by the existing hosted browser suite.

Risk and compatibility

  • Affected packages/formats: Angular and Vue CLI/React packed-consumer fixtures, their helper/tests, and CI audit artifact retention.
  • Compatibility or migration risk: Angular remains on its existing 22.1 cohort; Vue/CLI/React majors, TypeScript pins and library compatibility floors remain unchanged. Fixture npm overrides do not become library-default policy. No Mermaid or KaTeX override is added.
  • Remaining security boundary: legacy Vue CLI tooling and the transitive KaTeX advisory remain reportable. An audit total counts affected entries, not distinct exploits. A passing browser build does not mean a clean full or production audit.
  • Vue 2 compatibility is outside the Vue 3 patch. The workspace exception for GHSA-5j4c-8p2g-v4jx can include an auto-installed production Vue 2 peer; it is not exclusively development-only. Vue 2 hosts must use application-controlled templates and must not compile untrusted templates, including during SSR. This boundary does not fix the advisory; a maintained backport or migration remains separate.
  • npm audit registry/data failures fail evidence generation rather than being reported as clean. Vulnerability findings are retained without pretending this maintenance change resolves the legacy dependency graph.
  • Rollback: revert this focused commit; no package release, version bump or lockfile migration is involved.

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. N/A: paths are unchanged; existing hosted Worker/browser checks remain required.
  • I did not commit secrets, customer files, private samples, generated caches, or unrelated changes.

@wybaby168
wybaby168 marked this pull request as ready for review October 7, 2026 19:53
@wybaby168
wybaby168 merged commit e8a2cf9 into main Oct 9, 2026
10 of 11 checks passed
wybaby168 added a commit that referenced this pull request Oct 9, 2026
* fix: restore intermediate stabilization contracts

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.

* fix(docs): update Next security patch cohort

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.

* fix(ci): install required CJK vertical fonts

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.

* fix(text): adapt single-byte encoding support to current renderers

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.

* docs(dicom): explain application installation policy

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.

* test(release): verify packed DICOM browsers and normal DOCX migration

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

* test(dicom): retain the asserted browser pixel sample

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

* Adopt published DOCX and verify browser runtime and full asset delivery

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

* Build capability dependencies before their renderer consumers

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
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