v0.5.0.1 — Phase B closeout
0.5.0.1: Phase B closeout (post-0.5.0.0)
Patch release closing Phase B items left open at the v0.5.0.0 tag: editor connect CLI, error-envelope completion, contract hygiene, dashboard scenario counters, and Settings live agent status. Includes everything in 0.5.0.0.
Golden-vector contract suite grows from 366 → 373 (+7 Phase B additions: F-38 JSON parse, F-57 guard, B5 pool isolation, plus F-56 lint unit tests).
New
netllm connect <id>— prints per-harness wiring (env exports, Codex TOML block) for Cursor, Claude Code, Codex, Gemini CLI, Honcho, and others. Flags:--json,--print-env, optional--toggleto register the source. See editor-integration.md.- Serving tab scenario counters — dashboard Serving tab shows per-source and per-scenario request counts from
GET /netllm/v1/telemetry(menubar Serving Stats shows source counts; scenario keys are dashboard-only for now). - Settings live agent status — macOS Settings
statusLabelreads liveserver.state(same source as Start/Stop), fixing split display after adopting a healthy listener on launch.
Fixed
- Malformed JSON → shaped 400 (F-38) — invalid JSON bodies on
/v1/*proxy routes return a proper OpenAI or Anthropic error envelope at 400, not a raw FastAPI 500. Upstream 401/429 from backends still map to 502 (routing failure, not forwarded auth/rate-limit) — see 03-request-lifecycle.md. - Capability guard quotes caller model (F-57) — embedding/chat capability 400s quote
requested_model, not the post-rewrite internal name. - Contract hygiene (F-56) — divergence lint tracks stable vector IDs so renames cannot bypass the golden-vector gate.
- Pool isolation contract (B5) — golden vector
naming-model-pools-isolation-multi-hostpins request-aware pool candidacy across multi-host meshes.
Docs
- F-28 resolved (B7) — packaging limits (arm64-only menubar, ad-hoc DMG, subnet scan IDS) documented in platform-matrix.md, macos-install.md, and macos-troubleshooting.md.
- Manual smoke checklists: menubar-adopt-smoke.md, codex-responses-smoke.md.
Caveats (unchanged from 0.5.0.0)
- Codex
/v1/responsesstreaming — offline contract tests pass; live Codex CLI verification is maintainer-only (F-39 partial). See codex-responses-smoke.md. - macOS arm64 only for packaged menubar; use CLI on Intel Macs or Linux/Windows packages.
- Subnet scan can trigger IDS on corporate LANs — disable
subnet_scanor use staticswarm.peerson monitored networks.
Upgrade
From v0.5.0.0:
git checkout v0.5.0.1 # after tag ships
uv sync
./netllm restart # or menubar Restart Agent / systemctl --user restart netllmVerify:
curl -sf http://127.0.0.1:11400/health
./netllm doctor
./netllm test
./netllm connect cursor --print-env # optional
open http://127.0.0.1:11400/ui/ # Serving tab scenario countersTest plan (release gate)
uv run pytest -q— full suiteuv run pytest tests/contract -q— 373 golden vectors./scripts/ci.sh lint— includes engine erosion gate./scripts/verify-before-pr.sh --full— macOS menubar lifecycle including L5b
Previous release
- v0.5.0.0 notes — routing engine consolidation + request-aware pools