Skip to content

test(geo3d): make stale raster cache expiry deterministic - #348

Merged
wybaby168 merged 1 commit into
mainfrom
fix/geo3d-deterministic-cache-expiry
Oct 9, 2026
Merged

wybaby168 merged 1 commit into
mainfrom
fix/geo3d-deterministic-cache-expiry

Conversation

@wybaby168

Copy link
Copy Markdown
Member

Summary

Related issue

N/A: maintenance-only deterministic regression fixture repair; restores the test-only portion of #338.

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

Validated in an independent Linux cloud workspace at main eb84220, with Node 24.20.0 and pnpm 11.0.9 and NODE_PATH/NODE_OPTIONS unset.

  • Pass: selected-workspace pnpm install --frozen-lockfile with official npm dependencies. Cached dependencies were reused; this is not a cold full-workspace installation claim.
  • node --test packages/renderers/3d/scripts/geo3d-raster-cache.test.mjs: Pass (5 tests).
  • Pass: current-source controlled-clock variants. Original main fails the initial entry-count assertion after a 10 ms clock advance; the fixed fixture passes at 10 ms and one hour. Removing the real ownership cleanup fails the final disposal assertion with one retained entry, proving the strict regression remains effective.
  • pnpm test:geo3d-entry: Pass (40 Vitest tests, core/geometry/renderer builds, 22 acceptance checks, 10 texture checks, zero NodeNext/Bundler type diagnostics, and 114 Node regressions).
  • pnpm verify:github-governance: Pass (50 tests, one existing private-release skip, community standards and formatting).
  • Pass: git diff --check.
  • Hosted Public CI, Security and Geo3D focused validation will verify this exact published head. Local browser acceptance was not run in this executor.

Sample / fixture evidence

N/A: no file-format or rendering behavior change. The repository regression fixture, packages/renderers/3d/scripts/geo3d-raster-cache.test.mjs, executes the hash-verified installed Giro3D cache and its real LRU dependency.

Visual evidence

N/A: test-only fixture timing and ownership assertions; no user-visible rendering change.

Risk and compatibility

  • Affected packages/formats: renderer-3d GeoTIFF cache regression tests only.
  • Compatibility or migration risk: low; production behavior, release artifacts and dependency versions are unchanged.
  • Rollback: revert this one-file test commit.

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.

Keep initial raster-cache insertion live until explicit fixture expiration,
and assert real ownership before and after the entry becomes stale.
Retain strict stale-entry disposal assertions without changing production
cache behavior.
@wybaby168
wybaby168 marked this pull request as ready for review October 7, 2026 21:18
@wybaby168
wybaby168 merged commit fbf1834 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