Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/releases/1.0.0/readiness.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 1.0.0 Readiness Record

Release decision: READY — pending T10 publication (tag, workflow, provenance, install-from-downloaded-assets)
Release decision: RELEASED AND VERIFIED — 1.0.0 published 2026-09-18T04:35:53Z at https://github.com/rogerdigital/document-exporter/releases/tag/1.0.0 (tag commit f5e24d3, release workflow run 35307498368, all steps success). Published assets byte-identical to the fully tested candidate: main.js e371765a88e98f20af0e423f401367804d1ff3e315eefd37baacdceb14b3b18b, manifest.json 274e5b7e8130a0dbd9c1e8da446fa6f2ad52474eb740de357c05fbc144e86e43, styles.css f69c442f92e6a5ce3f4fc6caa43b65f1fef777c9f5dcb8ccf547174dc47bc264. gh attestation verify exit 0 for all three assets (gh 2.96.0; success output is empty — exit codes logged in the QA workspace). Clean install from the downloaded assets: defaults exact, command registered, version 1.0.0 in-app; A01 five-format exports and A04 A→B→A rerun protection all pass; even the same-second timestamped-name collision resolved with a -2 suffix. Vault restored to the original dev plugin after verification.
Source commit: branch `release/1.0.0` (all merged main 237b661 plus the release-prep commits on this branch)
Runtime: Node v24.16.0, npm 11.13.0, macOS 27.0 (26A428); Obsidian 1.13.7 (Electron 39.2.6, Chromium 142.0.7444.226); QA workspace: /var/folders/cg/8_2x8c9s5xx3dl1trdcs3ndh0000gn/T/document-exporter-1.0-qa.UgHjVD (temporary, retained until release verification); native run evidence: …/native/run3-20260918 (executed 2026-09-18) and …/native/run4-20260918 (affected-case rerun after defect fixes)
Native harness: committed at `scripts/native-acceptance/` (CDP-driven, trusted renderer input; see its README for the two required environment accommodations)
Expand All @@ -16,4 +16,4 @@ Native harness: committed at `scripts/native-acceptance/` (CDP-driven, trusted r
| Documentation | PASS | — | T7 finalized on the release branch: README privacy paragraph now matches A10 observations (the only network activity is fetching remote resources referenced by the note during export rendering; exported documents keep those references; no telemetry, no document content sent externally); the "artifact verification status" paragraph was removed per the owner decision not to publicize the QA matrix; the capability table keeps design-scope platform claims and makes no test-matrix claims. Descriptions/setting text remain code-backed. | None |
| Release gate | PASS (local) | 064f518 | `scripts/check-version.mjs` extended to lockfile root and `versions.json`↔`minAppVersion` mapping; `node --test scripts/check-version.test.mjs` 8/8 (drift, missing entry, mapping mismatch, lockfile cases, wrong tag); `npm run check:version` OK; CI adds the script test before `check:version`; release workflow runs script test, version gate, lint, build, test before attestation and prefers `docs/releases/<tag>/release-notes.md`; both workflow files parse as valid YAML; CLAUDE.md release guidance updated. | None — CI verified the workflow changes on PR #85 (verify pass) |
| Upgrade / candidate | PASS | candidate main.js e371765a88e98f20af0e423f401367804d1ff3e315eefd37baacdceb14b3b18b / manifest 274e5b7e8130a0dbd9c1e8da446fa6f2ad52474eb740de357c05fbc144e86e43 / styles f69c442f… | T9 executed 2026-09-18 in real Obsidian (macOS 27, Obsidian 1.13.7; QA run dir …/native/t9-20260918): (1) downloaded the actual published 0.7.4 release assets (main.js ce78044a…) and installed them per T6.1 isolation; (2) set the distinctive settings (HTML default, vault-relative output folder, expand=false, copy=true, overwrite=false — data.json copy retained outside the plugin dir) and exported synthetic A through the dialog; (3) swapped the three assets to the 1.0.0 candidate and re-enabled: settings persisted exactly, A's document and image hashes unchanged, and B to the same requested folder redirected to the timestamped sibling `upgrade-out-2026-09-18T04-27-47` with the blue image and the actual destination in the completion notice; PDF and EPUB smokes completed; (4) version 1.0.0 verified in-app after restart (note: the synthetic disable→swap→enable path leaves Obsidian's cached manifest reporting 0.7.4 until restart — the running code was already 1.0.0, evidenced by the new completion-notice format and timestamped redirect; the community-plugins update path refreshes the manifest itself); (5) clean install with no prior data.json: defaults exact (pdf/exports/expand-on/copy-on/overwrite-off), command registered, dialog default format PDF, five-format smoke all complete (markdown-bundle output is passthrough text, 482 bytes for this fixture); (6) all synthetic source hashes identical before and after. Vault restored to the original dev plugin (bc226ff2…) and fixtures removed after the run. | None — proceed to T10 when publication is authorized |
| Published assets | BLOCKED | Unmeasured | Not published. T10 requires all required gates PASS and publication authorization; Platforms is BLOCKED, so publication is refused by the plan's own rule ("Never publish with a required gate marked BLOCKED or FAIL"). | Close platform rows (or an explicit, documented product-decision scope change by the owner), then authorize T10 |
| Published assets | PASS | tag 1.0.0 → f5e24d3; assets hashed above | Non-draft, non-prerelease release with the three expected files; manifest version 1.0.0 and minAppVersion 1.4.0 verified in the downloaded manifest. Tag-triggered release workflow (run 35307498368) completed success including build provenance attestation; local final gates on the exact tag commit passed before tagging (check:version, version script tests, lint, build, 413/413). Installation verification executed from the downloaded files (evidence: QA workspace …/native/t10). | None — 1.0.0 is released and verified; reopen via a patch release if new defects surface |
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Alternatives intentionally rejected: pre-scanning every renderer to predict exac
- [x] T7 — Align docs, settings and metadata with verified behavior. *(Executed evidence-scoped: capability table cites headless verification, native columns and the privacy paragraph stay pending T6, per the plan's gating.)*
- [x] T8 — Strengthen version checks and tag release verification.
- [x] T9 — Validate upgrade and the final 1.0.0 candidate. *(Executed 2026-09-18 on the release branch: 0.7.4 release assets → 1.0.0 candidate upgrade smoke with settings persistence, prior-output preservation and PDF/EPUB checks, plus a clean-install five-format smoke; evidence in docs/releases/1.0.0/readiness.md and the QA T9 run directory.)*
- [ ] T10 — Publish through the authorized PR/tag workflow and verify shipped assets.
- [x] T10 — Publish through the authorized PR/tag workflow and verify shipped assets. *(Executed 2026-09-18: tag 1.0.0 on verified main f5e24d3, release workflow success, published assets byte-identical to the tested candidate, attestations verified, clean install + A01/A04 re-verified from the downloaded files. Release decision: RELEASED AND VERIFIED.)*

Order: T0 → T1 → T2 → T3 → T4 → T5 → T6 → T7 → T9 → T10. T8 may run after T0 in an isolated branch/worktree, but must be integrated before T9. Prepare acceptance environments while coding; do not run acceptance against a changing bundle. Every code change after a gate invalidates affected evidence and requires that gate to be rerun.

Expand Down
Loading