38. Appendices
Appendices requirements from the authoritative Glitchpad Technical Specification.
Appendix A. Capability-state rules
| State | User availability | Associations and claims | Required evidence |
|---|---|---|---|
| Foundation | None | None | Approved architecture and contracts |
| Planned | None | None | Versioned roadmap and owning feature slice |
| Experimental | Explicitly labeled opt-in behavior | Experimental claim only | Contract, security, platform subset, limitations |
| Stable | Enabled in official artifacts | Stable claim and associations | Full renderer and Tier 1 release matrix |
| Deprecated | Available with removal warning | Deprecation claim | Migration and removal version |
| Unsupported | None | Explicit unsupported result | Stable detection and fallback behavior |
Appendix B. Platform artifact and evidence matrix
| Platform | Build | Package | Core behavior | Association/intents | Signature | Clean install | Physical device |
|---|---|---|---|---|---|---|---|
| Windows x86_64 | Required | NSIS and ZIP | Required | Required | Explicitly unsigned community artifacts | Automated package gate | Not applicable |
| macOS universal | Required | DMG | Required | Required | Ad-hoc application; non-notarized DMG | Automated package gate | Post-release issue #66 |
| Linux x86_64 | Required | AppImage and DEB | Required | Required | Repository signature/attestation required | Required | Not applicable |
| Android | Required | APK and AAB | Required | Required | APK/AAB signing required | Required | API 24 and API 36 evidence |
Appendix C. Metadata catalog groups
host.*: source kind, display name, size, observed times, permissions/provider write state, identity confidence, external revision.text.*: encoding, BOM, newline pattern, terminal newline, line/character counts, language, round-trip safety.diagram.*: diagram type, parser version/status, current and preview revisions, stale-preview state, accessible-title/description presence, source/edge/output measurements, timings, and limit result.image.*: dimensions, frames, codec, bit depth, color model, alpha, orientation, animation duration.exif.*,iptc.*,xmp.*: embedded fields with exact provenance and sensitivity.ico.*: entry count and per-entry dimensions, bit depth, encoding, byte size, validity.pdf.*: version, pages, title, author, subject, keywords, creator, producer, dates, outline presence, encryption.office.*: package type, title, author, subject, keywords, dates, headings, tables, images, notes, unsupported construct counts.derived.*: SHA-256, counts, parser warnings, detection confidence, evidence conflicts.
Appendix D. Interaction matrix
| Action | Windows/Linux | macOS | Android |
|---|---|---|---|
| Open | Ctrl+O | Cmd+O | System picker action |
| Save | Ctrl+S | Cmd+S | Save action |
| Save As | Ctrl+Shift+S | Cmd+Shift+S | Create-document action |
| Close tab | Ctrl+W | Cmd+W | Tab sheet close |
| Next tab | Ctrl+Tab | Ctrl+Tab | Swipe within tab sheet or select |
| Previous tab | Ctrl+Shift+Tab | Ctrl+Shift+Tab | Select from tab sheet |
| Find | Ctrl+F | Cmd+F | Find action |
| Replace | Ctrl+H | Cmd+Option+F | Replace action when editable |
| Go to line/page | Ctrl+G | Cmd+G | Navigate action |
| Toggle Markdown or Mermaid view/source | Ctrl+E | Cmd+E | Mode action |
| Metadata inspector | Ctrl+I | Cmd+I | Information action |
| Zoom in/out/reset | Ctrl++, Ctrl+-, Ctrl+0 | Cmd++, Cmd+-, Cmd+0 | Pinch and zoom actions |
Shortcuts MUST yield to platform-reserved behavior and remain discoverable in command labels. Touch alternatives are required for every essential action.
Appendix E. Version-authority matrix
| Version | Authority |
|---|---|
| Product and Rust workspace | Root Cargo.toml after repository foundation |
| Rust compiler and components | rust-toolchain.toml |
| Node.js | .node-version |
| pnpm | Root package.json#packageManager |
| JavaScript dependencies | package.json plus pnpm-lock.yaml |
| Rust dependencies | Workspace manifests plus Cargo.lock |
| Tauri product mirror and bundling | tauri.conf.json |
| Android SDK, NDK, AGP, Kotlin, Gradle | Generated Android Gradle files, version catalog, and wrapper |
| Spec Kit | .specify/init-options.json |
| Documentation tools | Root development manifest and lockfile |
| CI images/actions | Pinned workflow declarations |
Appendix F. Fixture classes
- Valid minimal, representative, complex, and boundary documents for each supported format.
- Encoding fixtures for UTF-8, UTF-16, legacy encodings, BOM variants, mixed newlines, terminal newline, and invalid bytes.
- Contradictory extension, MIME, signature, shebang, modeline, and parser evidence.
- Truncated, malformed, encrypted, decompression-bomb, path-traversal, recursive, oversized, high-pixel, high-page, and timeout cases.
- Metadata fixtures with missing, malformed, duplicate, sensitive GPS, timezone, precision, and unsupported values.
- External-change, rename, deletion, permission-revocation, storage-full, partial-write, and recovery-quota scenarios.
- Accessibility and localization fixtures with long names, right-to-left text, combining characters, emoji, and high zoom.
- Mermaid fixtures for every enabled diagram type,
.mmdand.mermaid, fenced blocks, authored directions, accessibility annotations, rapid revisions, stale previews, secure-key overrides, active content, remote resources, output expansion, limits, cancellation, and sanitizer bypass attempts.
Appendix G. Packaging inventory
- Windows: unsigned NSIS installer, portable ZIP, community trust evidence, checksums, SBOM, provenance, notices.
- macOS: universal DMG, ad-hoc application signature, non-notarized trust evidence, checksums, SBOM, provenance, notices.
- Linux: AppImage, Debian package, checksums, SBOM, provenance, notices.
- Android: universal APK, split ARM64 APK, AAB, signatures, checksums, SBOM, provenance, notices.
- Release: source archive, release notes, documentation-pass receipt, capability matrix, platform matrix, and verification summary.
Appendix H. Foundation decision index
| Decision | Section |
|---|---|
| Rust, TypeScript, React, Tauri, and narrow Kotlin stack | 9 |
| Capability-based source model | 11–14 |
| One window and compact tabs | 15 |
| Internal renderer contract | 16 |
| CommonMark/GFM sanitized Markdown | 17 |
| Standalone and embedded Mermaid renderer | 16–18 |
| Pure-Rust bounded image pipeline | 19 |
| PDF.js custom viewer | 20 |
| Semantic DOCX and ODT fidelity | 21 |
| Four Tier 1 v0.1.4 platform families | 24 |
| Deny-by-default local security boundary | 25 |
| Apache-2.0 dependency posture | 28 |
| Tag-driven, documentation-gated releases | 33 |
Appendix I. Mermaid diagram inventory
| Diagram | Section | Type | Verification purpose |
|---|---|---|---|
| Change-to-release authority | 1 | flowchart TB | Confirms Spec Kit and documentation reconciliation order |
| System component architecture | 10 | flowchart TB | Confirms dependency direction and platform convergence |
| Document open flow | 10 | flowchart TB | Confirms acquisition, identity, detection, and renderer result |
| Session lifecycle | 11 | stateDiagram-v2 with direction TB | Confirms dirty, save, conflict, recovery, and close states |
| Format detection | 13 | flowchart TB | Confirms evidence ordering and safe fallback |
| Pull-request CI | 30 | flowchart TB | Confirms documentation, shared, security, platform, and aggregate gates |
| Release process | 33 | flowchart TB | Confirms pre-tag reconciliation and publication join |
Appendix J. Primary references
- Apache License 2.0
- Tauri 2 prerequisites
- Tauri distribution
- Tauri Android and Google Play packaging
- Tauri capabilities
- Android target API requirements
- Android 16 SDK setup
- Android SDK version semantics
- Node.js release schedule
- Rust 1.96.0 release
- Vite requirements
- CodeMirror system guide
- Mermaid API usage
- Mermaid security levels
- Mermaid secure configuration
- Mermaid accessibility options
- Mermaid CLI and standalone
.mmdfiles - rehype-sanitize
- Rust image crate formats
- kamadak-exif
- PDF.js documentation
- Mammoth DOCX semantic conversion
- OpenDocument 1.4
- CommonMark
- GitHub Flavored Markdown
- WCAG 2.2
- RFC 2119
- RFC 8174
Appendix K. Release documentation pass checklist
- Enumerate every completed Spec Kit slice since the prior release and record its disposition.
- Reconcile architecture, behavior, domain model, security, performance, and platform changes into this document.
- Update capability, platform, metadata, interaction, contributor, fixture, packaging, decision, and diagram appendices.
- Verify file associations, Android intent filters, dialog filters, renderer registration, README, release notes, and public claims against the capability matrix.
- Verify toolchain and SDK authorities against contributor documentation and CI images.
- Re-run dependency license, notice, vulnerability, SBOM, provenance, and secret checks.
- Assemble changelog fragments and confirm a non-empty release section.
- Set the canonical product version and every validated mirror, including this specification.
- Produce and review the machine-readable documentation-pass receipt.
- Run
cargo xtask release-checkbefore creating the release tag.