Skip to content

Holocron v1.4.2

Choose a tag to compare

@github-actions github-actions released this 11 May 14:29
· 5 commits to main since this release

Dashboard patch. Three related fixes for problems that surfaced during a real /holocron:adopt + /holocron:dashboard --install session:

  1. Briefing tab crashed (Cannot read properties of undefined (reading 'slice')) when data.json shipped recentActivity[] entries with the keys {at, type, what} instead of the schema's {date, type, target, summary}.
  2. The same regen blanked two of the three inline-fallback <script> blocks back to {}, producing "The archive is empty" under file:// where CORS blocks fetch.
  3. The inline-block injection step itself failed earlier in the session with SyntaxError: unexpected character after line continuation character because the assistant used python -c "..." from bash, which mangles backslashes in regex / replacement strings.

Fixed

  • templates/dashboard/index.html — Briefing-tab "Recent Activity" loop reads r.date || r.at and r.summary || r.what so 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 via file://. New step 6 instructs the skill to validate the emitted object against templates/dashboard/data.schema.json before 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 prohibits python -c "..." for the inline-fallback refresh (bash strips a layer of backslashes before Python sees the source), mandates single-quoted heredoc python << 'PYEOF' or a temp .inject-inline.py script, and mandates a lambda for re.sub replacement (literal replacement strings interpret \1/\2 as backrefs and corrupt JSON payloads that contain those byte sequences). Includes the working reference pattern.
  • skills/dashboard/references/technical.md — added a recentActivity[] row to the v0.5.0 field-mapping table reiterating the exact keys and the renderer contract.