What's new
Scripts framework
Scripts are now formally declared in module.yaml with tags (install, auto, once, button, visible, pause) and managed by a centralized framework instead of ad-hoc Python code per module.
- Auto-install dependencies: pysqlite3 is automatically downloaded from PyPI on first startup on Windows (LO's Python lacks sqlite3)
- Build validation: undeclared scripts produce warnings, missing script files produce errors
- Button dispatch: script buttons are auto-synthesized in Options pages from YAML declarations
- Hook support:
button.beforeallows pre-launch Python callbacks - State tracking:
%APPDATA%/nelson/deps_state.jsontracks execution history (survives reinstall)
Migrated modules
All install scripts now use the framework: core, ai_ollama, ai_images_sdapi, launcher_claude, launcher_gemini, launcher_opencode.
Other improvements
- Build ID: each .oxt is stamped with a timestamp+hash for traceability
- Versioned .oxt: build output is now
nelson-0.8.0.oxt - Bootstrap logging: log level is deferred until after bootstrap completes (was silently masking boot logs)
- NELSON_LOG_LEVEL: env var overrides the configured log level
- Options UI: script button helpers show last-run timestamp or "never launched"
- Terminal module: shared terminal detection extracted from launcher (reusable by all modules)