2025-09-30 - 2026-09-30
Overview
7 Releases published by 1 user
Published
v2.0.4-prerelease-docs27
v2.0.4-prerelease-docs27
Published
v2.0.4
v2.0.4
Published
v2.0.3
v2.0.3
Published
v2.0.3-prerelease
v2.0.3-prerelease
Published
v2.0.2
v2.0.2
Published
v2.0.1
V2.0.1
Published
v2.0.0
v2.0.0
123 Pull requests merged by 1 user
Merged
#221 [Enhancement/Medium] Merge develop into main
Merged
#220 [Feature/Medium] M13 — Print ticket persistence & paper source
Merged
#219 [Bug/High] Restore captured PrintTicket when reopening the printer properties dialog
Merged
#210 v2.0.0.2 - M12 Native Print Spool
Merged
#216 test(print): scroll stage-2 via synthesized scroll wheel (#215)
Merged
#213 [Bug/Critical] Print output mirrored + bottom-anchored target canvas (#211)
Merged
#212 test(print): flip canvas coordinate space to bottom-up for NSPrintOperation compatibility
Merged
#209 M12: native NSPrintOperation target spool (#201, #202)
Merged
#208 docs(print): native spool documentation update + issue #201 analysis (#201 Phase 6)
Merged
#207 feat(print): AirPrint queue detection + Stage 2 warning badge (#202 Phase 5)
Merged
#206 feat(print): native NSPrintOperation spooler, eradicate lp (#201 Phase 4)
Merged
#205 feat(print): 1:1 TIFF raster loader and headless page canvas (#201 Phase 3)
Merged
#204 feat(print): capture native print ticket on panel OK (#201 Phase 2)
Merged
#203 refactor(print): extract PMTicketBridge from PrintPanelService (#201 Phase 1)
Merged
#200 Release 2.0.1 — develop into main
Merged
#199 Milestone 11 — Printer settings completeness & dialog binding (#183, #180, #181, #186)
Merged
#198 chore(m11): sync develop into milestone (no rebase)
Merged
#197 docs(ui): M11 stage-2 a11y id roster update
Merged
#196 fix(print): bind selected printer and settings in NSPrintPanel (#186)
Merged
#195 fix(print): deterministic PPD locale precedence for media labels (#181)
Merged
#194 fix(print): enumerate all EPIJ_Qual quality options (#180)
Merged
#193 feat(print): Stage 2 paper size + quality selection (#183)
Merged
#192 Milestone/m11 print settings
Merged
#191 docs(m11): record printer-settings milestone tracking
Merged
#190 feat(#189): release-driven versioning — tag-stamped About + monotonic build
Merged
#168 Official release onto main
Merged
#179 fix: UI test helpers for nested license window sheet
Merged
#178 Feat/31 license attribution
Merged
#177 test(m4): retry Start Read until chartread is actually running
Merged
#176 test(m2): mock CUPS so Print All enables on GitHub macos-14
Merged
#175 fix(ci): pin GitHub Actions to macos-14 and clamp the window on-screen
Merged
#174 ci: GitHub Actions twin of the Gitea macOS workflow
Merged
#173 test(m4): wait for Start Read enabled before chartread (CI 35251/35293)
Merged
#171 fix(ui): media Apply missing-printer notice visible in manage sheet (#170)
Merged
#169 docs: sync README with shipping app and user wiki
Merged
#167 fix(packaging): DMG background visible on Sonoma+ (#95)
Merged
#166 fix(ui): settings sheet — ΔE clip + duplicated numeric-field labels (#165)
Merged
#164 fix(ui): calibrate dashboard no longer overflows window; Escape exits (#163)
Merged
#162 ci(macos): skip tests on tags containing "prerelease"
Merged
#156 Milestone 10 — Studio workflow (#146–#149)
Merged
#161 fix(gamut): Close button; skip SCNView without Metal (#147)
Merged
#160 fix(gamut): don't disable layer toggles when SceneKit is unavailable (#147)
Merged
#159 test(m10): combine gamut layer toggle AX; harden gallery wait on macOS 12
Merged
#158 test(m10): wait for gamut layer enable; drive New via File menu on macOS 12
Merged
#157 fix(ui): split ViewBuilders for Swift 5.7 ten-child limit (#146)
Merged
#155 docs(m10): defaultInstrument seeds Spot Read; README floor is macOS 12
Merged
#154 feat(project): .icceryproj index over basename and cwd + recipe + last ΔE (#149)
Merged
#153 feat(gamut): second-profile compare and click-inspect (#147)
Merged
#152 feat(spotread): spot-read console for live Lab (#148)
Merged
#151 feat(media): media recipe library bound to presets (#146)
Merged
#150 docs(m10): record studio-workflow milestone tracking
Merged
#145 Milestone/m9 monterey
Merged
#144 test(m9): collapse ArgyllRunner waits under ICCERY_UI_TESTING
Merged
#143 test(m9): replace full-timeout negative waits with dwell assertion
Merged
#142 ci(m9): skip probe test in full UI suite leg
Merged
#138 test(m9): query presetSelect as PopUpButton to avoid duplicate match (#137)
Merged
#136 test(m9): drive scroller + state-driven triggers in UI suite (#135)
Merged
#134 test(m9): fall back to coordinate click for per-page print button (#132)
Merged
#133 test(m9): scroll stage-2 explicitly before per-page print click (#132)
Merged
#131 fix(m9): revert sidebar container a11y id; measure presetSelect frame (#130)
Merged
#129 test(m9): dump a11y hierarchy to log on UI probe failure (#128)
Merged
#127 ci(m9): upload UI-test xcresult on failure for a11y triage (#126)
Merged
#124 ci(m9): accept Xcode >= 14 in toolchain assert (#123)
Merged
#125 fix(m9): stable 'sidebar' a11y identifier for AboutHelp UI test (#122)
Merged
#121 fix(m9): Debug entitlements disable library validation for test host (#119)
Merged
#120 fix(m9): ad-hoc sign embedded ICCeryCore framework so test host launches (#119)
Merged
#118 fix(m9): link ICCeryCore statically so the app launches standalone (#117)
Merged
#116 test(m9): replace MainActor.assertIsolated for Swift 5.7 (#115)
Merged
#114 fix(m9): clear printTask without defer for Swift 5.7 (#113)
Merged
#112 fix(m9): keep Stage4View under Swift 5.7 ViewBuilder 10-child limit (#111)
Merged
#110 fix(m9): pin prebuilt xcodegen for macOS 12 CI (#109)
Merged
#108 feat(m9): state management and view demotions for macOS 12 (Slice 4)
Merged
#107 test(m9): complete migration of stateful and async suites to XCTest (Slice 3)
Merged
#106 test(m9): convert pure core suites to XCTest (Slice 2)
Merged
#105 chore(m9): toolchain, CI config, and core syntax demotion (Slice 1)
Merged
#104 Milestone 8 — UAT-ready hardening and consolidation (#79–#86)
Merged
#103 refactor(ui): complete logged-run and Notice consolidation (#80)
Merged
#102 test(runner): complete shared streaming loop contracts (#79)
Merged
#101 refactor(args): finish shared option helpers (#86)
Merged
#100 test(process): complete ProcessManager edge contracts (#84)
Merged
#99 fix(profile): complete calibration identity and profile resolution (#83)
Merged
#98 fix(presets): complete config mapping contracts (#82)
Merged
#97 fix(persistence): complete M8 JSON store contracts (#81)
Merged
#96 Milestone/m7 grok
Merged
#87 #79 Extract ArgyllRunner streaming loop onto milestone/M7-grok
Merged
#78 Apply v1 ICCery app icon, About icon, and DMG scene
Merged
#76 Fix/m7 ci uitest runner sign
Merged
#75 fix(uitest): resolve AboutHelp close button lookup on runner
Merged
#74 refactor: extract launchApp helper in AboutHelpUITests
Merged
#73 Fix/m7 ci uitest runner sign
Merged
#72 ci: do not manually re-sign UI test runner; keep app re-sign with entitlements
Merged
#68 Update .gitea/workflows/macos.yml
Merged
#67 fix: harden process termination and retain print task
Merged
#66 Milestone 6 — Gamut, Stage 0, CGATS, UI chrome & packaging (#28–#32)
Merged
#65 feat(#32): Packaging, signing, and CI
Merged
#64 feat(#29): Stage 0 printer calibration
Merged
#63 Milestone/m6 gamut stage0 cgats release
Merged
#62 feat(#28): SceneKit gamut viewer
Merged
#60 Milestone/m6 gamut stage0 cgats release
Merged
#59 Milestone/m6 gamut stage0 cgats release
Merged
#58 Milestone/m6 gamut stage0 cgats release
Merged
#55 feat/31-about-help-chrome
Merged
#57 Milestone/m6 gamut stage0 cgats release
Merged
#56 feat/30-cgats-interop
Merged
#54 Milestone 5 — Profile generation, verification & installation plus M5 bugfixes (#23–#27, #50, #52)
Merged
#53 M5 bugfixes — Stage 3 prompt stream, ProcessManager, profile/verification fixes (#50, #52)
Merged
#51 Milestone 5 — Profile generation, verification & installation (#23–#27)
Merged
#48 M3 — Unmanaged printing
Merged
#47 Stage 2 live print panel — unmanaged spool UI (#17)
Merged
#46 lp spool path — unmanaged raster jobs (#15)
Merged
#45 ColorSync suppression engine — six layers (#14)
Merged
#44 Native NSPrintPanel bound to selected queue (#13)
Merged
#43 Milestone/m2 targets
Merged
#42 Printer enumeration & capabilities (#12)
Merged
#41 M2 — Target generation & layout: targen, printtarg, resume, gallery, presets (#7–#11)
Merged
#40 M1 — Foundation & process core
Merged
#39 Wizard state machine & artefact gating (#4)
Merged
#38 Settings store, logging & settings dialog (#5)
Merged
#37 File dialogs — dedicated pickers + host helpers (#6, part 2)
Merged
#36 File dialogs & artefact helpers (#6)
Merged
#35 Argyll sidecar fetch & binary resolution (#3)
Merged
#34 ProcessManager: spawn / stdin / kill / captured / event bus (#2)
Merged
#33 App scaffold & wizard shell (#1)
79 Issues closed from 1 user
Closed
#214 [Bug/High] Stage 2 quality picker offers qualities invalid for selected media type
Closed
#217 [Bug/High] Printer properties dialog reopens on driver defaults — captured ticket never restored, pre-selections unvalidated
Closed
#218 [Feature/Medium] Stage 2: paper source selection — enumerate vendor tray keys and wire through ticket, panel, and spool
Closed
#215 [Testing/Medium] testPerPagePrint: stage-2 scroll uses inert finger drags — use scroll gesture
Closed
#211 Bug: Since M12 print output is mirrored
Closed
#201 [Bug/Critical] Printer quality and media type settings ignored when printing target — lp path missing PMPrintSettings ticket
Closed
#202 [Feature/Backend] AirPrint queue detection and Stage 2 unmanaged-colour warning
Closed
#186 [Bug/High] Printer properties dialog doesn't apply selected printer and settings from ICCery
Closed
#181 [Bug/Medium] Canon printer media types display Thai characters instead of English labels
Closed
#180 [Bug/Critical] Epson printer quality options limited to default only — only "Normal" shown, 6 other options missing
Closed
#183 [Feature/Medium] Stage 2: Add paper size and print quality selection to printer details
Closed
#146 Media library: printer + paper + ink + .cal bound to a preset
Closed
#189 [Feature/Medium] Release-driven versioning: About shows release tag, monotonic build number
Closed
#170 UI test: Manage Media Apply missing printer never sees noticeText behind the sheet
Closed
#95 Release DMG Finder window has no background image
Closed
#163 fix(ui): Calibrate Printer view overflows window pushing sidebar off-screen; no Escape exit
Closed
#165 Settings sheet clips Good / Warning ΔE threshold fields past the modal edge
Closed
#149 Project file: index over basename + cwd + recipe + last ΔE
Closed
#147 Gamut compare: second profile, reference spaces, click-inspect
Closed
#148 Spot-read console: one patch Lab/XYZ from the live instrument
Closed
#141 test(m9): collapse ArgyllRunner waits under ICCERY_UI_TESTING
Closed
#140 test(m9): replace full-timeout negative waits with dwell assertion
Closed
#139 ci(m9): skip probe test in full UI suite leg
Closed
#137 AboutHelp sidebar test: 'presetSelect' matches label and pop-up
Closed
#135 UI suite: per-page print scroller + handheld trigger race on 1280x800 runner
Closed
#132 testPerPagePrint: btnPrintPage-0 not hittable — auto-scroll inert (run 32209)
Closed
#130 Sidebar a11y identifier clobbers child identifiers on SDK 13.1 (run 32201)
Closed
#128 Dump a11y hierarchy to log on UI probe failure (run 32192)
Closed
#126 Upload UI-test xcresult on failure for a11y triage (run 32148)
Closed
#123 CI pins Xcode 14.x — cannot build on macOS 14 / Xcode 16
Closed
#122 AboutHelpUITests.testHelpOverlaysDoNotChangeSidebarHeight fails on Xcode 14.2 — sidebar not an AXGroup (run 32029)
Closed
#119 Static ICCeryCore breaks hosted test bundle on Xcode 14.2; fix is Debug-only DISABLE_LIBRARY_VALIDATION
Closed
#117 App crashes at launch: ICCeryCore PackageProduct framework not embedded in .app
Closed
#115 ProcessRunSupportTests uses MainActor.assertIsolated (Swift 5.9+) on Swift 5.7 runner (run 31985)
Closed
#113 PrintSessionViewModel: defer cannot mutate @MainActor state on Swift 5.7 (run 31978)
Closed
#111 Stage4View exceeds Swift 5.7 ViewBuilder 10-child limit (run 31958)
Closed
#109 CI: brew install xcodegen fails on macOS 12 runner (run 31390)
Closed
#81 Introduce JSONFileStore and retire copy-pasted settings / wizard / history writers
Closed
#82 Map ProfilingPreset ↔ targen / printtarg / colprof configs in one place
Closed
#83 Single CalibrationIdentity and one .icc/.icm resolver
Closed
#84 ProcessManager: shared process factory and one ROW_COLORS_JSON emitter
Closed
#86 Dead UI, duplicated colour types, shared argv / save-panel helpers
Closed
#79 Extract ArgyllRunner streaming loop (runStreamingTool) and collapse tool-failed errors
Closed
#80 Unify wizard process orchestration: logged-run helper, single Notice channel, ProcessLogView
Closed
#85 Split print session (and preset sheet state) out of TargetWorkflowViewModel
Closed
#77 Apply v1 ICCery app icon and DMG scene to macOS v2
Closed
#22 XY-table flow UI
Closed
#25 Stage 5: profcheck verification
Closed
#26 Verification history & drift analytics
Closed
#27 System profile installation
Closed
#13 Native NSPrintPanel bound to selected queue
Closed
#14 ColorSync suppression engine
Closed
#15 lp spool path
Closed
#17 Stage 2 print panel UI
Closed
#18 Instrument detection (instlist)
Closed
#19 chartread session & prompt classifier
Closed
#20 Live swatch grid & ΔE₀₀
Closed
#23 Stage 4: colprof UI & argv builder
Closed
#24 Post-profile chain: applycal + iccgamut
Closed
#50 Stage 3 prompt stream never updates handheld UI (#19 blocker)
Closed
#52 Milestone 5 Bugfixes
Closed
#29 Stage 0: printer calibration (printcal / applycal)
Closed
#32 Packaging, signing & CI
Closed
#28 3D gamut viewer (SceneKit)
Closed
#31 About & help chrome
Closed
#30 CGATS dataset interop
Closed
#21 Multi-pass averaging
Closed
#7 Stage 1: targen UI & argv builder
Closed
#8 Stage 1: resume existing target
Closed
#9 Stage 2: printtarg UI & argv builder
Closed
#10 Stage 2: JSON manifest & TIFF gallery
Closed
#11 Presets engine & built-ins
Closed
#12 Printer enumeration & capabilities
Closed
#4 Wizard state machine & artefact gating
Closed
#5 Settings store, logging & settings dialog
Closed
#6 File dialogs & artefact helpers
Closed
#3 Argyll sidecar fetch & binary resolution
Closed
#2 ProcessManager: spawn / stdin / kill / captured / event bus
Closed
#1 App scaffold & wizard shell
80 Issues created by 1 user
Opened
#1 App scaffold & wizard shell
Opened
#2 ProcessManager: spawn / stdin / kill / captured / event bus
Opened
#3 Argyll sidecar fetch & binary resolution
Opened
#4 Wizard state machine & artefact gating
Opened
#5 Settings store, logging & settings dialog
Opened
#6 File dialogs & artefact helpers
Opened
#7 Stage 1: targen UI & argv builder
Opened
#8 Stage 1: resume existing target
Opened
#9 Stage 2: printtarg UI & argv builder
Opened
#10 Stage 2: JSON manifest & TIFF gallery
Opened
#11 Presets engine & built-ins
Opened
#12 Printer enumeration & capabilities
Opened
#13 Native NSPrintPanel bound to selected queue
Opened
#14 ColorSync suppression engine
Opened
#15 lp spool path
Opened
#16 Quartz print module (folded TargetPrint) [v2.1]
Opened
#17 Stage 2 print panel UI
Opened
#18 Instrument detection (instlist)
Opened
#19 chartread session & prompt classifier
Opened
#20 Live swatch grid & ΔE₀₀
Opened
#21 Multi-pass averaging
Opened
#22 XY-table flow UI
Opened
#23 Stage 4: colprof UI & argv builder
Opened
#24 Post-profile chain: applycal + iccgamut
Opened
#25 Stage 5: profcheck verification
Opened
#26 Verification history & drift analytics
Opened
#27 System profile installation
Opened
#28 3D gamut viewer (SceneKit)
Opened
#29 Stage 0: printer calibration (printcal / applycal)
Opened
#30 CGATS dataset interop
Opened
#31 About & help chrome
Opened
#32 Packaging, signing & CI
Opened
#50 Stage 3 prompt stream never updates handheld UI (#19 blocker)
Opened
#52 Milestone 5 Bugfixes
Opened
#77 Apply v1 ICCery app icon and DMG scene to macOS v2
Opened
#79 Extract ArgyllRunner streaming loop (runStreamingTool) and collapse tool-failed errors
Opened
#80 Unify wizard process orchestration: logged-run helper, single Notice channel, ProcessLogView
Opened
#81 Introduce JSONFileStore and retire copy-pasted settings / wizard / history writers
Opened
#82 Map ProfilingPreset ↔ targen / printtarg / colprof configs in one place
Opened
#83 Single CalibrationIdentity and one .icc/.icm resolver
Opened
#84 ProcessManager: shared process factory and one ROW_COLORS_JSON emitter
Opened
#85 Split print session (and preset sheet state) out of TargetWorkflowViewModel
Opened
#86 Dead UI, duplicated colour types, shared argv / save-panel helpers
Opened
#95 Release DMG Finder window has no background image
Opened
#109 CI: brew install xcodegen fails on macOS 12 runner (run 31390)
Opened
#111 Stage4View exceeds Swift 5.7 ViewBuilder 10-child limit (run 31958)
Opened
#113 PrintSessionViewModel: defer cannot mutate @MainActor state on Swift 5.7 (run 31978)
Opened
#115 ProcessRunSupportTests uses MainActor.assertIsolated (Swift 5.9+) on Swift 5.7 runner (run 31985)
Opened
#117 App crashes at launch: ICCeryCore PackageProduct framework not embedded in .app
Opened
#119 Static ICCeryCore breaks hosted test bundle on Xcode 14.2; fix is Debug-only DISABLE_LIBRARY_VALIDATION
Opened
#122 AboutHelpUITests.testHelpOverlaysDoNotChangeSidebarHeight fails on Xcode 14.2 — sidebar not an AXGroup (run 32029)
Opened
#123 CI pins Xcode 14.x — cannot build on macOS 14 / Xcode 16
Opened
#126 Upload UI-test xcresult on failure for a11y triage (run 32148)
Opened
#128 Dump a11y hierarchy to log on UI probe failure (run 32192)
Opened
#130 Sidebar a11y identifier clobbers child identifiers on SDK 13.1 (run 32201)
Opened
#132 testPerPagePrint: btnPrintPage-0 not hittable — auto-scroll inert (run 32209)
Opened
#135 UI suite: per-page print scroller + handheld trigger race on 1280x800 runner
Opened
#137 AboutHelp sidebar test: 'presetSelect' matches label and pop-up
Opened
#139 ci(m9): skip probe test in full UI suite leg
Opened
#140 test(m9): replace full-timeout negative waits with dwell assertion
Opened
#141 test(m9): collapse ArgyllRunner waits under ICCERY_UI_TESTING
Opened
#146 Media library: printer + paper + ink + .cal bound to a preset
Opened
#147 Gamut compare: second profile, reference spaces, click-inspect
Opened
#148 Spot-read console: one patch Lab/XYZ from the live instrument
Opened
#149 Project file: index over basename + cwd + recipe + last ΔE
Opened
#163 fix(ui): Calibrate Printer view overflows window pushing sidebar off-screen; no Escape exit
Opened
#165 Settings sheet clips Good / Warning ΔE threshold fields past the modal edge
Opened
#170 UI test: Manage Media Apply missing printer never sees noticeText behind the sheet
Opened
#180 [Bug/Critical] Epson printer quality options limited to default only — only "Normal" shown, 6 other options missing
Opened
#181 [Bug/Medium] Canon printer media types display Thai characters instead of English labels
Opened
#183 [Feature/Medium] Stage 2: Add paper size and print quality selection to printer details
Opened
#186 [Bug/High] Printer properties dialog doesn't apply selected printer and settings from ICCery
Opened
#189 [Feature/Medium] Release-driven versioning: About shows release tag, monotonic build number
Opened
#201 [Bug/Critical] Printer quality and media type settings ignored when printing target — lp path missing PMPrintSettings ticket
Opened
#202 [Feature/Backend] AirPrint queue detection and Stage 2 unmanaged-colour warning
Opened
#211 Bug: Since M12 print output is mirrored
Opened
#214 [Bug/High] Stage 2 quality picker offers qualities invalid for selected media type
Opened
#215 [Testing/Medium] testPerPagePrint: stage-2 scroll uses inert finger drags — use scroll gesture
Opened
#217 [Bug/High] Printer properties dialog reopens on driver defaults — captured ticket never restored, pre-selections unvalidated
Opened
#218 [Feature/Medium] Stage 2: paper source selection — enumerate vendor tray keys and wire through ticket, panel, and spool