Fix: dashboard recommendations now read settings.json env (#77)
The dashboard recommended features you had already configured. Detection only read os.environ, but the dashboard is regenerated by the daemon, which doesn't inherit Claude Code's per-session env injection — so flags set in settings.json were invisible and got re-recommended (even showing "RECOMMENDED" next to "set via env var, cannot toggle").
This was systemic across every feature the dashboard marks. Now:
- Env vars and settings keys resolve across
settings.json(project + global,.json+.local.json), memoized by mtime. - A feature set via env var is treated as user-managed: never re-recommended, excluded from savings, in both directions.
- Structure Map stays faithful to its real telemetry gate (
betaonly) — no green badge while logging never fires. - Same fix applied to the git-instructions, claude.ai-MCP, and context-window recommendation paths.
- Hardening: non-UTF-8 settings, FIFO at
.claude/settings.json, and a deleted working dir no longer crash or hang the run;/api/v5/togglerejects env-managed features.
Thanks to @niemst for the report.