v2.1.0 — Tri-state theme, pipeline resilience & 2 new plot types
Three days after the anyplot.ai relaunch (v2.0.0), this release adds two new plot types, completes library coverage on two more, regenerates five existing plots for higher quality, introduces a tri-state theme mode, and hardens the implementation pipeline against transient Claude Code Action failures. No breaking changes — drop-in over v2.0.0.
🎨 New plot types
Two brand-new specifications, fully (or near-fully) rolled out across the nine supported libraries:
| Spec | Coverage | Description |
|---|---|---|
venn-labeled-items |
9/9 | Venn diagram with labeled members per region |
area-mountain-panorama |
7/9 | Panoramic alpine silhouette with labeled summits — spec was refined mid-flight to require jagged piecewise-linear ridgelines and forbid Gaussian peaks (#5411). bokeh + highcharts still in-flight. |
✅ Coverage filled on existing plots
| Spec | New library | Status before / after |
|---|---|---|
donut-basic |
plotnine |
8/9 → 9/9 |
contour-basic |
pygal |
8/9 → 9/9 |
🔁 Regenerated plots
The following existing specs were regenerated for quality / pipeline alignment — same plot type, fresh code:
gauge-basic(9 libs)errorbar-basic(9 libs)ecdf-basic(9 libs)sudoku-basic(9 libs)scatter-basic(6 libs)
🌗 Tri-state theme mode
The site theme toggle gained a third state: system / light / dark with live OS sync. The site now follows the OS theme automatically by default, while still respecting an explicit user override (#5412).
🔧 Implementation pipeline resilience
The impl-generate / impl-review / impl-repair pipeline is now self-healing against transient Claude Code Action failures (#5410):
- Generate retry budget bumped from 2 → 3 attempts, aligning with the existing failure-label description and the repair phase budget.
- Repair workflow gained a failure handler that restores
ai-rejectedand auto-retries the same attempt once via a marker comment, then falls back to manual. - Review auto-retries once via
repository_dispatchfor both Claude crashes and missing/invalidquality_score.txtoutputs. - All marker counts now use
--paginate --per_page=100so they stay reliable on PRs/issues with many comments.
📊 Analytics & SEO
- Tracking added for the landing-page hero, libraries section, palette section, navigation, and footer interactions — the new chrome from v2.0.0 is now properly instrumented (#5400).
- Tightened SEO metadata for landing-page sections.
🎨 Frontend polish
- Scroll restoration: route changes now scroll to top (#5403) and the prior
scrollRestorationvalue is preserved across mount/unmount (#5404). - Code view: paper aesthetic in light mode, brand-green comments, overflow fix (#5401).
- Filter bar: widened mobile search input, dark-mode text fixed (#5363).
🛠️ Backend / API
- Specs API: in-memory caching for spec lookups, sturdier error responses.
- Debug status: daily activity & common-weaknesses tracking added to the debug endpoint.
- Regeneration: review feedback from the previous attempt is now extracted and passed to Claude during regeneration, so subsequent runs improve on prior weaknesses.
🧰 Tooling
- Audit command expanded with four new auditors and best-practice mechanics (#5402).
Migration notes
None. This release is a drop-in upgrade over v2.0.0.
Full Changelog: v2.0.0...v2.1.0