[Enhancement/Medium] Merge develop into main #221

Merged
gronod merged 6 commits from develop into main 2026-09-22 20:23:53 +01:00
Owner

Summary

Merge develop into main to deliver the current v2.0.x work, including milestone M13 (print ticket persistence & paper source) and preceding milestones.

High-level contents

  • M13 — print ticket persistence & paper source (#217, #218)
  • M12 — native NSPrintOperation target spool (#201/#202)
  • M11 — printer settings completeness & dialog binding (#183, #180, #181, #186)
  • M10 — studio workflow (media library, gamut compare, spot-read, projects)
  • Earlier milestones for wizard refactor, measurement, profile/verification, gamut, release tooling.

Verification

  • ICCeryCoreTests verified green on the macOS 12.7.6 x86_64 CI runner during M13 development (557 tests, 0 failures).
  • Full CI will run on this PR via .gitea/workflows/macos.yml.

Branching

main ← develop

## Summary Merge `develop` into `main` to deliver the current v2.0.x work, including milestone M13 (print ticket persistence & paper source) and preceding milestones. ## High-level contents - M13 — print ticket persistence & paper source (#217, #218) - M12 — native `NSPrintOperation` target spool (#201/#202) - M11 — printer settings completeness & dialog binding (#183, #180, #181, #186) - M10 — studio workflow (media library, gamut compare, spot-read, projects) - Earlier milestones for wizard refactor, measurement, profile/verification, gamut, release tooling. ## Verification - `ICCeryCoreTests` verified green on the macOS 12.7.6 x86_64 CI runner during M13 development (557 tests, 0 failures). - Full CI will run on this PR via `.gitea/workflows/macos.yml`. ## Branching `main` ← `develop`
gronod added the Kind/Enhancement
Priority
Medium
3
Project/ICCery-v2Feature/DevOps
labels 2026-09-22 19:37:25 +01:00
gronod added 5 commits 2026-09-22 19:37:27 +01:00
The bound NSPrintPanel always opened on queue driver defaults —
capturedTickets[queue] was stored but never passed back, so every
vendor-PDE setting outside the four mirrored fields was discarded
on reopen (RC1), and pre-selection writes were never validated into
the ticket before runModal (RC2).

Extract the pre-modal configuration into a testable
configureBoundPanel seam with the spooler's S4→S7 order: ticket
restore (warn-only, unlike the spooler's fatal try — a stale ticket
must not keep the dialog from opening → Stage 2 selections (D6
parity) → PMSessionValidatePrintSettings + updateFromPMPrintSettings
→ applyPaper → suppression ②–⑤.

ICCERY_DEBUG_PANEL_DUMP=1 logs the raw PMPrintSettingsToOptions
output and serialised ticket sizes pre/post modal for the XP-55
RC3 verification.

Refs #217
EOF
)
Merge pull request '[Bug/High] Restore captured PrintTicket when reopening the printer properties dialog' (#219) from feat/217-panel-ticket-restore into milestone/m13-print-ticket
macOS CI / build-and-test (push) Skipped
macOS CI / package (pull_request) Canceled after 0s
macOS CI / build-and-test (pull_request) Canceled after 1m25s
bd14f30a05
Reviewed-on: #219
- Detect vendor tray keys in CupsParsers with InputSlot/MediaSource/EPIJ_FdSo/EPIJ_PSrc/CNIJMediaSupply roster; EPIJ_FdSo wins over EPIJ_PSrc.
- PrinterTray now carries raw token + display name; PrinterCapabilities exposes trayKey, trayDefault and tray-specific quality maps.
- CupsService enumerates trays from the detected key, enriches labels from PPD, seeds selection from CUPS default, and precomputes per-tray media→quality constraints.
- MediaQualityConstraints resolves quality availability from both selected media and selected tray, falling back to the media-only map.
- TicketWriteResolver emits the selected tray key=token in the locked write order between PageSize and media key.
- PrintPanelService applies the Stage 2 tray token to PMPrintSettings on open and captures the tray back from the full roster plus AP_D_InputSlot.
- PrintSessionViewModel keeps selectedTrayToken, applies capture-back, preserves unknown captured tokens as synthetic trays, and passes tray into spool overrides.
- Stage2View replaces portrait/landscape buttons with an orientation dropdown (printerOrientationSelect) while preserving portrait/landscape semantics and orientation-requested=3|4.
- Add/update core, UI and fixture tests for tray detection, enumeration, PPD labels, defaults, unknown-token synthesis, panel capture, ticket write order and tray-aware quality clamping.
- Update docs/10-print-system.md, docs/11-print-macos.md, docs/21-ui-reference.md and docs/24-issues-invariants.md.

Verified on the macOS 12.7.6 x86_64 CI runner: xcodebuild build-for-testing and ICCeryCoreTests pass (557 tests, 0 failures).
Merge branch 'milestone/m13-print-ticket' of https://git.i3omb.com/gronod/iccery-v2-mac into milestone/m13-print-ticket
macOS CI / package (pull_request) Canceled after 0s
macOS CI / build-and-test (pull_request) Canceled after 14m9s
macOS CI / package (push) Canceled after 0s
macOS CI / build-and-test (push) Canceled after 1m48s
7fc38aabbb
gronod scheduled this pull request to auto merge when all checks succeed 2026-09-22 19:39:25 +01:00
gronod scheduled this pull request to auto merge when all checks succeed 2026-09-22 19:39:43 +01:00
gronod added 1 commit 2026-09-22 19:40:51 +01:00
chore: bump MARKETING_VERSION to 2.0.4
macOS CI / build-and-test (push) Successful in 43m3s
macOS CI / package (push) Successful in 3m25s
efeefb8cea
Bumps the project version ahead of the develop→main merge so the
upcoming release tag can match project.yml.
gronod merged commit efeefb8cea into main 2026-09-22 20:23:53 +01:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gronod/iccery-v2-mac#221