Skip to content

Prepare ColorCraft for dashboard discovery#7

Merged
Artsen merged 2 commits into
mainfrom
platform/dashboard-readiness
Jul 25, 2026
Merged

Prepare ColorCraft for dashboard discovery#7
Artsen merged 2 commits into
mainfrom
platform/dashboard-readiness

Conversation

@Artsen

@Artsen Artsen commented Jul 25, 2026

Copy link
Copy Markdown
Owner

Summary

Completes ColorCraft's dashboard-readiness pass as a focused local-first product update.

  • adds versioned IndexedDB palette persistence with validation, legacy migration, corrupt/future-record handling, and explicit Unsaved / Saved / Modified states
  • turns Library into a real responsive workspace with recent items, search, open, rename, duplicate, delete confirmation, and predictable active-record deletion
  • adds a static dashboard manifest plus runtime-resolved /metadata, health/readiness endpoints, capability slugs, and launcher URL output
  • adds a one-command validation gate and CI for formatting, linting, type checks, coverage, production build, backend integration tests, Playwright workflow coverage, and axe accessibility checks
  • adds a deterministic 16-state screenshot workflow, keeps temporary review output under ignored .tmp, and commits a small curated documentation set
  • rewrites the README and adds focused setup, workflow, runtime, architecture, API, testing, troubleshooting, persistence/privacy, screenshot, dashboard, and brand documentation

Persistence and privacy

Palette records are stored only in the current browser's IndexedDB. LocalStorage remains limited to theme preference. Image-derived records retain source type/name and extracted color metadata, but not source image bytes. Uploaded image data remains request/session scoped and is not written to disk or persistent browser storage by ColorCraft. Clearing site data removes saved palettes.

Stored schema version: 1. Version-0/unversioned records migrate on read; malformed records and unknown future versions are ignored without breaking Library startup.

Dashboard discovery

Static defaults:

  • web: http://127.0.0.1:5174
  • API: http://127.0.0.1:4100
  • manifest: app-manifest.json

Runtime consumers can resolve overrides from GET /metadata; GET /ready exposes the same capability slugs when ready.

Validation

backend/.venv311/Scripts/python.exe check.py

  • frontend: 67 tests across 19 files; 87.97% statements
  • backend/launcher/docs: 59 tests; 85% combined coverage
  • Prettier, ESLint, TypeScript, Ruff, and mypy pass
  • Vite production build passes
  • Playwright create → save → analyze → contrast → export → reopen → delete workflow passes
  • axe finds no serious or critical violations in representative Create, Review, and Library states
  • deterministic 16-state screenshot run passes and curated screenshots were visually reviewed

Coexistence check

Ran Web Video Optimizer and ColorCraft simultaneously and received HTTP 200 responses from both stacks:

  • WVO web/API: 5173 / 4000
  • ColorCraft web/API: 5174 / 4100

The applications retain a related local-utility shell grammar while ColorCraft keeps its own mark, palette workflow, navigation, and accent treatment.

Review notes

The new formatter/linter gates normalize existing frontend and backend source alongside the functional changes, so the diff includes repository-wide mechanical formatting in addition to the persistence, manifest, testing, and documentation work.

@Artsen
Artsen marked this pull request as ready for review July 25, 2026 16:15
@Artsen
Artsen merged commit f58e641 into main Jul 25, 2026
1 check passed
@Artsen
Artsen deleted the platform/dashboard-readiness branch July 25, 2026 16:35
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