Typsastra v0.8.0 Release Qualification¶
Status¶
In preparation. This document is a release evidence record, not a claim that v0.8.0 is ready. Leave an item unchecked until the named command or manual test has actually completed and its result has been reviewed.
The implementation contract is in the v0.8.0 Unicode PDF Reliability plan.
Candidate identity¶
Record these values when release qualification begins:
| Field | Value |
|---|---|
| Typsastra commit | pending |
| Application version | 0.8.0 |
| Managed Tinymist version | pending |
| Embedded Typst version | pending |
| Enhanced Unicode Engine version | 0.4.0 |
| Enhanced Typst revision | 821bf1bf6ad099531219647b268342fc87851a8b |
| Enhanced Krilla revision | bb0873416484587814b9ecb682e262056f8effe2 |
| PDFium package | pdfium-bundled 0.1.1 |
| PDF.js package | pdfjs-dist 6.2.108 plus Typsastra patch |
| Qualification dates | pending |
Automated validation¶
Record the commit, platform, date, and artifact or log link for each completed run.
Local Windows x64 qualification was completed on August 30, 2026 against the
v0.8.0 preparation working tree based on 2ea7cad. GitHub Actions and packaged
platform runs must still be linked before approval.
- [x]
bun install --frozen-lockfile - [x]
bun test— 722 passed - [x]
bun run build - [x]
bun run conform— 39 passed - [x]
bun run test:khmer— 117 passed - [x]
bun run test:lao— 39 passed - [x]
bun run test:docs— 2 passed - [x]
bun run validate:examples— 24 bundled entry points compiled - [x]
cargo fmt --manifest-path src-tauri/Cargo.toml --package typsastra -- --check - [x]
cargo check --manifest-path src-tauri/Cargo.toml --lib - [x]
cargo test --manifest-path src-tauri/Cargo.toml --lib— 184 passed, 1 platform-side-effect test intentionally ignored - [x]
bun run tauri:build— Windows x64 MSI and NSIS bundles produced - [x]
git diff --check
Additional diagnostic harnesses were run on the same date. Enhanced Unicode export produced 8/10 exact logical-text cases with 10/10 bounded PDF.js geometry checks. PDFium produced 9/10 exact cases and returned a nonzero status for the known Arabic reconstruction mismatch. These are recorded evidence, not passing strict Unicode gates.
Enhanced Unicode Engine¶
- [ ] Every platform package reports the expected Typst version.
- [ ] Every platform package compiles
unicode-selection.typ. - [ ] Every platform package compiles
wide-repeated-fill.typ. - [ ] Every platform package produces all supported base PDF versions.
- [ ] Linux x64 passes every claimed PDF/A and PDF/UA profile with the pinned veraPDF release.
- [ ] The release manifest records the exact byte length and SHA-256 of every archive.
- [ ] Managed installation rejects a changed byte length.
- [ ] Managed installation rejects a changed SHA-256.
- [ ] Managed installation recovers from cancellation and an interrupted download without presenting a partial executable as installed.
Export safety matrix¶
| Scenario | Ordinary Tinymist export | Enhanced export | Result/evidence |
|---|---|---|---|
| Valid one-page document | pending | pending | pending |
| Multilingual fixture | pending | pending | pending |
| Wide repeated fill | pending | pending | pending |
| Missing font | pending | pending | pending |
| Invalid source | pending | pending | pending |
| Existing destination PDF | pending | pending | pending |
| Cancellation during compile | pending | pending | pending |
| Read-only destination | pending | pending | pending |
| Unicode and spaces in path | pending | pending | pending |
| Long Windows path | pending | pending | pending |
| Engine executable removed | not applicable | pending | pending |
| Engine executable invalid | not applicable | pending | pending |
Required outcomes:
- [ ] A failed or cancelled export does not replace a previous valid PDF.
- [ ] Enhanced export never silently falls back to Tinymist.
- [ ] Disabling Enhanced Unicode export restores the ordinary path.
- [ ] Success and diagnostic details identify the compiler used.
- [ ] Export does not change live preview, diagnostics, LSP, source-map, or unsaved editor state.
Standalone PDF matrix¶
Test an ordinary small PDF, the enhanced multilingual fixture, a large approved PDF, and malformed/unsupported inputs.
- [ ] Initial page appears without exposing a stale previous document.
- [ ] Rapid document replacement cancels stale work.
- [ ] Search supports Latin, combining text, Khmer, Arabic, Devanagari, Thai, Lao, punctuation, and mixed-script queries.
- [ ] Rapidly replacing a query cannot commit stale matches.
- [ ] Search markers survive page virtualization and clear on document change.
- [ ] Selection remains attached after zoom and resize.
- [ ] Selection works in both drag directions and across lines/pages.
- [ ] Plain copy preserves expected Unicode and whitespace.
- [ ] Formatted copy preserves supported paragraphs, boxes, and tables.
- [ ] Internal links and outline destinations navigate correctly.
- [ ] External links use the existing confirmation/opening policy.
- [ ] Dock, undock, redock, and color-mode changes preserve valid viewport state.
- [ ] Password-protected, malformed, empty, and unsupported PDFs fail clearly.
- [ ] Repeated open/close cycles release document resources within the published bound.
Viewer interoperability¶
Record exact application versions and operating systems. Use not available rather than inventing a result for an unavailable platform.
| Viewer | Version/OS | Text extraction | Search | Selection geometry | Copy/paste | Notes |
|---|---|---|---|---|---|---|
| Typsastra PDFium | pending | pending | pending | pending | pending | pending |
| Typsastra patched PDF.js | pending | pending | pending | pending | pending | pending |
| Adobe Acrobat Reader | pending | pending | pending | pending | pending | pending |
| Microsoft Edge | pending | pending | pending | pending | pending | pending |
| Google Chrome | pending | pending | pending | pending | pending | pending |
| Firefox | pending | pending | pending | pending | pending | pending |
| macOS Preview | pending | pending | pending | pending | pending | pending |
Published historical evidence:
- The Typst Forum viewer matrix records v0.1.0 Khmer rendering, selection, copy/paste, and search results for Chrome, Brave, Edge, Okular, SumatraPDF, Acrobat, Firefox, and ONLYOFFICE. Treat it as prior evidence, not as a completed v0.4.0 row, because exact viewer versions and operating systems were not recorded.
Known issue requiring a release decision:
- [ ] Mixed Latin/Arabic PDFium reconstruction is exact, or its limitation is documented in release notes and user-facing compatibility guidance.
Performance and resource evidence¶
Measure release builds. Browser heap alone is insufficient; record Typsastra, WebView, renderer/GPU, PDFium/native backend, and compiler processes where the platform exposes them.
| Platform/workload | First page | Search | Zoom settle | Settled memory | Open/close delta | Evidence |
|---|---|---|---|---|---|---|
| Windows, small PDF | pending | pending | pending | pending | pending | pending |
| Windows, large PDF | pending | pending | pending | pending | pending | pending |
| Linux, small PDF | pending | pending | pending | pending | pending | pending |
| Linux, large PDF | pending | pending | pending | pending | pending | pending |
| macOS, if available | pending | pending | pending | pending | pending | pending |
- [ ] First-page and zoom measurements meet the approved v0.8 targets or the plan records and justifies revised targets.
- [ ] Rendered-page and native-memory bounds are documented.
- [ ] No stale generation becomes visible after cancellation or replacement.
Regression coverage¶
- [ ] Normal Tinymist live preview and PDF export.
- [ ] PDF.js live-preview virtualization and source synchronization.
- [ ] Markdown preview lifecycle.
- [ ] Project import/export and Unicode archive paths.
- [ ] Workspace restoration and project replacement.
- [ ] Khmer editing and provider fixtures.
- [ ] Lao provider fixtures.
- [ ] Global grapheme-aware text controls.
- [ ] Search state reset across project changes.
- [ ] Direct-PDF large-file approval and cancellation.
Platform packages¶
| Package | Install | Upgrade | Launch | Export | Direct PDF | Uninstall | Evidence |
|---|---|---|---|---|---|---|---|
| Windows MSI/NSIS | pending | pending | pending | pending | pending | pending | pending |
| Linux DEB | pending | pending | pending | pending | pending | pending | pending |
| Linux RPM | pending | pending | pending | pending | pending | pending | pending |
| Linux AppImage | pending | not applicable | pending | pending | pending | not applicable | pending |
| macOS DMG | pending | pending | pending | pending | pending | pending | pending |
Documentation and release freeze¶
- [ ]
ROADMAP.mdreflects the final delivered scope. - [ ] Settings and troubleshooting documentation match managed v0.4.0 behavior.
- [ ] Release notes distinguish Tinymist, Enhanced Unicode export, PDF.js live preview, and PDFium standalone viewing.
- [ ] Experimental and known-limitation labels are accurate.
- [ ] Migration or compatibility notes are complete.
- [ ] Feature freeze has started.
- [ ] No known data-loss, security, crash, or blocker-severity PDF/export issue remains.
- [ ] All accepted post-freeze fixes include focused regression coverage.
Release decision¶
- [ ] Approved for v0.8.0
Approver, date, candidate commit, and unresolved non-blocking limitations: