homelab.ivo Todos
SYS 200 UTC --:--:-- LOCAL --:--:--
§02 Open Threads — across all projects 11 files · cached 5m · source: ivo/projects/*/TODO*.md
§01

agents

obsidian ↗ 11 open
  • **First weekly review** — pick a target week (suggest 2026-W30 — current week) and run the protocol end-to-end to surface any kinks before automating. Improvement loop
  • **Seed `growth-paths.md`** with the active vectors already implied by existing LRN notes + MEMORY rules. Walk every open `learning/LRN-*.md` and add a row. _Done (2026-08-18) — added GP-20 through GP-25 from open LRNs (LRN-20260817-002 Discord surface, LRN-20260817-003 inotify transport, LRN-20260818-001 cron volume, LRN-20260701-010 SecretRef schema, LRN-20260702-006 with-vault wrapper, LRN-20260713-015 wine workflow)._ Improvement loop
  • **Verify the cross-session signal source.** Confirm `sessions_history` can reach back further than the current session; figure out how to enumerate prior sessions cleanly via `sessions_list`. If the gateway doesn't keep full transcripts, the protocol needs a different data source (e.g., `livesync-activity.md` for vault changes + grep `memory/` for daily context). Improvement loop
  • **Wire up dashboard Dataview queries.** Test in Obsidian — Dataview plugin is required (already enabled per project setup). Improvement loop
  • **Decide review-time budget.** Ivo approves token burn. Suggestion: 5–10k tokens per weekly run (isolated agent turn, `minimax-m2.7-highspeed` per [[LRN-20260722-001]] model pin lesson). Improvement loop
  • **Document LRN → MEMORY → lancedb-pro promotion path** — single canonical doc under `ivo/projects/agents/` for future agents. _Done (2026-08-18) — `ivo/projects/agents/lcm-promotion-path.md` (18.7 KB, 9 sections, end-to-end phase diagram). GP-17 promoted._ Memory pipeline (NEW 2026-08-08 — from OPM merger)
  • **Backfill check**: verify lancedb-pro entry count = LRN file count × expected entries (today: 80 memories, 52 LRN files imported + 5 MEMORY blocks = 57 entries, plus 23 agent:main entries). Memory pipeline (NEW 2026-08-08 — from OPM merger)
  • **Set up alerting on lancedb-pro daemon death** — process check + Telegram alert (similar to mcp-server health check). Memory pipeline (NEW 2026-08-08 — from OPM merger)
  • **Investigate the 2026-07-23 → 2026-07-29 window** for how 4 OPM files disappeared. The disappearance window is now historical; investigation is informational, not blocking. Recorded as legacy concern. OPM residual items (absorbed from `ivo/projects/openclaw-persistent-memory/TODO.md`)
  • **Decide whether to regenerate the missing gap-analysis files** (`dox-comparison.md`, `findings-v3-comparison.md`) — currently superseded. Decision: accept superseded status, point at MEMORY thread 38 for canonical v3 history. OPM residual items (absorbed from `ivo/projects/openclaw-persistent-memory/TODO.md`)
  • **Decide whether to re-emit the v3 adoption completion receipt** — accept memory thread 38 as canonical for v3 history. OPM residual items (absorbed from `ivo/projects/openclaw-persistent-memory/TODO.md`)
§02

airsoft-grenades

obsidian ↗ 19 open
  • Source the 96-pack poppers from Amazon.nl (ASIN B09447KX5T, €8.25) Design A — Party-Popper-Based
  • Disassemble popper, understand mechanism (percussion cap + spring) Design A — Party-Popper-Based
  • Design 3D-printable grenade housing in FreeCAD/TinkerCAD/Onshape Design A — Party-Popper-Based
  • Print housing prototype — check Ivo's slicer settings (PLA/PETG/ASA?) Design A — Party-Popper-Based
  • Integrate popper guts into housing Design A — Party-Popper-Based
  • Test: sound level, reliability, safety Design A — Party-Popper-Based
  • Iterate housing design if needed Design A — Party-Popper-Based
  • Source 12g CO2 cartridges (buy a small pack to test) Design B — Thunder B-Style
  • Source nichrome wire / resistance wire (Amazon.nl or AliExpress) Design B — Thunder B-Style
  • Source a 9V battery or LiPo pack Design B — Thunder B-Style
  • Design 3D-printable grenade housing with CO2 bay + electronics compartment Design B — Thunder B-Style
  • Print housing prototype Design B — Thunder B-Style
  • Prototype trigger circuit on breadboard (nichrome + battery + switch) Design B — Thunder B-Style
  • Integrate into housing Design B — Thunder B-Style
  • Test: sound level, reliability, safety Design B — Thunder B-Style
  • Iterate housing design if needed Design B — Thunder B-Style
  • Re-source parts in batch quantities Later (batch phase, only if volume confirmed >3)
  • Redesign housing for injection molding (if batch >20) or for faster FDM printing Later (batch phase, only if volume confirmed >3)
  • Pre-assemble kit Later (batch phase, only if volume confirmed >3)
§03

airsoft-targets

obsidian ↗ 25 open
  • Triage open questions in `specs/open-questions.md` (target MCU, outdoor use, master battery, enclosure rating, buzzer, piezo clamp, headshot zones) Phase 1: Design (in progress)
  • Confirm SG90S can lift a 15 cm steel gong without stalling (quick bench test, 30 min) Phase 1: Design (in progress)
  • Final per-node BOM once open questions resolved Phase 1: Design (in progress)
  • Breadboard master (AP + OLED + ESP-NOW) Phase 2: Electronics
  • Breadboard target (servo + IR + piezo + 18650) Phase 2: Electronics
  • Hand-wire prototype target node (no PCB yet — perfboard + dupont) Phase 2: Electronics
  • Validate end-to-end (phone → master → ESP-NOW → target → IR/piezo → servo) with 1 node Phase 2: Electronics
  • Validate hit detection in daylight (real sun, real airsoft BBs) Phase 2: Electronics
  • Define ESP-NOW message protocol (master↔target): msg types, payload shape, target_id addressing, ACK semantics Phase 3: Firmware
  • Master firmware: AP setup, DNS redirect, web UI server (LittleFS), score state machine, ESP-NOW broadcast Phase 3: Firmware
  • Target firmware: pairing flow, servo state machine, IR ISR + piezo ADC + debounce + ESP-NOW reply Phase 3: Firmware
  • Web UI: target grid, mode selector, score, timer, hit log Phase 3: Firmware
  • Auto-pairing so adding a new target = press button on target + master scan mode Phase 3: Firmware
  • 3D-print target frame (frame + IR brackets + servo cradle + gong pivot) Phase 4: Mechanical
  • 3D-print master enclosure (handle/strap, OLED window, button access) Phase 4: Mechanical
  • Outdoor enclosure variant for the target node (splash-proof) Phase 4: Mechanical
  • Sun shroud over RX for outdoor mode (if § 8 Q2 lands yes) Phase 4: Mechanical
  • Validate with 3 targets + master — verify all hit events reach master, no cross-talk Phase 5: Multi-target validation
  • Validate ESP-NOW range at expected field distances (typ. 10–50 m outdoor) Phase 5: Multi-target validation
  • Battery runtime test: full game session on a single 18650 charge Phase 5: Multi-target validation
  • Buzzer per target for audible hit feedback (if § 8 Q5 yes) Phase 6: Polish (optional, V2)
  • Status LED patterns (idle, hit, low battery) Phase 6: Polish (optional, V2)
  • OTA firmware update over WiFi AP Phase 6: Polish (optional, V2)
  • Multi-phone support (2+ devices see same score) Phase 6: Polish (optional, V2)
  • Headshot scoring bonus (2 beams per target, if § 8 Q7 yes) Phase 6: Polish (optional, V2)
§04

homelab

obsidian ↗ 9 open
  • **Tighten Docker user perms on NAS** _(added 2026-07-14 20:48 CEST)_. All 11 NAS containers run as root. Add `user:` directives to compose files; volumes need to be owned by the non-root user. Needs Ivo input on which user IDs per container. Open
  • **Pick a backup option (A/B/C/D)** _(added 2026-07-19)_. Audit at 2026-07-19 13:35 CEST found **PBS is not configured**, no scheduled jobs, only 7 manual vzdumps on local storage (most recent 2026-06-29). Doc `ivo/projects/Homelab/pbs-backup-strategy.md` lays out 4 options — recommended: A (scheduled vzdump to existing PVE storage `backups` → NAS `Proxmox` CIFS share, agent-only API setup) as immediate gap-closer, then layer C (PBS on NAS via Docker) for dedup + verification. **2026-07-19 15:23 CEST update:** HA retention resolved (3 daily automatic backups on NAS `Backups/hassio/`, bounded — see doc follow-up #6). **Option A is now safe to schedule without further HA verification.** Still needs Ivo's call on whether to go A, C, or A→C. Open
  • **Fix uptime-kuma — MariaDB permission errors, container won't start** _(added 2026-07-23 14:33 CEST, parked per Ivo request)_. **Diagnosis:** Kuma 2.x uses an embedded MariaDB, not SQLite as the stack README at `ivo/projects/Homelab/Container-management/docker/uptime-kuma/README.md` claims. Container restart-loops on `mariadbd: Can't create/write to file '/app/data/mariadb/aria_log_control' (Errcode: 13 "Permission denied")` — host bind-mount dir `/volume1/docker/uptime-kuma/data → /app/data` ownership mismatch. The restart loop was driving the high disk load that prompted the stop. **SSH situation:** agent can't SSH directly — root blocked by `PermitRootLogin no`, `openclaw` user has `/usr/sbin/nologin` shell, agent's OpenSSH 9.6 signs with hostbound which NAS sshd 9.2 advertises but can't verify. Only `iherman` works for direct SSH. **To finish:** Open
  • Image vulnerability scanning on Docker images (Trivy or similar) Someday
  • Proxmox host-level security review (PVE auth, firewall rules) Someday
  • Offsite backup target (currently NAS-only, no offsite) Someday
  • Standardize port allocation scheme (e.g., 8000-8099 web, 9000-9099 dev) Someday
  • Document NAS SSH hardening (currently root key-only, no fail2ban) Someday
  • Define a blocked ip list separated per group : infra, arr, storage Metadata
§05

mcp-server

obsidian ↗ 3 open
  • **PROPOSAL-20260808-001 — mcp-push-wake** — APPROVED. ~40 LoC Go: agent table gets `gateway_url` + `push_enabled`; `messaging.send` handler fires `cron.wake` via WS-RPC per recipient. Cron poll slows 30s→5min post-rollout as safety net. **Blocker**: Zoltan merges. Awaiting merge (today's PROPOSALs)
  • **PROPOSAL-20260808-002 — inbox-adapter** — APPROVED-WITH-AMENDMENTS. ~340 LoC Go: new `inbox.*` adapter (send_proposal/send_message/update_status) with NNN nanosecond suffix (amendment 1) + author-scoped update_status (amendment 2). Per-agent allowlist via JSON config (env-var antipattern rejected). **Blocker**: Zoltan merges. Awaiting merge (today's PROPOSALs)
  • **PROPOSAL-20260808-003 — vault-direct-nas** — NEW, awaiting review. ~75% rewrite of obsidian adapter: drop HTTP-to-plugin, use `os.WriteFile/ReadFile/ReadDir/Remove` directly to NAS filesystem. Config changes: `ObsidianConfig{BaseURL, APIKey}` → `ObsidianConfig{BasePath}`. Removes dependency on Obsidian Local REST API plugin. **Blocker**: Zoltan reviews. Awaiting merge (today's PROPOSALs)
§06

mission-box

obsidian ↗ 13 open
  • **Spec § 6 re-pass for 105 × 65 board** — re-derive ASCII Deliverables
  • **Clean up silk cosmetic issues** — 84 silk_over_copper, 37 Deliverables
  • **Hand-verify J8 copper-edge in KiCad** — J8 sits 1.75 mm above Deliverables
  • **Re-run DRC after schematic sync** — once Ivo syncs from Deliverables
  • **Gerbers** _(added 2026-08-03 12:30 CEST)_ Deliverables
  • **Drill files** _(added 2026-08-03 12:30 CEST)_ Deliverables
  • **Pick-and-place** _(added 2026-08-03 12:30 CEST)_ Deliverables
  • **3D PCB model** _(added 2026-08-03 12:30 CEST)_ Deliverables
  • **Firmware pin mapping** _(added 2026-08-03 12:30 CEST)_ Deliverables
  • **Assembly drawings** _(added 2026-08-03 12:30 CEST)_ Deliverables
  • **BOM — canonical KiCad** _(added 2026-08-03 12:30 CEST; in progress since 13:02 CEST)_ — draft is multi-staged synced; canonical KiCad BOM pending the schematic finishing pass. Doing
  • **3.3 V buck network** — verify TPS62130 package, pinout, inductor, capacitors, feedback values, and layout Parts review — section 8 closes (2026-08-03 19:50 CEST)
  • **Buck inductor value** — verify the provisional 4.7 µH / 6 A choice against the final TPS5430 design calculation Parts review — section 8 closes (2026-08-03 19:50 CEST)
§07

openclaw-persistent-memory

obsidian ↗ 0 open

No open todos in this file.

§08

people

obsidian ↗ 4 open
  • Optional future entries: anyone else Ivo wants to add (no pressure — 6 already exceeds the GOAL acceptance threshold of 5). 3. Real entries
  • Apple Contacts / Google Contacts sync — see GOAL non-goals. 4. Long-term (v2+)
  • Birthday reminders via cron — Fay's 1989-04-11 is the first candidate; one-shot reminder 3 days before via `cron` + Telegram. 4. Long-term (v2+)
  • People-web graph view — use `data.relationships` + Dataview graph or Obsidian Graph view; the "Linked to Ivo" query is a starting point. 4. Long-term (v2+)
§09

personal

obsidian ↗ 3 open
  • **Renew driver's license** _(added 2026-07-24 13:11 CEST)_ Open
  • **Renew prescription** _(added 2026-07-24 13:11 CEST)_ Open
  • **Buy orangina for tinto de verano** _(added 2026-07-25 14:13 CEST)_ Open
§10

wishlist

obsidian ↗ 1 open
  • Decide on naming convention for `where_to_buy` tags (lowercase slug? shop prefix?). [[ivo/projects/wishlist/README]] Open
§11

work-log

obsidian ↗ 4 open
  • Wire morning-routine heartbeat to nudge on missing previous-day entry. Work-Log — TODO
  • Decide whether `projects[]` field needs a canonical taxonomy or stays free-form. Work-Log — TODO
  • Set up Dataview dashboard queries (placeholders in `dashboard.md` — verify they work once 2-3 daily entries exist). Work-Log — TODO
  • Wire auto-carry logic: when creating a new daily entry, copy unchecked todos from the most recent prior entry into `todos[]` frontmatter. Work-Log — TODO