release: note packages extraction + word-builder-swift wiring + #77 bump (#71 #77 #78) - #82
Merged
Merged
Conversation
…t repos (#78) Three local path packages graduated to independent PsychQuant repos, aligning with existing convention (common-converter-swift, word-to-md-swift). Changes: - Package.swift: path: → url:, from: "0.1.0" for three note packages - Package.swift: product(package:) lowercase-hyphenated to match package identity - Package.resolved: new working copies for the three remote repos New repos (all public, v0.1.0): - https://github.com/PsychQuant/note-core-swift - https://github.com/PsychQuant/note-to-pdf-swift - https://github.com/PsychQuant/note-to-html-swift Verification: - swift build: OK (macdoc binary links from remote packages) - swift test: 26 tests passed - Smoke test: macdoc convert --to pdf reproduces expected output (same size, same Producer, #77 bug still present as expected) Unblocks #77 — logicalPageHeight fix can now commit to PsychQuant/note-core-swift. Refs #78
Pulls in: - note-core-swift v0.1.3: pageYOffset field + heuristicPageBounds - note-to-pdf-swift v0.1.2: separated xScale/yScale + fixed letter output Refs #77
Consume the new PsychQuant/word-builder-swift package shipped in #71: - Package.swift: add .package(url: word-builder-swift.git, from: 0.9.0) - Package.resolved: auto-updated by SPM; re-pinned note-to-pdf-swift back to 0.1.2 after #71-wiring caused silent downgrade to 0.1.0 (regression fix caught in #78 verify — would have reverted #77's logicalPageHeight fix) - CLAUDE.md: add Layer 4 architecture diagram entry + Sub-Repositories table row pointing at github.com/PsychQuant/word-builder-swift Also lands the Spectra change artifacts for #71: - openspec/changes/archive/2026-04-18-word-builder-swift/: full proposal + design + specs + tasks with all 46 tasks marked complete - openspec/specs/word-builder-swift/: new capability spec synced from change delta on archive (11 Requirements, 20+ WHEN/THEN scenarios) Refs #71
This was referenced Apr 18, 2026
kiki830621
added a commit
that referenced
this pull request
Jun 1, 2026
39/42 tasks complete; remaining 3 are PHASED items intentionally not shipped: - §2.2 EditError.pathNotFound early validation (PHASED — Reducer-wrap via operationLogFailure documented in spec.md as eventual contract) - §2.3 EditError.preserveViolation defensive c14n check (PHASED — same) - §5.2 Upfront atomicity pre-validation (DEFERRED — Reducer-layer atomicity via deterministic rId allocation works correctly without pre-validation; pre-validation would be a UX improvement) Spec ooxml-edit-algebra-runtime moved to openspec/specs/ (8 Requirements with SHALL/MUST + Scenarios + SBE Examples). Implementation shipped across 8 PRs over the macdoc#105 lifecycle: - macdoc PR #109 — Spectra docs (proposal+design+tasks+spec+yaml) - macdoc PR #111 — CD diagrams (8 total: 5 OOXMLEdit + 3 WordEdit) - ooxml-swift PR #72 — Phase 2c reducer critical-path (4 cases) - ooxml-swift PR #74 — multi-part scoping + opID-determinism - ooxml-swift PR #75 — FullyFaithfulFunctorTests (property-based) - ooxml-swift PR #76 — WordEdit.lower() per-case - ooxml-swift PR #77 — NaturalityTests (composition functor) - ooxml-swift PR #78 — Performance benchmark + single-part fast path - ooxml-swift PR #79 — Typed-views resync (opt-in) - ooxml-swift PR #80 — §5 insertHyperlink + wrapWithHyperlink emission - ooxml-swift PR #81 — Phase 2c hyperlink reducer (slice 1) - ooxml-swift PR #82 — Phase 2c wrapWithHyperlink reducer (slice 2) Refs #105 Refs #110 Refs PsychQuant/ooxml-swift#71
kiki830621
added a commit
that referenced
this pull request
Jul 3, 2026
…/73 -> 36/73 + che-word-mcp submodule bump - Retroactive sync: 19 tasks (2.1-2.4, 2.12, 3.1-3.14) verified complete against ooxml-swift git history (v0.31.0-v0.31.4, landed via ooxml-edit-isomorphism-foundation IDD flow refs ooxml-swift#71-#82) - Implemented this session (ooxml-swift v0.31.5): 2.5 tree-backed settings.xml serialization, 2.6 all-parts xmlTrees sweep, 2.7-2.10 preservation contract pins, 2.11 che-word-mcp 297-test gate Refs #127
kiki830621
added a commit
that referenced
this pull request
Sep 29, 2026
39/42 tasks complete; remaining 3 are PHASED items intentionally not shipped: - §2.2 EditError.pathNotFound early validation (PHASED — Reducer-wrap via operationLogFailure documented in spec.md as eventual contract) - §2.3 EditError.preserveViolation defensive c14n check (PHASED — same) - §5.2 Upfront atomicity pre-validation (DEFERRED — Reducer-layer atomicity via deterministic rId allocation works correctly without pre-validation; pre-validation would be a UX improvement) Spec ooxml-edit-algebra-runtime moved to openspec/specs/ (8 Requirements with SHALL/MUST + Scenarios + SBE Examples). Implementation shipped across 8 PRs over the macdoc#105 lifecycle: - macdoc PR #109 — Spectra docs (proposal+design+tasks+spec+yaml) - macdoc PR #111 — CD diagrams (8 total: 5 OOXMLEdit + 3 WordEdit) - ooxml-swift PR #72 — Phase 2c reducer critical-path (4 cases) - ooxml-swift PR #74 — multi-part scoping + opID-determinism - ooxml-swift PR #75 — FullyFaithfulFunctorTests (property-based) - ooxml-swift PR #76 — WordEdit.lower() per-case - ooxml-swift PR #77 — NaturalityTests (composition functor) - ooxml-swift PR #78 — Performance benchmark + single-part fast path - ooxml-swift PR #79 — Typed-views resync (opt-in) - ooxml-swift PR #80 — §5 insertHyperlink + wrapWithHyperlink emission - ooxml-swift PR #81 — Phase 2c hyperlink reducer (slice 1) - ooxml-swift PR #82 — Phase 2c wrapWithHyperlink reducer (slice 2) Refs #105 Refs #110 Refs PsychQuant/ooxml-swift#71
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.
Squashes three closed issues' macdoc-side changes into main.
Scope
565f4c2note-core-swift,note-to-pdf-swift,note-to-html-swift) to independentPsychQuant/*repos; swap macdocPackage.swiftfrompath:→url:deps60b3bb6note-core-swift→ v0.1.3 +note-to-pdf-swift→ v0.1.2 to consume the logicalPageHeight fix released independently after #7804f16cfword-builder-swift 0.9.0(new package — fluent Swift API for.docx, 1:1 mirror ofdocx.js); land Spectra archive + specs; re-pinnote-to-pdf-swiftback to 0.1.2 (regression fix from #78 verify)Release artifacts
DocxWriter.writeData(_:) throws -> Data(feat: 新增 word-builder-swift — Swift fluent API 直接寫 .docx(類 docx.js) #71 blocker)PsychQuant/*Verification
writeData)swift buildclean (6.80s) after all three commits appliednote-to-pdf-swift 0.1.2 → 0.1.0silent downgrade in Package.resolved (caused by addingword-builder-swiftdep) reversed viaswift package updateCarved-out workstreams (NOT in this PR)
ocr-backend-refactorbranch — default OCR model swap (GLM-OCR → Qwen3-VL-4B) +OCRCorebackend abstraction inSources/MacDocCLI/PageOCRRunner.swift. No issue yet; open one and resume that branch when ready.Follow-up issues filed during #78 verify
pdf-to-latex-swift+ocr-swift+ commitTests/WordToMDTestsfixtures (same gitignore-blackhole pattern as refactor: extract NoteCore / NoteToPDF as separate PsychQuant repos (packages 應該要是獨立套件) #78, applied to other paths). P1.NoteConvertTestssmoke coverage toMacDocCLITests(close the "26 tests don't exercise note-* paths" gap). P2.Closes #71, #77, #78.