Cassette versioning — Pondo Semver
Policy accepted 2026-10-31 at the product owner's request. Cassette uses Pondocean
semantic versioning: major.minor.patch, with three cumulative counters.
- Major: accepted breaking contract or architectural/cross-cutting change.
- Minor: accepted feature, capability, product surface, or control.
- Patch: accepted fix, tweak, documentation, build/hygiene, or behavior-preserving refactor.
- Each accepted change gets exactly one ledger row and increments exactly one
counter. Major/minor increments never reset lower counters. For example,
1.7.12→1.8.12for a feature →2.8.12for an architectural change. - Count accepted changes, not proposed features or merge commits that duplicate already-counted ancestry. Classify a change once by its dominant category; split independently accepted changes into separate rows.
Release identity and migration
The locally built Windows installer Cassette_0.1.0_x64-setup.exe is historical
ordinary-SemVer identity. It must not be retroactively described as a Pondo census.
This checkout contains product/spec history and uncommitted CLI work; the earlier
desktop application was built from a separate Downloads source tree. Neither
unmerged work nor that application's capabilities can be inferred from this
checkout's main-branch history alone.
The fixed adoption anchor is 1.1.3, ratified as a bounded census of selected
migration units in the recovered desktop snapshot. It is not a count of all
historical features and is not a distributed binary. See
docs/decisions/0003-pondo-adoption-census.md for exact boundaries and exclusions.
Candidate identity 2.2.6 passed independent integration review. Accepted
follow-up repairs and transcript review brought the accounting total to 2.3.7.
The independently approved connected-library change below brings accepted
accounting and candidate manifests to 2.4.7. Windows package and hardware
qualification remain required before release.
Before distributing that release:
- Pin the actual application source and accepted baseline revision. Reconcile the Downloads desktop source with this repository and the unmerged work.
- Record a row for each accepted baseline change, its category and evidence; total each category into the first Pondo identity. Record any excluded history.
- Add this policy/notes change as one patch only once accepted. Keep pending changes separate from the accepted census.
- Use that same identity in Cargo/package manifests, lockfiles where applicable, Tauri bundle config, About/CLI output, installer filenames, and changelog. Verify that every active application surface agrees before building.
- Retain separate, monotonically increasing installer/platform distribution ordinals if required; those are not Pondo category counts. Check platform version constraints without resetting or silently truncating product counters.
Accepted-change ledger
The adoption anchor contains these accepted units. Intermediate totals show accounting order, not historical releases.
| Cumulative total | Category | Accepted change | Evidence |
|---|---|---|---|
| 1.0.0 | Major | Local-first Tauri/native/SQLite architecture | PR #6 source f0c99e7, merge e747b31; 91 source entries verified |
| 1.1.0 | Minor | Local catalog and metadata persistence | Same source; persistence and library-removal tests; capture/export/provider qualification excluded |
| 1.1.1 | Patch | Requirements, Pondo policy and staging runbook | PR #4 merge 78da299; inherited PR #1 counted once |
| 1.1.2 | Patch | Recovery provenance and reproducibility package | PR #6 provenance and baseline build receipts |
| 1.1.3 | Patch | Delivery workflow and release validators | PR #7 merge f84e04c; local/cloud checks, hosted CI unavailable |
| 1.1.4 | Patch | Development dependency security repair | Exact 28b77025; independent isolated build, 11 tests and zero-vulnerability npm audit |
| 2.1.4 | Major | Shared GUI/CLI recorder architecture and safe pending-save contract | PR #8 exact a873c86, independent approval, 29 Windows tests; staging merge 4469409 |
| 2.2.4 | Minor | Dense desktop workspace and optional cassette transport | UI exact e9e04ac, independent round-2 approval and 19 frontend tests; native tags contract integrated |
| 2.2.5 | Patch | Existing-destination export/source protection | Independently reviewed within PR #8; alias, hardlink, other-asset and publication-race fixtures |
The component total before release-identity integration is 2.2.5. The fixed migration anchor remains 1.1.3; later changes do not alter it. Runtime repair iterations complete the Major unit and do not create extra counter rows.
Candidate identity integration
| Cumulative total | Category | Accepted change | Evidence |
|---|---|---|---|
| 2.2.6 | Patch | Synchronized product identity, ledger/decision and release receipt integration | Exact 1add46b; independent integration approval; seven manifests, both lockfiles and native/browser identity sources agree |
That accepted candidate identity was 2.2.6. This records the concrete integration change after review; it does not claim that a binary is released, installed or hardware-qualified. Runtime sources derive identity from their manifests rather than retaining the legacy hardcoded value.
Accepted qualification repair and connected transcript review
| Cumulative total | Category | Accepted change | Evidence |
|---|---|---|---|
| 2.2.7 | Patch | Detach captured CLI streams from the on-demand Windows broker | PR #10 exact 8e48776, independent approval and real red/green subprocess regression; staging merge 94998f1 |
| 2.3.7 | Minor | Local transcript corrections, speaker labels and reviewed exports across desktop and CLI | PR #11 exact 3d8c7ac, independent source approval; 63 portable Rust tests, 23 frontend tests, 16 CLI requests and 8 browser scenarios; staging merge 0cc50c7 |
The accepted accounting total after transcript review was 2.3.7. Its release-identity synchronization was included in those two accepted units, not an additional change. The transcript domain foundation is included once in the connected feature; it was not counted separately. Hosted CI jobs did not start because of account payment/spending restrictions; each staging integration records a bounded local evidence waiver. These are not hosted CI passes or distribution approval.
The Windows MTA experiment in draft PR #12 did not resolve physical capture and is excluded from staging and this census. Windows Audio hangs, physical capture, combined Windows validation, packaged operation and installed upgrade remain qualification work. No counter is earned by a failed experiment or by later qualification alone.
Accepted connected-library candidate
| Cumulative total | Category | Accepted change | Evidence and status |
|---|---|---|---|
| 2.4.7 | Minor | Connected local recording notes/kind, bounded evidence search and shared desktop/CLI controls | PR #16 product source fd31ed18 and fixture repair 1c7a213b independently approved; 72 Windows Rust tests, native build, CLI stdio and 20 live library requests pass; lead and independent reviewer concur on staging-only billing-CI exception |
The manifests, lockfiles and accepted accounting total describe the 2.4.7
candidate. Source and software acceptance is recorded in
docs/delivery/library-native-2.4.7.md; the final documentation-only head still
requires independent approval before its staging merge. Keep Major 2 and Patch 7;
this is one coherent Minor, not separate counts for notes, kinds, filters, CLI
commands, pre-acceptance repair iterations, test path portability, synchronization
or the merge. No release, installed upgrade or physical-capture qualification is
claimed. Failed MTA work remains excluded.
Passing later tests for excluded legacy capabilities creates no additional counter by itself. Promotion merges do not increment counters. The historical 0.1.0 artifacts and their exact hashes remain recorded separately.
Reference convention: sibling a sibling product/VERSIONS.md and
a sibling product/docs/delivery/pondo-baseline-audit-2026-08-15.md, read 2026-10-31.
Those establish the counting rule; their product counters do not carry into Cassette.