Repository navigation
v1.1.0
- Added Quality sidebar domain with real-time module analysis against MagicMirror 3rd-party criteria. Findings are grouped by severity (errors, warnings, recommendations) with per-severity filter checkboxes and an on-demand Analyze module button. Results update automatically in watch mode. Backed by a new
VendorModuleAnalyzerinserver/module-analysis.ts, an always-on analysis watcher inserver/analysis-watcher.ts, and thequality-panel.tsbrowser runtime. - Introduced upstream vendor sync for the module analyzer. Four files (
module-analyzer.ts,dependency-usage.ts,missing-dependency-rule.ts,rule-registry.ts) are now auto-synced fromMagicMirrorOrg/MagicMirror-3rd-Party-Modulesat build time viasync:module-analyzer, gitignored from this repo, and regenerated on everynpm run build. - Applied no-patch shim fidelity:
logger.jsandnode_helper.jsfrom MagicMirror core are now copied verbatim during sync; sandbox behavior is injected only through appended postludes. The previous source-patch templates (core-logger-replacements.json,core-node-helper-replacements.json) and theSourceReplacementmachinery have been removed. - Bundled Express and undici directly from MagicMirror's own
node_modulesvia esbuild intoshims/generated/node_modules/express/andshims/generated/node_modules/undici/.node_helper.jscan nowrequire('express')andserver_functions.jscanrequire('undici')via standard Node module resolution without any source patches and without adding them as sandbox dependencies. Removedserve-staticandundicifrompackage.jsondependencies. - Split the file watcher into two independent watchers: a module watcher (always-on, stage-scoped reloads, restarts helper on non-style/non-translation changes, respects the mounted module's
.gitignore) and a sandbox watcher (active only under--watch, shell-scoped reloads, triggersrebuildClientAssetsandrebuildNodeCompatfor source changes, callsrestartHelperonly on config changes). - Added build pipeline contract tests (
tests/unit/shims/build-pipeline-contracts.test.ts) that verify each expected shim artifact exists after the build, validate the Express and undici bundles by shape (use/getmethods,express.static,fetch/requestexports), and confirm both bundles resolve correctly from themagicmirror-corecontext via the standard Node module walk. - Added shell hydration parity tests (
tests/unit/server/shell-hydration-parity.test.ts) and extended route and watcher unit coverage acrossroutes.test.tsandwatch.test.ts. - Added seven new UI domain navigation journeys to the journey coverage catalog covering the Quality domain and domain navigation ordering.
- Replaced
peaceiris/actions-gh-pageswithJamesIves/github-pages-deploy-action@v4in CI to resolve the Node 20 deprecation warning underFORCE_JAVASCRIPT_ACTIONS_TO_NODE24. - Introduced a CSS custom property token system (
--hns-*namespace, ~60 tokens) as the single source of truth for all sandbox shell colors. All hardcoded hex values in_shell.scss,_shared.scss,_runtime.scss,_debug.scss,_notifications.scss, and_quality.scssare replaced withvar(--hns-*)references. Existing--sandbox-*control variables are preserved and re-derived from--hns-*tokens so no downstream consumer API changes. - Shipped four built-in themes (Carbon Slate, Obsidian Amber, Violet Circuit, Phosphor Green) via a new
_themes.scsspartial. Themes are activated by[data-theme]on<html>— no JavaScript required for CSS updates. Carbon Slate is the default, applied server-side to prevent FOUC. - Added a theme switcher to the topbar: a brush icon button opens a Bootstrap-style dropdown listing all four themes with color-swatch previews, theme names, and a check mark on the active selection. The chosen theme persists across sessions via
localStorage. Dropdown closes on any outside click. - Added a loading/restart backdrop overlay (
harness-backdrop) shown during stage loads and sandbox restarts.core.showBackdrop(label)/core.hideBackdrop()are exposed on the shell microcore so other runtime scripts can trigger it. - Applied
Cache-Control: no-storeon all/__harness/static assets so watch-mode reloads always serve fresh builds without requiring a hard browser refresh. - Forced
runClientAssetsBuild()at sandbox startup in watch mode so the operator shell is always up to date when the server comes online. - Updated documentation: added
docs/quality.mdfor the new Quality domain, correctedARCHITECTURE.md(removed stale patch references, documented two-watcher split, added CSS token system and backdrop sections), updateddocs/README.mdto list six sidebar domains, and retook all screenshots at 1366×1024.
Full Changelog: v1.0.1...v1.1.0