Repository navigation
v1.3.0
- Upgraded MagicMirror dependency to v2.36.0 — formalized the pin from
^2.35.0to^2.36.0and propagated the version string across all sandbox surfaces (config/harness.config.ts,server/html.ts,client/runtime/module.ts, test fixtures and assertions). Full contract audit confirmed zero API breaks between v2.35 and v2.36:module.js,node_helper.js,logger.js,http_fetcher.js,server_functions.js, andvendor.jsall retain the same public API. - Config editor overhaul —
client/vendor/module-config-editor.tsreceived several changes across this release:- Three-editor architecture — rewritten from a single Ace instance to three stacked editors: a read-only prefix pane (the
let config = { … config: {envelope), a scrollable editable pane for inner config properties, and a read-only suffix pane. Line numbers are continuous across all three. The editable pane enforcesINNER_INDENT(6 spaces, depth 3) for display; stored values are always dedented to depth 0.Ctrl+A+Deleteclears only the editable pane. A custom Ace theme (ace-theme-harness.ts) adapts all token and chrome colors to the active--hns-*token set, making the editor theme-aware without JavaScript. header: falserenders as boolean —syncHeadernow detects the"false"string convention used by MagicMirror's attribute transport and emits a booleanfalsenode instead of the string"false".- JS comment support — the editable pane accepts
//and/* */comments without invalidating the config. Format strips comments viastripComments()before running js-beautify; comments are not preserved through a format round-trip by design. - Readonly pane hardening — a transparent
::afteroverlay blocks pointer events on prefix and suffix panes.tabIndex=-1on their internal Ace textareas eliminates the focus tooltip on keyboard navigation. - Inline error highlighting — on a parse failure the editable pane marks the error row with a gutter annotation and a subtle red line highlight, both cleared on the next valid keystroke. The validity indicator now shows only Config valid or Config invalid.
applyBeautifycursor preservation — after a format round-trip the editor attempts to restore cursor position and selection via a normalized left-context pattern match that survives whitespace changes and quoted-to-unquoted key transforms. Restoration is best-effort.
- Three-editor architecture — rewritten from a single Ace instance to three stacked editors: a read-only prefix pane (the
- Journey coverage: stale artifact fix — the reporter now detects which suites (
ui,integration) are present in the current run by inspectingtestModulespaths and passes them asexplicitSuitestobuildJourneyCoverageSummary. Previously, a run where all journey-tagged tests crashed before producing records would exit early without overwriting the summary JSON, leaving a stale 100% score in place for subsequent badge generation. - Documentation — added
docs/themes.md(theme switcher user manual); updateddocs/config.mdfor the validity badge and error highlighting; corrected panel order indocs/debug.md; removed non-existent content fromdocs/about.md; removed changelog-toned language fromdocs/runtime.md.
Full Changelog: v1.2.0...v1.3.0