Skip to content

Holocron v1.4.4

Choose a tag to compare

@github-actions github-actions released this 11 May 15:17
· 3 commits to main since this release

Dashboard fixes verified end-to-end via Playwright. v1.4.3 shipped untested code that fixed Story but left People crashing on hardcoded data.characters.kira.stats (template assumed a specific protagonist key from the example data — every real project has a different protagonist key, so every real project crashed People), Workshop crashing on s.date.slice in the Velocity sparkline (data.history.wordcountSnapshots had drifted shape {at, totalWords} instead of {date, total}), and the Story tab's POV/Tense table emitting React key warnings (povTenseConsistency[] rows used {scene, pov, tense} instead of {chapterId, declaredPov, detectedPov, declaredTense, detectedTense}). Every tab now renders against the real-world drifted data with zero console errors.

Fixed

  • templates/dashboard/index.html — PeopleTab picks the protagonist by inspecting characters in this order: any entry whose role matches /protagonist|pov/i, else any entry with a stats object, else the first entry. Renders an empty-state line ("No protagonist attributes declared…") if none found. No more hardcoded kira lookup.
  • templates/dashboard/index.htmlVelocity component guards against single-snapshot history ((snapshots.length - 1) was dividing by zero, producing NaN SVG coordinates), normalises missing/empty snapshots to one placeholder point, and computes max over s.total || 0.
  • templates/dashboard/index.htmlnormalizeData extended to cover two more drift patterns observed in real data: history.wordcountSnapshots[] (atdate, totalWordstotal), and povTenseConsistency[] (scenechapterId, single pov/tense scalars expand to declared+detected pairs with reasonable defaults). Also injects an empty 8×7 writingActivity matrix when the field is missing, so the cadence heatmap renders an empty grid instead of crashing.

Process note

This release was verified by loading index.html via python -m http.server and clicking each of the five tabs through a Playwright MCP browser, checking the console after each click. All five tabs reach zero errors. v1.4.3 should not have shipped without this check.