# Daily Notes — 2026-02-24 ## Andrew (Spacebot) — Major Session ### What we did - **Model chain**: Gemini → MiniMax M2.5 (Fireworks) → **Claude Sonnet 4.6 via Anthropic OAuth** (final) - **Updated to v0.1.15** (docker pull + recreate on 192.168.1.17) - **Anthropic OAuth**: ran `spacebot auth login` inside container, credentials at `/data/anthropic_oauth.json` - **Config** (`/home/johan/spacebot-config.toml` on 192.168.1.17): - channel/branch/worker = `anthropic/claude-sonnet-4-6` - cortex/compactor = `anthropic/claude-haiku-3-5` - **Fireworks key**: `fw_RVcDe4c6mN4utKLsgA7hTm` valid (older key; `fw_TGADpSki7zak4K9JxPzbXU` expired) - **IDENTITY.md ingested**: corrected HA IP (.252 not .16), Andrew not James, tool-use rules - **agent_profile DB**: changed display_name to 'Andrew' — but cortex keeps regenerating as "James ⚡" (200 old memories outweigh new ones) ### Known issues - **Worker dispatch broken**: channel calls `reply()` and stops — never dispatches workers. Andrew says "On it" but nothing happens. Affects all multi-step tasks. - **Cortex profile regeneration**: reads existing memories, writes "James ⚡" back. Will self-correct as Andrew memories accumulate. - **Banner bug** (being fixed in PR): "No LLM provider configured" shows even with valid OAuth. ### PR #193 — https://github.com/spacedriveapp/spacebot/pull/193 Two fixes: 1. Settings dialog pre-populates model field from active routing config (not hardcoded default like `llama-v3p3-70b-instruct`) 2. `get_providers()` now checks `anthropic_oauth.json` for Anthropic — OAuth counted as "configured" Review feedback addressed: - `find(a => a.id === 'main')` instead of `[0]` for default agent - `useEffect` to sync model input when config loads after dialog opens - Rebased on latest main (had accidentally bundled OpenAI device-code flow changes) - `jamiepine` (maintainer) said "very helpful change" ### Architecture observation Johan: "The foundation is a LOT better than OpenClaw." Rust, true concurrency, Lance vector memory, proper PKCE OAuth. Johan wants it to work. Revisiting 2026-03-03. ### GitHub PAT `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` — 30-day, repo scope, johanjongsma account. Expires ~2026-03-26. ## Weather St. Pete tonight: **9°C (48°F), clear, 27 km/h wind** — cold. Andrew hallucinated 84°F with MiniMax M2.5. ## Spacebot Monitoring Added to HEARTBEAT.md: weekly check for new Spacebot releases, specifically worker dispatch fix. Don't update Andrew container until Johan says so. --- ## Night Shift Session (10:30pm – ~3:30am) ### OpenClaw updated to 2026.2.23 - Updated from 2026.2.22-2 - Key changes: Kilo Gateway provider, Moonshot/Kimi vision+video, compaction overflow recovery, exec hardening, ACP/OTEL secret redaction, `allowFrom` now ID-only (but `"*"` still required for `open` dmPolicy) - **ClawHub malware incident** disclosed in this release: #1 downloaded skill was SSH key stealer + reverse shell. ~20% of marketplace skills malware. 1,184 bad skills. We're safe — only use built-in + manual skills. - **SkillSMP.com** — third-party marketplace trying to fill the ClawHub gap. Treat all third-party skill marketplaces as hostile. - **Patch reapplied**: deleted transcript indexing now in `query-expansion-*.js` (was `sqlite-C54NeA1C.js` in old version) - **Scope preservation patch**: no longer needed — `dangerouslyDisableDeviceAuth` not in our config, scopes intact ### Google Antigravity key — DEAD - Token expired **Feb 19**, refresh fails — Google banned/revoked the Antigravity OAuth app - Affects: Gemini via `google-antigravity` provider in OC sessions - **inou is fine** — inou uses a direct Gemini API key (`AIzaSyAsSUSCVs3SPXL7ugsbXa-chzcOKKJJrbA`) which works (200) - Johan: "I don't mind" — not a priority ### iOS / iPhone OC status - Internal preview only, not publicly distributed - Works as a node (camera, screen, location, voice wake) - 2026.2.21 had "iOS/Watch polish", so it exists and works - Third-party "GoClaw" on App Store (not official) ### Arcee Trinity-Large-Preview (OpenRouter, free) - 400B MoE, 13B active params per token (4-of-256 expert routing) - #1 most popular model for OC on OpenRouter during preview - 128k context, agentic-capable, free during preview - Worth watching when non-preview Trinity-Large drops ### DealRoom — Misha's Feature Requests - Claude Code agent ran, implemented most of spec (973 insertions, 11 files) - Committed and pushed to Zurich: `24f4702` - **3 gaps identified after review:** 1. **Per-group folder visibility checkboxes** (spec 2.e.i.2) — MISSING. Groups have name/role/email but no folder checkbox tree. 2. **Saved folder structure templates** (spec 2.f.i.2.i) — MISSING. Can't name/save/reuse folder layouts. 3. **Auto-assign review step** (spec 3.b.2) — fires automatically, no user review UI before commit. - **TODO**: spawn another agent to fix these 3 gaps (deferred — Johan sleeping) ### inou Labs / LOINC matching — BUG OPEN - Johan: "pretty charts not showing in Labs, LOINC matching not working" - Root cause partially traced: - `buildLabRefData()` reads `data["loinc"]` from lab entries - Production DB (192.168.1.253:/tank/inou/data/inou.db): 0 entries have loinc in data JSON - `Normalize()` says "all entries already normalized" — because `SearchKey2` is set for all entries - But `data["loinc"]` is never set (maybe normalize ran before that field was added, or Gemini returned empty LOINC codes) - Gemini API key IS valid (200 response confirmed) - reference.db has 448 lab_test + 1551 lab_reference entries — reference data is there - Entry data is encrypted — can't inspect raw from SQLite - **Next step**: debug normalize on prod with a test run that forces re-normalization; or fix buildLabRefData to fall back to e.SearchKey (which is also set to the LOINC code by normalize) - **TODO**: fix this when Johan wakes up --- ## Nightly Maintenance (21:00 ET) ### OS Updates - `apt upgrade` ran — 2 packages upgraded (details: security/ubuntu noble updates) - Kernel 6.8.0-101 available — **needs reboot** (currently on 6.8.0-100) ### Claude Code Update - Updated: 2.1.50 → **2.1.53** (system install via `sudo npm install -g`) - Two claude binaries existed: /usr/bin/claude (root, now 2.1.53) and ~/.npm-global/bin/claude (2.1.53) ### OpenClaw - Already up to date: **2026.2.23** ✅ (no update needed) ### Session Cleanup - Orphaned .jsonl files removed: **13** - Cron :run: keys removed from sessions.json: **76** - sessions.json keys remaining: 40 ### Working Context - Updated memory/working-context.md with today's session summary