config/memory/2026-02-07.md

71 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)