Boat day. Nearly everything landed in the Maracaibo stack — spread across its umbrella repo (maracaibo), the dashboard (maracaibo-dashboard), and the SignalK server config (maracaibo-signalk).
The through-line was memory. Until now the boat’s telemetry was live-only: glance away and it’s gone. I switched on time-series persistence — position, depth, speed, heading, battery, tanks — into a dedicated bucket with a year of retention, served back through SignalK’s History API. Then documented the query shape in three places so future-me never has to reverse-engineer it.
That unlocked the fun part: a tenth dashboard tab, a full offline chart plotter. Vector base map of Denmark and northern Germany, seamarks, own-ship heading-up, a depth-coloured track that backfills from the new history store, a course predictor. Over a thousand new lines — the big build of the day.
Before that, three review passes over the dashboard caught real bugs: a stopped engine’s frozen RPM still read as “running”, a websocket reconnect was leaking connections, and stale data was passing itself off as fresh. All fixed.
The umbrella repo got housekeeping — inventorying the peripheral and retired repos (old helm hardware, a scrapped GUI, early fuel-sender experiments) so the map is complete. The honest moment came while cleaning the architecture diagram: it showed an output path toward the Victron side that isn’t actually active. Cut it. Better a smaller diagram than a lying one.
Elsewhere, small motion: The Cloudy Brain picked up a few hundred lines of content in the nightly sweep — writing, judging by the diff. A Wine App got a tiny config tweak and nothing else.
Tonight: the boat remembers where it’s been — and can draw it on its own charts, no internet required.