Dead UI, duplicated colour types, shared argv / save-panel helpers #86
Notifications
Due Date
No due date set.
Depends on
#79 Extract ArgyllRunner streaming loop (`runStreamingTool`) and collapse tool-failed errors
gronod/iccery-v2-mac
#82 Map `ProfilingPreset` ↔ targen / printtarg / colprof configs in one place
gronod/iccery-v2-mac
Reference: gronod/iccery-v2-mac#86
Reference in New Issue
Block a user
Summary
Residual duplication after the larger extracts:
StagePlaceholderViewis M1 leftover (@unknown defaultonly).CIEXYZ/CIELab(ChartreadRow.swift) duplicateXYZColor/LabColor(LabColor.swift).trimmingCharacters+ empty checks (ColprofArgs,TargenArgs,PrinttargArgs,PrintcalArgs).FileDialogServicesave panels repeat NSSavePanel setup despite a privateopen(...)helper.Spec refs
docs/04/AGENTS.md: do not invent a generic flag table that ignores per-tool-d/-u/-rmeanings.#172profile picker must not accept.ti*.LabColorMath,ColorDifferenceScope
In
Delete
Sources/ICCery/StagePlaceholderView.swift.WizardStageContent@unknown defaultshould route toStage1View(or an assertion-only empty view in DEBUG). Every currentWizardStagealready has a real screen.Colour types:
CIEXYZ/CIELabas the Codable unkeyed JSON shapes used byROW_COLORS_JSON, and makeXYZColor/LabColortypealiases or wrappers withinit(_ cie:)used byLabColorMath.ColorDifference/ swatch conversion call sites.XYZ,Lab) or unkeyed encode format.Tiny
ArgsBuilderin Core (internal or public as needed):Use it inside existing
*Args.buildmethods. Each tool keeps its own enum and validation errors.FileDialogService: privatesave(named:extensions:message:startingAt:)used by target save, CSV save, preset export. Dedicated public methods remain (no generic public picker — #103/#210/#211).Docs touch: add M7 to
BUILD-PLAN.mdmilestone table (CI/mock gate = unit+UI tests listed on these tickets; hardware gate = N/A). Do not rewrite chapters 12–14 (Windows/Linux/TargetPrint spec snapshots stay archival).Out
TargenArgswithCalibrationTargenArgs(different-f/ wedge contract). Share-v -d -e -lonly viaArgsBuilder, not a shared config.docs/12–14.Full solution
CalibrationTargenArgsmay useArgsBuilderbut keepsinvalidSteps11...51 and-f 0.LabColorMath.xyzToLabcan takeCIEXYZwithout allocation churn in the swatch grid.Rewrite invariants
TargenTests,PrinttargTests,ColprofArgsTests,PrintcalArgsTests,LpArgsTests).Dependencies
Blocks-on: ArgyllRunner extract (avoid a 800-line merge war in
ArgyllRunner.swift/ argv call sites) and preset mapping (config inits should land before optional-flag cosmetics in the same files).Unblocks: none.
Test
StagePlaceholderView(none expected).Tests/ICCeryCoreTests/MeasurementTests.swift+ color-difference tests: still classify good/warn/fail after the type merge.*ArgsTests.swiftgoldens byte-identical.FileHelpersTests/ dialog tests if they exist; UI tests that open save panels viaUITestHooksshould be unchanged (hooks bypass panels).Gamut*tests untouched unless they imported Lab aliases.Acceptance criteria
StagePlaceholderViewgone.BUILD-PLAN.mdlists M7 + these issue numbers.Implementation originally landed in stacked commit
d4261bavia PR #87.Completion/verification landed in PR #101 at
da602e2.Acceptance evidence:
[x] Adopted ArgsBuilder helpers across TargenArgs, PrinttargArgs, and PrintcalArgs.
[x] Argv golden outputs asserted byte-for-byte identical with exact flag ordering.
[x] Verified colour types wire-format serialisation as unkeyed arrays with XYZ and Lab keys.
[x] Direct helper coverage added in ArgsBuilderTests.
Verification at milestone/m8-consolidation
891a504ee7:targeted suites: passed (64 tests)
full universal ICCeryCoreTests: 339 passed, 0 failed
full ICCeryUITests: 29 passed, 0 failed
Closing manually after code and tests are present on the milestone branch.