Skip to content

v0.3.0 — the theme now restores itself

Choose a tag to compare

@Logocceai Logocceai released this 15 Sep 12:35
· 6 commits to main since this release

The theme now restores itself after a ZCode restart — and the launch entries get repaired, so the debug port is actually there to restore into.

Added

  • Recovery modes — the injected theme dies with the renderer on every restart, so you pick who puts it back:

    • on-start (default) — the MCP host ZCode spawns at startup restores it once. No resident process, no settings panel.
    • always — registers an autostart entry for the resident serve daemon, so the theme and the settings panel survive a reboot. Costs a background node process (~60 MB, ~0.3% of one core).
    • off — nothing automatic.

    Switchable from the settings panel, or with the new recovery_status / set_recovery_mode tools.

  • repair-launchers — scans desktop and Start Menu shortcuts, the zcode:// protocol handler and the Explorer context-menu verbs, and appends the missing --remote-debugging-port. ZCode cannot open the port on its own: the flag has to come from whatever launches it, and a machine usually has several launch entries with only some carrying it. Machine-wide entries need administrator rights and are reported rather than skipped silently.

  • The settings panel now reports when ZCode is running with its debug port closed — the one case no background process can fix — and offers a button that restarts the app properly.

Fixed

  • The CLI and the plugin host wrote two different config.json files, under plugins/data/zcode-beautify/ and the …@zcode-beautify form respectively, so settings changed through one path were invisible to the other. They now resolve to the same directory.
  • The local control API answered any request that could reach localhost, including from web pages open in a local browser, and could replace the wallpaper or reset the appearance. It now requires a token that only the injected panel carries.
  • holdSession leaked its WebSocket when a step after the connect failed, and held sessions were never dropped while CDP was unreachable. Both accumulated connections over long runs.
  • The MCP server reported a hard-coded version that had drifted from the manifest; it is now injected at bundle time from package.json.

Full details in CHANGELOG.md.