Skip to content

feat(guided): choose or create saved palettes - #427

Merged
Flow-Fly merged 16 commits into
developfrom
dev-383-guided-drawing-palettes
Jul 30, 2026
Merged

feat(guided): choose or create saved palettes#427
Flow-Fly merged 16 commits into
developfrom
dev-383-guided-drawing-palettes

Conversation

@Flow-Fly

@Flow-Fly Flow-Fly commented Jul 28, 2026

Copy link
Copy Markdown
Owner

Summary

  • replace active-project palette coupling with dialog-local preset and saved-palette selection
  • add inline custom-palette creation while preserving Guided Drawing setup state
  • snapshot selected colors into the existing restricted-palette setting without schema or telemetry changes
  • make custom-palette writes explicit so failed writes are retryable and completed writes are selected locally without refresh ambiguity
  • keep existing Save As and rename failures recoverable without changing PaletteStore return contracts
  • surface custom-palette load failures in Guided Drawing while preserving the PaletteStore safe-empty compatibility path
  • enforce the shared 256-color persistence limit when creating palettes
  • adapt oversized saved palettes deterministically to the first 255 colors and explain omitted colors accessibly

Linked task issues

Verification

  • Final focused repair tests: 3 files, 18 tests
  • npx tsc --noEmit
  • npm run lint (0 errors; 5 inherited warnings)
  • npm run test:run (116 files, 728 tests)
  • npm run build (existing chunk and dynamic-import warnings only)
  • npm run fallow:audit -- --changed-since origin/develop
  • git diff --check
  • Complete diff simplification, duplication, and residue review
  • GitHub CI run 30378012738 on repair head 4e17deb
  • Interactive UI playtest: blocked because the in-app browser runtime reported No browser is available; component-flow tests cover select, create, edit, reorder, remove, save, cancel, loading/error, pending locks, size-limit enforcement, oversized adaptation, and focus behavior.

Production UI polish

  • Sibling parity: uses the shared pf-dialog chrome, Cancel-left/primary-right footer order, native form submission, and existing button emphasis.
  • Accessibility: native labels/fieldset/select groups, live status and alert regions, dialog focus trap/restore, inline name autofocus, Escape cancellation returning focus to the palette select, focused oversize-save errors, and visible statuses for persistence and guide limits.
  • Async states: Guided creation and the existing Save As dialog disable inputs/actions, show Saving…, guard duplicate submits, and block Escape/backdrop/close affordances while persistence is pending.
  • Persistence states: failed Save As and rename operations keep their dialog open with a recoverable announced error; Guided load failures preserve the prior custom selection; confirmed writes retain the existing string-ID store contract.
  • Palette limits: palette creation accepts 256 colors, disables further additions at the shared persistence limit, and defensively rejects oversized writes; Guided Drawing separately preserves order and uses the first 255 colors with an omitted-count status.
  • Responsive source review: fluid dialog width, scroll-contained shared primitive, and compact native color rows remain within the narrow layout.

This PR remains draft for exact-head validation and human playtest.

@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 9657b90e-199a-45b4-8143-1b42363b06a8

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev-383-guided-drawing-palettes

Comment @coderabbitai help to get the list of available commands.

