Holocron v1.4.2
Dashboard patch. Three related fixes for problems that surfaced during a real /holocron:adopt + /holocron:dashboard --install session:
- Briefing tab crashed (
Cannot read properties of undefined (reading 'slice')) whendata.jsonshippedrecentActivity[]entries with the keys{at, type, what}instead of the schema's{date, type, target, summary}. - The same regen blanked two of the three inline-fallback
<script>blocks back to{}, producing "The archive is empty" underfile://where CORS blocksfetch. - The inline-block injection step itself failed earlier in the session with
SyntaxError: unexpected character after line continuation characterbecause the assistant usedpython -c "..."from bash, which mangles backslashes in regex / replacement strings.
Fixed
templates/dashboard/index.html— Briefing-tab "Recent Activity" loop readsr.date || r.atandr.summary || r.whatso a drifted-key emission degrades to a missing field instead of crashing the entire tab. Schema-conforming data renders exactly as before.
Changed
skills/dashboard/skill.md— step 5 of "What this does" expanded: the regen must refresh all three inline<script>blocks (project-data-inline,dashboard-history-inline,knowledge-summaries-inline), not just the first. Leaving the other two as the placeholder{}produces the "The archive is empty" state when the dashboard is opened viafile://. New step 6 instructs the skill to validate the emitted object againsttemplates/dashboard/data.schema.jsonbefore write — required-field check, no non-conforming write. New "Schema lock" section calls out the two field-name drifts observed in practice (recentActivity[]keys,chapters[]keys) with explicit do-not-emit guidance. New "Injection mechanics" section prohibitspython -c "..."for the inline-fallback refresh (bash strips a layer of backslashes before Python sees the source), mandates single-quoted heredocpython << 'PYEOF'or a temp.inject-inline.pyscript, and mandates a lambda forre.subreplacement (literal replacement strings interpret\1/\2as backrefs and corrupt JSON payloads that contain those byte sequences). Includes the working reference pattern.skills/dashboard/references/technical.md— added arecentActivity[]row to the v0.5.0 field-mapping table reiterating the exact keys and the renderer contract.