Implement 1.0.0 export outcomes, artifact coverage and release gates (T3-T8) - #85
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Execute tasks T3-T8 of the 1.0.0 release readiness plan. Four code/test tasks are complete and verified; the native acceptance tasks (T6) and their dependents (T7 docs evidence, T9 version bump) are recorded as BLOCKED in
docs/releases/1.0.0/readiness.mdwith the exact missing capabilities — no acceptance bar was lowered.T3 — Structured outcomes (
e2c9dd3)ExportOutcomecontract:completed/partial/cancelled/failedwith completed and possibly-incomplete paths, warnings and errors.ExportRunnerfinalizes through a single path per the plan's transition rules: cancellation preserves prior diagnostics instead of replacing them, a failed required copy keeps the primary inincompletePaths, missing requested inputs stay counted in the total and are named as errors,onFileCompletereports the completed count so progress cannot imply success after a failure, and the report includes status, counts, completed/incomplete paths, warnings and errors.T4 — Accurate user feedback (
23e670a)exportResultMessagehelper replaces the boolean branch inmain.ts; completion, partial, cancelled and failure are stated distinctly with counts, output root, first diagnostic, report path and a retry hint.T5 — Reproducible artifacts (
3098745)scripts/create-release-fixtures.mjsper the acceptance protocol: 520 synthetic files with SHA-256 manifest, refuses non-empty destinations, valid PNGs.ReleaseArtifacts.test.tsruns the real pipeline over Markdown, fallback HTML, DOCX and EPUB: markers, tables, code, XML validity, relationships, spine resolution, image byte equality, noapp://, folder batch nesting/links/shared assets, collision A→B, report-name protection, and T3-conformant failure/cancellation injections. No PDF success claim.RELEASE_ARTIFACT_DIRpersistence with an exclusive-create SHA-256 index; ordinary CI writes nothing.renderHtmlDocumentnow guards style extraction onactiveDocumentso the headless fallback renders with the default stylesheet.T8 — Release gates (
064f518)check-version.mjsalso validatespackage-lock.jsonroot versions and theversions.json→minAppVersionmapping.scripts/check-version.test.mjs(Node test runner, 8 cases including wrong-tag negative).check:version; the release workflow runs script tests, version gate, lint, build and full tests before attestation/publication, and prefersdocs/releases/<tag>/release-notes.mdwhen present.Validation
npm test— 24 files, 411/411 (baseline 360 + 51 new)node --test scripts/check-version.test.mjs— 8/8;npm run check:version— consistent 0.7.4npm run lint:obsidian-warnings,npm run build— exit 0; workflow YAML parsedsips; generated DOCX/EPUB pass independentunzip -tNot included (tracked as BLOCKED)
Native artifact/platform acceptance (T6) needs an interactive session against a fixed candidate plus Java/EPUBCheck, a real DOCX/EPUB reader and non-macOS devices; T7's evidence-bound documentation and the T9 version bump follow after it. Details and next actions are in
docs/releases/1.0.0/readiness.md.