Add palette organization and JSON round-trip import#11
Merged
Conversation
Artsen
marked this pull request as ready for review
July 25, 2026 22:54
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.
Summary
Internal saved-palette contract
schemaVersionchanges from 1 to 2.id, optionalname, HEX, RGB, HSL, and optional extraction metadata.Portable JSON contract
schemaVersion: 1toschemaVersion: 2and addsformat: "colorcraft-palette".Backend API effects
None. No endpoint, request, response, backend schema, port, or analysis behavior changes. Analysis and suggestion requests continue to send only HEX, RGB, and HSL.
Generated export behavior
palette-1,palette-2numeric fallback.Validation
python check.pythrough the repository Python 3.11 environment: passed all 10 stages.pnpm review:screenshots: passed; 16 deterministic screenshots generated and curated inventory updated.git diff --check: passed.Known limitation
Role assignments still reference HEX values by design. Duplicate colors with the same HEX value therefore share role associations even when their internal IDs or names differ. Pointer drag sorting and non-ColorCraft import formats remain out of scope.