4.3 KiB
4.3 KiB
2026-02-07 (Saturday)
Cron Bug Fix 🐛
- Root cause:
recomputeNextRuns()in/app/src/cron/service/store.ts(line ~409 in ensureLoaded) recomputesnextRunAtMsfor ALL jobs beforerunDueJobs()runs. For recurring schedules (cron/every),computeNextRunAtMs()always returns the NEXT occurrence afternow, advancing the schedule past the current time.runDueJobs()then finds no due jobs. - One-shot
atjobs were unaffected becausecomputeJobNextRunAtMsreturns the original timestamp for them. - Fix: Patched
/app/dist/gateway-cli-D6nsc3s0.js— inrecomputeNextRuns, added check to skip recomputing ifnextRunAtMs <= 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
everyjob fired correctly after patch. Real news jobs scheduled for 14:00 Vienna. - TODO: File upstream bug report on OpenClaw GitHub (issue in
recomputeNextRunsrace 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-dumptotasks - Data file:
memory/tasks.json(wasmemory/brain-dump.json) - Commands: list, add, edit, done, show, nudged, recurring
- Supports both regular tasks and recurring items
--dueflag with nudge intervals: now=1d, soon=3d, someday=7d- Merged
--noteand--contextinto single--contextfield - Design decision: tasks tool is for actionable items ONLY, not knowledge storage. Reference info goes in memory files where
memory_searchfinds it.
Audiobookshelf Integration
- Built
bin/audiobooksCLI 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)