config/memory/2026-02-07.md

4.3 KiB
Raw Blame History

2026-02-07 (Saturday)

Cron Bug Fix 🐛

  • Root cause: recomputeNextRuns() in /app/src/cron/service/store.ts (line ~409 in ensureLoaded) recomputes nextRunAtMs for ALL jobs before runDueJobs() runs. For recurring schedules (cron/every), computeNextRunAtMs() always returns the NEXT occurrence after now, advancing the schedule past the current time. runDueJobs() then finds no due jobs.
  • One-shot at jobs were unaffected because computeJobNextRunAtMs returns the original timestamp for them.
  • Fix: Patched /app/dist/gateway-cli-D6nsc3s0.js — in recomputeNextRuns, added check to skip recomputing if nextRunAtMs <= now (job is due, let it execute first).
  • Impact: All 8 news cron jobs (Der Standard + AI News × 4 times/day) had NEVER fired since creation on Feb 6.
  • Hard-killed gateway (PID 2) to force container restart and load patched JS bundle.
  • Verified: recurring every job fired correctly after patch. Real news jobs scheduled for 14:00 Vienna.
  • TODO: File upstream bug report on OpenClaw GitHub (issue in recomputeNextRuns race condition).

GPD Win 4 Optimization

  • User working on improving performance/watt on GPD Win 4 2025 (HX 370, Bazzite 43, FSR 4 enabled)
  • Discussed: TDP tuning (15-20W sweet spot), core parking via PowerTools Decky plugin, resolution/FSR upscaling, fan curves, frame limiting
  • Core parking: disable SMT, reduce threads to 4 for GPU-bound games
  • BIOS: UMA frame buffer option not available on HX 370 model (others report same)
  • Recommended removing ReShade since FSR 4 handles upscaling
  • ProtonGE: update every 2-4 weeks or when a game has issues

Android → Snapcast Streaming (Reference)

  • No native AirPlay-like solution for Android → Snapcast
  • Best option: DLNA/UPnP — gmrender-resurrect piped into Snapcast server + BubbleUPnP app on phone
  • Alternatives: Bluetooth A2DP sink (range limited), TCP source (no good Android app yet), AirPlay via Android app (hacky)
  • User interested but not urgent — revisit when asked

Cron Bug — Already Fixed Upstream

  • Bug fixed in OpenClaw 2026.2.6 (we're on 2026.2.4)
  • Changelog: "prevent recomputeNextRuns from skipping due jobs when timer fires late by reordering onTimer flow"
  • PR #10776 by @tyler6204
  • User wants to update OpenClaw (asked, not done yet)

Cron Jobs Consolidated

  • 8 news jobs → 2 jobs using multi-time cron expressions: 0 10,14,18,22 * * *
  • Der Standard: job ID 917a96d5-14e7-4057-96e5-d83f2729ed9b
  • AI News: job ID a8991f6b-a31a-4997-bc92-b286573241d4
  • Both confirmed working after fix (14:00 Vienna delivery successful)

Tasks CLI (bin/tasks)

  • Renamed from brain-dump to tasks
  • Data file: memory/tasks.json (was memory/brain-dump.json)
  • Commands: list, add, edit, done, show, nudged, recurring
  • Supports both regular tasks and recurring items
  • --due flag with nudge intervals: now=1d, soon=3d, someday=7d
  • Merged --note and --context into single --context field
  • Design decision: tasks tool is for actionable items ONLY, not knowledge storage. Reference info goes in memory files where memory_search finds it.

Audiobookshelf Integration

  • Built bin/audiobooks CLI tool
  • URL: https://audiobooks.cloonar.com
  • Credentials stored in .credentials/audiobookshelf.env
  • Commands: current, recent, finished, stats, libraries
  • Currently listening: "Die zweite Legion" (Askir Band 2) by Richard Schwartz — 44% done, 8h 46m remaining
  • Purpose: wind-down suggestions ("pick up your audiobook")

Infuse + Jellyfin

  • User uses Infuse app on Apple TV with Jellyfin server
  • Asked about syncing watch state from Infuse → Jellyfin
  • Infuse has native Jellyfin integration that auto-syncs watch state
  • InfuseSync plugin also available (github.com/firecore/InfuseSync)
  • Need to confirm: is user using Jellyfin connection or direct file share?
  • Task added: 47eaa129 — look into Jellyfin playing stats with Intune app on iOS

Improvement Ideas Discussed

  • Better wind-down: concrete suggestions using audiobook/TV data instead of vague nagging
  • Proactive calendar prep: weather, travel time, context from previous visits
  • Email triage: decided not worth it (user still uses mail client)
  • Workout: not needed (has working app already)
  • Decided: keep wind-down in main session (not separate agent) for better context

Calendar

  • Marie besuchen 13:00-17:00 (reminder sent at 11:30 Vienna)