v0.15.1 — Loop Phase gap-closure
Closes the four honest gaps the Loop Phase (v0.15.0) shipped with.
- Settings → Loops tab — master toggle + all five ceilings (max iterations, wall-clock, token budget, max concurrent, runaway floor). No more editing settings.json.
- Status-line slot — a running loop shows "N loop · iter X" (hidden when none are running).
- Context-aware token budget — the per-iteration estimate now counts the full sent message stack (system prompt + history + prompt) plus the reply, not just the iteration prompt. Iteration + wall-clock remain the hard caps.
- Real DB integration test — loop_db-integration runs the exact migration-v17 DDL + loop query shapes against Node's built-in node:sqlite (no native addon), so schema/query correctness has 9 always-running assertions instead of skipped suites.
Gate: tsc node+web, full vitest 2251 passed / 130 skipped / 0 failed, build, verify:proof all green. See PLANNING/LP_SMOKE_PLAYBOOK.md.