
Live / Tested
Chromaflow
An interactive Water Sort solver pairing mobile-first puzzle entry and responsive replay controls with an A* search engine, backed by automated logic and cross-browser tests.
Project documentation
Selected sections, refreshed from GitHub every five minutes.
RoadmapPROJECT_ROADMAP.md
Current Status
- Project maturity: Portfolio-ready
- Actively developed: Yes
- Last reviewed: 2026-07-30
Known Limitations
Screenshot recognition supports a calibrated visual style
- Area: Input
- Severity: Medium
- User impact: Screenshots using the calibrated straight, light-outlined bottle artwork can be imported at varying resolutions, while games with substantially different bottle shapes or color palettes may not be recognized.
- Technical impact: The local detector derives geometry from connected bottle outlines and uses calibrated color profiles rather than a general-purpose computer-vision model.
- Current workaround: Review and correct every detected layer in the editable builder, or recreate unsupported screenshots manually with either fill mode.
- Suggested resolution: Add opt-in crop guidance and additional tested bottle and color profiles as representative screenshots become available.
- Status: Known
Puzzle capacity remains fixed
- Area: Solver
- Severity: Low
- User impact: Variants with a capacity other than four or a color count that does not equal the bottle count minus two cannot be represented.
- Technical impact: Capacity remains fixed at four layers, and configuration derives the selected-color count from the standard two-spare-bottle level shape even though every bottle is editable during entry.
- Current workaround: Use Chromaflow with standard four-layer Water Sort levels.
- Suggested resolution: Make capacity and the color-to-bottle relationship configurable only if real target games require those variants.
- Status: Known
UpdatesPROJECT_UPDATES.md
Latest Stable State
- Last updated: 2026-07-30
- Current version: 1.0.0
- Current status: Active
- Primary branch:
main - Production URL: https://chromaflow.dimgianno.com/
- Staging URL: Not deployed
Current Project Summary
Chromaflow is a browser application for importing, recreating, and solving fresh or partially completed Water Sort puzzles. Users can load a solvable known level from MongoDB, recognize supported screenshots locally, configure levels with up to 14 bottles, correct colors through layer-first or color-first mobile workflows, validate the current bottle state, solve it with an A* search engine, and replay every move. The production application can be installed and caches its solver, screenshot recognizer, and interface for reliable offline use. The project uses semantic HTML, responsive CSS, and framework-free JavaScript and TypeScript modules bundled with Vite, with a read-only Vercel Function providing protected MongoDB access; Playwright is used for browser testing.
Latest Updates
2026-07-30 - Reliable shared-link restoration after updates
- Type: Fix
- Status: Ready for review
- Summary: Prevented an older installed application shell from silently ignoring newly shared puzzle URLs.
- User impact: After this release reaches a browser, opening a shared puzzle while online checks for the current Chromaflow interface, while offline reloads continue using the cached application. A browser still controlled by a pre-fix worker requires a one-time full close and hard refresh or site-data clear.
- Technical impact: Changed generated service-worker navigations from cache-first to network-first with an application-shell fallback, preserved cache-first immutable assets and the existing non-disruptive update lifecycle, and added focused generation plus online/offline navigation coverage.
- Related area: Puzzle sharing, offline reliability, and application updates
2026-07-30 - Shareable puzzle URLs
- Type: Capability
- Status: Ready for review
- Summary: Added addressable puzzle state through compact URLs that can be copied, shared, or bookmarked.
- User impact: Users can share any valid configured puzzle with one action, and opening the link restores the editable level automatically with clear feedback if the link is invalid.
- Technical impact: Reused the validated compact puzzle codec through a Base64URL
pquery parameter, preserved unrelated query parameters, limited payloads to 4–14 bottles and at most 39 URL-safe characters, retained atomic import behavior, and added focused unit and cross-browser coverage. - Related area: Puzzle sharing, application state, and import validation
2026-07-29 - Searchable large level library
- Type: Improvement
- Status: Ready for review
- Summary: Replaced the known-level dropdown with exact level-number search and a scalable browser for the complete MongoDB catalog.
- User impact: Users can import a known level directly by number or browse tens of thousands of levels without navigating an oversized native dropdown; the browser supports local prefix filtering and clear 50-result pages.
- Technical impact: Removed the 1,000-record database query cap, indexed the downloaded compact catalog by level number in browser memory, limited rendered dialog results to one page, preserved the existing validated puzzle-code import path and unavailable-library fallback, and added focused unit and cross-browser coverage.
- Related area: Puzzle onboarding, catalog scalability, and MongoDB integration

