# Windows native testing checkpoint

Runtime update (September 10): use **Node 24 only** for new development and verification; see [migration instructions](migrations/node24.md). Historical Node 20/24 results and commands below describe prior checkpoints. Keep distinct browser/OS/native gates and the existing Office recovery prerequisite.

The [Windows evidence bundle](evidence/windows-native-2026-09-10/README.md) records completed accepted-text native testing on the immutable source baselines in its `sources.json`. Both Node 20.20.2 and 24.20.0 passed all 24 separate bounded cases: 144 editable lines, 72 original/saved/edited imports, 24 unchanged save/reopen PNG pairs and 96 original-text ink masks per runtime. The 0.1-reference-pixel containment rule is unchanged. All four owned temporary Carlito registrations were removed after every case, including separate dummy-worker failure/timeout controls.

[PPTX #17](https://github.com/OpenPresentation/opf-pptx/pull/17), retaining the owned worker handle for Windows PowerShell exit codes, and [PPTX #18](https://github.com/OpenPresentation/opf-pptx/pull/18), adding bounded text workers and parent-owned font cleanup, were reviewed and merged by the Mac owner. [PPTX #19](https://github.com/OpenPresentation/opf-pptx/pull/19) contains the separately bounded metric suite. Native results and exact verifier snapshots are in the evidence bundle. Product runtime and release refs are unchanged.

The complete chart matrix now passes: eight separately selected workbook edits on each Node runtime, 384 original/saved/edited slide imports, 384 independent chart-cache comparisons and 128 identical original/reopened PNG pairs. Each actual selected edit changes its raster and preserves the other seven. [PPTX #21](https://github.com/OpenPresentation/opf-pptx/pull/21) rebinds the existing source range after cell edits and requires exact live edited series before closing the workbook. A pie created entirely by PowerPoint reproduces null category getters after reopening; these are explicitly unavailable observations, while exact live categories and independent persisted cache data remain required. Initial stale-cache, getter, parser and control-save failures remain raw. The earlier `chart.dll` crash's precise trigger remains unknown and its broader probe was not repeated.

The user reviewed the AutoRecovered presentations and explicitly resumed after an earlier Escape. Preserve those pre-existing presentations. Never kill PowerPoint or Excel, call `Application.Quit`, discard user work or automatically retry a blocked Office call. The bounded helper may close only verified fixtures it opened; helper termination does not establish Office cleanup. Temporary fonts belong to the surviving parent and must be removed in `finally`.

Both Node runtimes now completed six separate bounded metric runs / 48 slides each. All 144 original/saved/edited imports per runtime pass, while eight tab errors above 0.02 points (maximum 0.0673828125) and one portrait/right native ink overflow at x=497 beyond 496.8 reproduce exactly. Character bounds, inter-part collisions and isolated-mask coverage pass. Original and saved DrawingML retain the precise tab coordinates; the native shaping/observation cause remains under investigation. The current shared metric layout uses advance positions without the general text model's outline clearance.

Both runtimes now pass the bounded table suite (six actual cell edits, 72 native cells, 978 character colors and 54 slide imports including two further export/import cycles) and code suite (24 imports, actual body/filename edits, zero tab/character-bound outliers). Stronger quote imports exposed first-body-line promotion to subtitle on all six portrait slides; 18 original/saved/edited counterexamples per runtime retain every word but change its role. Native quote bounds and wide imports pass. Earlier footer-only quote checks missed this problem; both verifier generations and raw results remain in the bundle. [PPTX #22](https://github.com/OpenPresentation/opf-pptx/pull/22) contains the bounded content harness and explicitly preserves this failed gate.

The [coordinated candidate evidence](evidence/windows-native-candidate-2026-09-10/README.md) now records both complete native metric matrices on core `476fdb2f5547e442d8a270047dfc8557f306bb49` and the physical-font graph. The portrait/right Latency ink overflow is cleared under the unchanged containment rule. Six leading-tab outliers remain per runtime (maximum about 0.02267456 pt). The full metric fidelity gate remains failed. The original baseline remains separate, and changing both outline/font inputs does not isolate their individual effects.

The [fresh quote and native tab evidence](evidence/windows-native-quote-tab-2026-09-10/README.md) verifies merged PPTX #24 on both Node runtimes: 72 slide imports now preserve exact current body/footer roles and title edits. Quotes remain generic text on import. Nine tab/literal pairs created entirely by PowerPoint independently reproduce the native tab offset discrepancy; DrawingML retains precise coordinates. PDF coordinates also differ but have separate rounding. Preserve the 0.02 pt gate and do not add consumer compensation. The successful control, earlier adapter failure, exact verifiers and portable extracted observations remain; private PDFs/font subsets are excluded.

The [native font/image checkpoint](evidence/windows-native-font-image-2026-09-10/README.md) now records all nine bundled output family/style combinations in actual PowerPoint character properties and PDF glyph font names on both Node runtimes. Each has seven stable save/reopen PNG pairs, 14 identical current-content imports and all nine temporary registrations removed. Initial PostScript/PDF naming mismatch remains raw. Physical file identity for every glyph is not established. OPF editor atomic image replacement, source preservation, guarded failure and exact document/PPTX undo/redo pass on both runtimes.

Native images are blocked. Both preserve/compatible nine-image decks and minimal OPF/direct-PptxGenJS one-PNG controls were refused immediately despite valid XML, archive relationships and source PNG CRCs. A PowerPoint-created picture control timed out after 45 seconds on 2026-09-10 at 20:03:33 UTC; only helper PID 16992 was terminated. The empty owned checkpoint exists, but cleanup and the exact blocked call are unconfirmed because that scratch control did not persist individual stages. No subsequent Office COM calls were made. UI inspection still showed the three pre-existing chart windows without a visible dialog; that does not establish readiness. The user was asked to save wanted presentations, close PowerPoint normally and reopen it before another native image attempt. Preserve all raw attempts and never kill Office or automatically retry a blocked call.

The Mac owner owns shared product placement and release work. Neither accepted geometry, temporary font registration nor unchanged save/reopen pixels establishes font-file identity, browser/native equivalence or arbitrary round-trip support. No packages or public sites have been published or deployed by this Windows task. The user has authorized creating and merging focused PRs that pass review and checks.
