# Broken Tools Tracker **Discipline:** Every broken tool found gets logged here + fixed (or explicitly deferred) before the session ends. Never reach for a tool and find it out of order. ## How it works 1. Gwen (me) discovers a tool is broken during a task 2. Immediately add to **Open** section 3. Fix or get Steve's approval to defer 4. Move to **Resolved** section when done ## Open | Date | Tool | Issue | Status | |------|------|-------|--------| | 2026-08-22 | OPNsense Caddy reverse proxy | Plugin UI installed but virtual hosts not added via UI; Caddyfile regenerated empty by OPNsense template on every `service caddy start`. Direct file edits get wiped. **Must use OPNsense UI:** Services → Caddy → add domain + handler for each, then Apply. Also: OPNsense lighttpd binds :80, Caddy needs `auto_https off` to avoid conflict. | Waiting on Steve UI work — can't bypass the plugin model | | 2026-08-22 | OPNsense HTTPS (web UI) | Port 443 listener completely dead on OPNsense. Root cause: Caddy can't bind :443 while lighttpd binds :80, so OPNsense HTTPS has never worked since Caddy was enabled. Caddy needs `auto_https off` + `http_port 0` to avoid :80 conflict; needs domain entries to actually bind :443. | Same blocker as Caddy above | | 2026-08-22 | `mcp<2.0` API drift | `mcp` package bumped to v2.0.0; `mcp.server.fastmcp` removed; 5 shell-MCP scripts crashed. Pin mcp<2.0 in requirements or rewrite scripts. | Pinned mcp<2.0 would re-expose CVE-2026-48710 (starlette <1.3.1). Correct fix: rewrite 5 shell-MCP scripts to use new `mcp.server.mcpserver.MCPServer` API. **TODO.** Larger rewrite: imports change from `mcp.server.fastmcp.FastMCP` to `mcp.server.mcpserver.MCPServer`; tool registration via `server.add_tool(fn, name=...)`; run with `asyncio.run(server.run_stdio_async())`. Probably 30-60 min for all 5. | | 2026-08-22 | `/mnt/tank/backups/wiki/sync-from-hetzner.sh` (TrueNAS) | Script is BACKWARDS — tries to sync `kaburusvr.uk/wiki/` (empty) → `kaburuaibox/wiki/`. Would wipe local wiki. Authored before Caddy setup, never tested. | Stale — replaced by new `/home/kaburu/wiki/scripts/wiki-rsync-to-truenas.sh`. Old script still at `/mnt/tank/backups/wiki/sync-from-hetzner.sh` — DELETE NEXT MAINTENANCE WINDOW so nobody runs it. | ## Resolved (2026-08-22 session) | Date | Tool | Issue | Fix | |------|------|-------|-----| | 2026-08-22 | `mcp__chromium-webmcp` | Dead (Divi Builder Bot project retired; host 192.168.0.142 offline; bridge script missing). Steve confirmed: kill it. | Removed from `/home/kaburu/.hermes/config.yaml`. Hermes now lists 12 MCPs, none dead. | | 2026-08-22 | 5 shell MCPs (hetzner, kaburuaibox, mainwp, opnsense, truenas) | `mcp.server.fastmcp` import failed (mcp 2.0.0 broke API) | `pip install fastmcp` pulled mcp-1.29.0 as transitive dep | | 2026-08-22 | Wiki backup | No off-machine backup; single point of failure on kaburuaibox | Added: daily rsync to TrueNAS (05:00) + git remote + post-commit hook pushes to bare repo | | 2026-08-22 | DokuWiki search index | Pages uploaded by file; index never built (0 hits) | Ran `/home/wiki.kaburu.co/public_html/bin/indexer.php` | | 2026-08-22 | `wp post delete --force` pattern | Real risk of `--post_name` matching broadly (memory CRITICAL) | Not encountered this session; documented in memory | | 2026-08-22 | OPNsense Caddy "Caddy plugin missing" diagnosis | First probe said plugin not installed (404 on HTTPS API). Truth: plugin is installed, HTTPS API just requires HTTPS itself to work. | Used OPNsense shell MCP to enumerate `/usr/local/etc/caddy/`, found Caddy binary + plugin MVC code both present. Re-diagnosed as "no virtual hosts configured" not "plugin missing". | ## Discipline rule (for Gwen) When you find a broken tool: 1. **Stop the current task briefly** 2. Add row to **Open** table 3. Fix it (or ask Steve if it's risky) 4. Update row to **Resolved** when done 5. **Do not** push the issue to "next session" without explicit deferral If something is broken, the next request might be for it. Silent failure = lying.