@Flow-Fly
Flow-Fly marked this pull request as ready for review July 28, 2026 15:23

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 91cde2d282

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/dialogs/pf-paint-by-number-dialog.ts
Comment thread src/components/dialogs/pf-paint-by-number-dialog.ts Outdated
Comment thread src/components/dialogs/pf-paint-by-number-dialog.ts Outdated
@Flow-Fly
Flow-Fly marked this pull request as ready for review July 28, 2026 15:40

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1fd3795a1e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/dialogs/pf-paint-by-number-dialog.ts Outdated
Comment thread src/components/dialogs/pf-paint-by-number-dialog.ts
@Flow-Fly
Flow-Fly marked this pull request as draft July 28, 2026 15:48
@Flow-Fly
Flow-Fly marked this pull request as ready for review July 28, 2026 15:57

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3b51d4b446

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/dialogs/pf-paint-by-number-dialog.ts
@Flow-Fly
Flow-Fly marked this pull request as draft July 28, 2026 16:04
@Flow-Fly
Flow-Fly marked this pull request as ready for review July 28, 2026 16:10

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b45a5afb04

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/stores/palette/persistence.ts
Comment thread src/components/dialogs/pf-paint-by-number-dialog.ts Outdated
@Flow-Fly
Flow-Fly marked this pull request as draft July 28, 2026 16:17
@Flow-Fly
Flow-Fly marked this pull request as ready for review July 28, 2026 16:26

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4e17deb6e0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/dialogs/pf-paint-by-number-dialog.ts
Comment thread src/components/color/pf-palette-panel.ts
@Flow-Fly
Flow-Fly marked this pull request as draft July 28, 2026 16:33
@Flow-Fly
Flow-Fly marked this pull request as ready for review July 29, 2026 08:13

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: eab341ff4e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/dialogs/pf-paint-by-number-dialog.ts Outdated
@Flow-Fly
Flow-Fly marked this pull request as draft July 29, 2026 08:22
@Flow-Fly
Flow-Fly marked this pull request as ready for review July 29, 2026 08:37

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2c87bff3d2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/dialogs/pf-paint-by-number-dialog.ts
@Flow-Fly
Flow-Fly marked this pull request as draft July 29, 2026 08:46
@Flow-Fly
Flow-Fly marked this pull request as ready for review July 29, 2026 11:32

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f981cbdb8c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/dialogs/pf-paint-by-number-dialog.ts
@Flow-Fly
Flow-Fly marked this pull request as draft July 29, 2026 11:39
@Flow-Fly
Flow-Fly marked this pull request as ready for review July 30, 2026 12:30

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c29fb91221

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/dialogs/pf-paint-by-number-dialog.ts Outdated
@Flow-Fly
Flow-Fly marked this pull request as draft July 30, 2026 12:40
@Flow-Fly
Flow-Fly marked this pull request as ready for review July 30, 2026 15:07

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fafdd11c26

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/dialogs/pf-paint-by-number-dialog.ts Outdated
@Flow-Fly
Flow-Fly marked this pull request as draft July 30, 2026 15:12
@Flow-Fly
Flow-Fly marked this pull request as ready for review July 30, 2026 15:20
@Flow-Fly

Copy link
Copy Markdown
Owner Author

Ready for owner playtest

Exact head: 9de64e463253ed81c4317a78f723bcab9d4718da

Automated verification is green: 742 tests, TypeScript, lint, build, exact-base Fallow, hygiene sweeps, checks, and server-container. The automatic Codex exact-head review completed with a thumbs-up, and all 15 review threads are resolved.

Suggested playtest:

  • Open Guided Drawing and switch among Generate from image, a preset, and a saved custom palette; verify preview and created project follow the selected source.
  • Create a palette inline: edit its name/colors, add/reorder/remove colors, save it, and verify the visible save confirmation remains after selection.
  • Cancel inline creation with the visible action and Escape; verify backdrop/header close cannot discard the draft during creation or save.
  • Select a saved empty palette; verify an accessible error appears and the prior valid preview/settings remain usable.
  • Reopen Guided Drawing after the selected saved palette was changed, emptied, or deleted; verify changed colors refresh and unusable/missing palettes fall back to Generate without stale colors.
  • During a slow saved-palette reload, verify Create stays unavailable until the current palette snapshot is ready.
  • Keyboard-check the palette select, inline editor controls, focus return, and live status/error announcements.

No interactive browser playtest was available in the agent environment; component-level interaction tests cover these paths.

@Flow-Fly
Flow-Fly merged commit 11e0202 into develop Jul 30, 2026
3 checks passed
@Flow-Fly
Flow-Fly deleted the dev-383-guided-drawing-palettes branch July 30, 2026 15:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant