Milestone 11 — Printer settings completeness & dialog binding (#183, #180, #181, #186) #199

Open
gronod wants to merge 11 commits from milestone/m11-print-settings into develop
Owner

This PR is opened for CI only — merge is DEFERRED to a later session pending the Actions run and the hardware gate (R6/R12). Do not merge.

Issue completion matrix

Issue Summary Feature PR Merge tip
#183 Stage 2 paper-size + quality selection: CUPS caps parse, LpArgs emit, picker UI #193 51c3073
#180 Epson EPIJ_Qual seven-option quality enumeration with driver order + PPD labels #194 c9b423b
#181 Canon PPD locale precedence (unqualified > en_US > en > first-qualified), UTF-8-first/Latin-1-fallback decode, <XX> hex escapes #195 1767792
#186 NSPrintPanel bound to selected queue with paper/quality/media/orientation preselected + capture-return #196 6adbf99

Integration commits on this head

  • Phase 6.0 docs hygiene — PR #197 (docs/21 a11y-id roster: paperSizeGroup, printerPaperSizeSelect, qualityGroup, printerQualitySelect)
  • Phase 6 develop sync — PR #198 (merged origin/develop@62a45d9 in via chore/m11-sync-develop, tree-empty, no rebase)

Gate evidence

Full host-arch gate on this exact head SHA 19f619ad98fc8a5c18481517388e29e4033326fc (x86_64):

  • ICCeryCoreTests: 483 passed / 0 failed
  • ICCeryUITests: 67 passed / 0 failed — real ICCeryUITests.xctest pass summary, no UI-skip warning
  • Log: build/m11-sync-gate.log

Phase 5 milestone gate at 6adbf99 (pre-sync, same tree): Core 483/0, UI 67/0.

Deferred

  • Hardware gate (real Epson EPIJ_Qual enumeration, real Canon Pro9500 media labels, driver-PDE preselect acceptance via capture echo, lp argv) — milestone exit gate, not a PR blocker.
  • Milestone 34 remains open.

Refs #183
Refs #180
Refs #181
Refs #186

**This PR is opened for CI only — merge is DEFERRED to a later session pending the Actions run and the hardware gate (R6/R12). Do not merge.** ## Issue completion matrix | Issue | Summary | Feature PR | Merge tip | |---|---|---|---| | #183 | Stage 2 paper-size + quality selection: CUPS caps parse, `LpArgs` emit, picker UI | #193 | `51c3073` | | #180 | Epson `EPIJ_Qual` seven-option quality enumeration with driver order + PPD labels | #194 | `c9b423b` | | #181 | Canon PPD locale precedence (unqualified > en_US > en > first-qualified), UTF-8-first/Latin-1-fallback decode, `<XX>` hex escapes | #195 | `1767792` | | #186 | NSPrintPanel bound to selected queue with paper/quality/media/orientation preselected + capture-return | #196 | `6adbf99` | ## Integration commits on this head - Phase 6.0 docs hygiene — PR #197 (`docs/21` a11y-id roster: `paperSizeGroup`, `printerPaperSizeSelect`, `qualityGroup`, `printerQualitySelect`) - Phase 6 develop sync — PR #198 (merged `origin/develop@62a45d9` in via `chore/m11-sync-develop`, tree-empty, no rebase) ## Gate evidence Full host-arch gate on this exact head SHA `19f619ad98fc8a5c18481517388e29e4033326fc` (x86_64): - ICCeryCoreTests: **483 passed / 0 failed** - ICCeryUITests: **67 passed / 0 failed** — real `ICCeryUITests.xctest` pass summary, no UI-skip warning - Log: `build/m11-sync-gate.log` Phase 5 milestone gate at `6adbf99` (pre-sync, same tree): Core 483/0, UI 67/0. ## Deferred - Hardware gate (real Epson `EPIJ_Qual` enumeration, real Canon Pro9500 media labels, driver-PDE preselect acceptance via capture echo, `lp` argv) — milestone exit gate, not a PR blocker. - Milestone 34 remains open. Refs #183 Refs #180 Refs #181 Refs #186
gronod added 11 commits 2026-09-15 22:26:05 +01:00
feat(print): Stage 2 paper size + quality selection (#183)
macOS CI / build-and-test (push) Skipped
37d1f7eb24
Devin-AI: Devin <devin@cognition.ai>
Co-authored-by: Devin <devin@cognition.ai>
fix(print): enumerate all EPIJ_Qual quality options (#180)
macOS CI / build-and-test (push) Skipped
79209eb911
The Phase 1 (#183) quality plumbing already covers detection,
extraction, capture, and lp emission — this change proves the Epson
path end-to-end with recorded fixtures.

- CupsParserTests: replace the synthetic cupsPrintQuality listing with
  the recorded XP-55 line (301 302 *303 308 304 305 307 — driver order,
  308 between 303 and 304); assert all seven ids enumerate unsorted,
  the * default is 303, all seven PPD labels resolve, and EPIJ_Qual
  wins detection over OutputMode/Resolution (R11).
- CupsOptionsFilterTests: captured EPIJ_Qual + canonical quality keys
  survive the filter (roster verified complete post-#183 — no source
  change needed; EPIJ_Quality kept as harmless alias, R16).
- LpArgsTests: explicit quality 305 emits -o EPIJ_Qual=305.
- PrintSessionViewModelTests + UI lpoptions fixture: recorded
  seven-choice line feeds the picker; Stage 2 picker lists all seven
  entries in driver order (new UI test).

Devin-AI: Devin <devin@cognition.ai>
Co-authored-by: Devin <devin@cognition.ai>
Refs #181

Co-Authored-By: Devin <devin@cognition.ai>
Refs #186

Co-Authored-By: Devin <devin@cognition.ai>
docs(ui): add M11 printer settings a11y ids to stage-2 roster
macOS CI / build-and-test (push) Skipped
d228594bd3
Refs #183
Merge branch 'develop' into chore/m11-sync-develop
macOS CI / build-and-test (push) Skipped
macOS CI / package (pull_request) Blocked by required conditions
macOS CI / build-and-test (pull_request) In progress
19f619ad98
Some checks are pending
macOS CI / build-and-test (push) Skipped
macOS CI / package (pull_request) Blocked by required conditions
macOS CI / build-and-test (pull_request) In progress
You are not authorized to merge this pull request.
This pull request can be merged automatically.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin milestone/m11-print-settings:milestone/m11-print-settings
git checkout milestone/m11-print-settings
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#199