e33afe5387
notes: private Obsidian vault tracker at /trackers/notes
...
Deploy production / deploy (push) Successful in 1m19s
Vault files stay the source of truth (bind-mounted read-write at /notes):
atomic writes chowned to the vault owner, hash-checked saves (409 on a
newer file), deletes to .trash. notes.* is a full-text/link index kept
current by a recursive watcher plus a 60s rescan; live updates over the
owner-only /ws/notes channel (paths and hashes only). Wikilinks, embeds,
backlinks, tags, callouts, image paste. Owner-only everywhere (404).
2026-10-26 01:28:57 +00:00
6654c0990a
worldwide todo list: zod namespace import (the named import is undefined under bun in the Docker test step)
Deploy production / deploy (push) Has been cancelled
2026-10-26 01:28:23 +00:00
5e812271e1
worldwide todo list: public todo list of 68 real, sourced problems (planet to street) at /projects/worldwide-todo. worldtodo schema (categories, tasks, change_requests), idempotent seed on deploy, public add/edit/delete requests with Turnstile + salted daily-rotating IP-hash rate limit, owner-only review queue (approve, edit & approve, reject) with live updates over /ws/worldtodo(-owner), JSON API, detail pages with OSM map and history; listed in projects, header, /start and sitemap
Deploy production / deploy (push) Failing after 9s
2026-10-26 01:26:17 +00:00
d5e2ec346b
money: rent detection matches whole words ("living with parents" is not the rent)
...
Deploy production / deploy (push) Failing after 1m6s
The scenario move date came from the first Joint item matching /rent|huur/,
which since the "Groceries (living with parents)" item matched that one, so
the scenarios never moved out (no rent, the pre-move contribution forever).
2026-10-26 01:20:39 +00:00
807a6b3104
money: day-by-day forecast with real payment dates
...
The wealth forecast now runs per day instead of per month, so it shows the
same sawtooth as the actual history:
- recurring items hit on the day the bank history shows (most common day of
the last four months, clamped to month end), else their start date
- "every N weeks" items (Basic-Fit, haircut) run on an exact N-day cadence
from the last charge; yearly items on their renewal date
- salary and its extras (holiday pay in May, 13th month in November, bonus,
settlement) land on the payday from history (contract 25th as fallback),
moved to the Friday before a weekend; toeslagen move to the Monday after
- variable budgets are spread per day, the vacation budget over Jul-Aug
- excess above the buffer is invested the day after payday; returns
compound daily
- long horizons stay fast (~35 ms for 100 years): the chart thins each
pixel bucket to its low and high
2026-10-26 01:20:39 +00:00
5d732fc750
Tasks goals: auto metrics (tasks.goals.metric_key/metric_detail/metric_computed_at, tasks.metric_sources cache). €10k/month goal gets a live progress bar: Revolut recurring income (excl. Zorgtoeslag/Joint) computed on page load + trailing-12m paid Moneybird invoices / 12 cached by a daily goal-metrics user timer; stacked bar with %, amount vs target, salary/side-income breakdown, last-updated
Deploy production / deploy (push) Failing after 1m14s
2026-10-26 01:17:29 +00:00
5c6ce75409
osu! goals: actually pass my play counts into the refresh (most-played list, weekly or on force)
Deploy production / deploy (push) Successful in 1m13s
2026-10-26 01:00:39 +00:00
5e10ecf525
osu! goals: real play counts from my most-played list (weekly), BPM range from the .osu timing points
Deploy production / deploy (push) Successful in 1m14s
2026-10-26 00:44:12 +00:00
9f8d54d9e3
osu! goals: games.osu_goals (maps to pass/FC from the old list) with osu! API v2 metadata (stars NM/DT/HR/HD, BPM, length, AR/OD/CS/HP, combo, objects, tags, community tags, streams from .osu), my best scores and pass/FC via hourly in-app refresh; Goals section on /trackers/games/osu; retired list URL 301s there
Deploy production / deploy (push) Successful in 1m15s
2026-10-26 00:36:06 +00:00
45841d6f6c
stats: core-7 economy page with CPI index levels, rebase and categories
...
Deploy production / deploy (push) Successful in 1m13s
- /stats/economy defaults multi-country charts to CAN KOR CHN JPN USA NLD CUW,
with add-a-country chips and an EU 27 comparison line
- CPI index levels rebased to a chosen base year, index/YoY toggle,
categories (food, energy, housing, core) where the source has them
- new no-key collectors: oecd (CPI categories, 10y yields), statcan (CPI);
bis WS_LONG_CPI, FRED US CPI categories, Eurostat prc_hicp_minr, WB FP.CPI.TOTL
- Canada added as a region; CBS Curacao fallbacks for growth/unemployment
- timers stats-oecd and stats-statcan
2026-10-26 00:34:27 +00:00
28140bd425
lists: movies-shows-to-watch moves into /trackers/movies (301 to the watchlist once archived)
Deploy production / deploy (push) Successful in 1m13s
2026-10-26 00:31:45 +00:00
71e015d1d0
Add movies & TV tracker: movies schema, Netflix/Letterboxd/Plex/JSON/recs importers, TMDB matching, stats, owner visibility
2026-10-26 00:31:23 +00:00
75571bbfe0
lists: retire scientific-papers (items live in /trackers/books?kind=papers) and cars-trains-planes-to-spot (-> /trackers/spotting); archived list URLs 301, books-to-read too
Deploy production / deploy (push) Successful in 1m15s
2026-10-26 00:24:27 +00:00
d71e39f40a
stats: world opinions moves to /stats/opinions/world, the energy tracker merges into /stats/energy (live NED section), 301s from /projects/world-opinions and /projects/energy, tracker-style icons for the stats header, nav, sub-tabs and home grid
Deploy production / deploy (push) Successful in 1m18s
2026-10-26 00:16:08 +00:00
be3473caa0
pubg map: built-in intel layers (vehicle spots, drops, loot density, Blue Chip towers, secret rooms) per map
...
Deploy production / deploy (push) Successful in 1m12s
Read-only layers from static/pubg-intel/<map>.v1.json (scripts/build-pubg-intel.py):
positions from pubg.gs (game level files), drops from guides, secret rooms and Deston
keys as approximate rings on the named place. Layer panel (K), per-player choices in
localStorage, drawn below room markers; clicks still place markers.
2026-10-26 00:05:46 +00:00
3d3f008037
pc tracker: Megekko new build (9950X3D/X870E), dated ordered/leaving badges, future slider
Deploy production / deploy (push) Successful in 1m15s
2026-10-25 23:59:15 +00:00
cf0fec973c
AI tracker: /trackers/ai with public news, owner-only bots and usage; ai schema (news_items, bot_status, usage_entries); idempotent import scripts; preflight ai grants check
Deploy production / deploy (push) Has been cancelled
2026-10-25 23:58:39 +00:00
9b21220280
stats: /stats/history and History, Politics and Culture sections on NL, Gouda, Curaçao, US and KR pages (step 4)
...
Deploy production / deploy (push) Successful in 1m13s
Long-run charts (Maddison, HYDE, UN via OWID; CBS and Pew religion), a filterable
sourced timeline, Wikidata office holders and turnout, Nager.Date holidays, UNESCO
sites, Wikidata people by sitelinks, curated food and cultural exports. Wikidata
labels now fall back to mul.
2026-10-25 23:39:34 +00:00
0088e5202e
stats: history and culture collector (step 4): events, offices, people, holidays, UNESCO, religion, long-run series
Deploy production / deploy (push) Failing after 1m0s
2026-10-25 23:25:46 +00:00
fa3aa25f0b
house-scrape: re-check huispedia, huislijn, huurportaal and rentola rows and mark clearly gone ones removed
Deploy production / deploy (push) Successful in 1m15s
2026-10-25 23:14:42 +00:00
241b90d2f9
stats elections: distinct colour for the SP family
Deploy production / deploy (push) Successful in 1m15s
2026-10-25 22:48:55 +00:00
0fe0d36f87
PUBG drop map: live squad map with WebSocket rooms
...
Deploy production / deploy (push) Successful in 1m15s
- server.js wraps Bun.serve to add /ws/<channel> upgrades (same server and port) and
serve the map tiles from the host mount; Dockerfile now runs bun ./server.js
- ws hub (channel registry, origin check) + pubg-map channel: rooms by unguessable
code, validated + rate-limited messages, per-room write queue, presence
- games.pubg_rooms / pubg_matches / pubg_markers; per-match sessions with history
- /trackers/games/pubg/map hub (owner: rooms, landings over time, history) and
/trackers/games/pubg/map/<code> fullscreen Leaflet map (all 11 maps)
- deploy-remote.sh bind-mounts ~/pubg-maps; scripts/build-pubg-tiles.py rebuilds it
2026-10-25 22:46:30 +00:00
d93374bca2
stats step 3 pages: /stats/elections (NL 1918→, turnout, seats, Gouda per polling station, US by state) and /stats/opinions (NL/US/KR polls, Eurobarometer issues and trust, WHR, Google Trends, GDELT themes, CHES and V-Party); nav, cards, sitemap; scatter in the chart wrapper
Deploy production / deploy (push) Successful in 1m15s
2026-10-25 22:44:09 +00:00
42c9351ebd
stats step 3: elections, party positions and opinion feeds (schema, collectors, timers); world-opinions data moved into stats.wo_*
Deploy production / deploy (push) Successful in 1m12s
2026-10-25 22:16:25 +00:00
031ee4baf2
stats §8: Curaçao from ILOSTAT (SDMX), OWID, UN SDG 531, UN Comtrade 531 (cwintl + weekly timer), EU trade with CW (Eurostat ext_lt_maineu); CBS Curaçao LFS file pick fix; Curaçao detail panels on /stats/countries/CUW
Deploy production / deploy (push) Successful in 1m10s
2026-10-25 21:47:06 +00:00
a6b4f9931d
pc: drop shared brand from grouped card label
Deploy production / deploy (push) Successful in 1m15s
2026-10-25 21:39:11 +00:00
ff1520ae8b
stats §8: CBS Curaçao collector (topic-page scrape, sha256 manifest, CPI since 1970 from PDF, GDP by industry, government finance, population since 1900, LFS, tourism) into cw_cbs_* + stats.obs region CUW; cw_cbcs_bop for manual uploads; weekly timer
Deploy production / deploy (push) Has been cancelled
2026-10-25 21:38:30 +00:00
27a15f0428
pc: grouped ×N cards list each item on its own line, shared brand in label
Deploy production / deploy (push) Successful in 1m14s
2026-10-25 21:34:33 +00:00
fa58e5c661
stats B11: EP-Online energy labels (monthly total file → homes per label for NL, Gouda, Gouda PC4s; aggregates only), stats.ep_label_agg, monthly timer with key from ~/.config/stats/ep-online.env, charts on /stats/energy and /stats/gouda
Deploy production / deploy (push) Has been cancelled
2026-10-25 21:28:37 +00:00
2a4466cb82
stats: /stats/countries comparison and /stats/countries/[iso3] profiles (Curaçao via World Bank), more WB indicators, Countries + Curaçao cards, nav/sitemap/start links
Deploy production / deploy (push) Successful in 1m13s
2026-10-25 21:22:20 +00:00
d19313035f
stats: Eurostat pre-2007 household energy bands (nrg_pc_204_h/202_h folded into nrg_pc_204/202), stitched on /stats/energy; IMF revenue/spending from Fiscal Monitor codes
Deploy production / deploy (push) Successful in 1m10s
2026-10-25 21:14:50 +00:00
8958d3ff8f
stats step 2: World Bank, IMF WEO, OWID, Energy-Charts, Rijksfinanciën, US Treasury, USAspending collectors + tables, timers
Deploy production / deploy (push) Successful in 1m10s
2026-10-25 21:05:51 +00:00
7e905b1651
stats: index neighbour growth from 2016 (after mergers), clearer tariff and levy labels
Deploy production / deploy (push) Successful in 1m9s
2026-10-25 20:56:29 +00:00
76bfb3dcec
stats: /stats overview, economy, energy and Gouda pages; CBS series map; nav, homepage, /start and sitemap links
...
Deploy production / deploy (push) Successful in 1m10s
- CBS_SERIES: CPI, household tariffs (2007-now), energy balance, renewables, heat pumps,
solar, cars, population (monthly, since 1942, components), house prices, housing stock,
municipal levies for Gouda and its neighbours
- shared StatChart/Kpi/chart helpers with per-chart source attribution
- drop Eurostat nrg_pc_20x_h (404; CBS covers that history)
2026-10-25 20:50:47 +00:00
6dcbcfee25
groceries stats: fix array/json params for the app client (live store filter 500), CPI axis, header spacing
Deploy production / deploy (push) Successful in 1m11s
2026-10-25 20:48:00 +00:00
8e35a58095
groceries stats: quote day alias in shrinkflation query
Deploy production / deploy (push) Successful in 1m10s
2026-10-25 20:42:32 +00:00
a6ef263c7e
groceries: stats page with nightly snapshot (battles, basket, promos, CPI, range)
Deploy production / deploy (push) Successful in 1m19s
2026-10-25 20:39:35 +00:00
8ef291f586
stats: new public stats schema (source/series/obs/region/fetch_run + raw CBS, Eurostat, FRED, BIS tables) and the stats collector (scripts/stats-fetch.ts); preflight checks the stats tables
Deploy production / deploy (push) Failing after 54s
2026-10-25 20:27:21 +00:00
902b1cadd5
header: sharper moon logo (112px webp from full-res photo, tight crop); regenerate favicons/app icons with tight moon crop
Deploy production / deploy (push) Successful in 1m12s
2026-10-25 20:26:05 +00:00
3ad13e5828
games: active vs non-active games (games.library.active, owner toggles on the dashboard and each game ⋯ menu; nothing deleted). Header flyout and mobile menu list every game split into active / non-active; /trackers and home tiles show active chips and open both sections on hover; /start shows active with a non-active toggle. Games dashboard moved from /projects/game-tracker to /trackers/games (dashboard of active games only; old URL and /credits 301); deep trackers stay put
Deploy production / deploy (push) Successful in 1m13s
2026-10-25 20:23:15 +00:00
60370d4572
groceries: relevance-ranked search (plain/basic products first)
...
Deploy production / deploy (push) Successful in 1m13s
- search.ts: score on the core name (brand/size stripped): exact or query+base suffix
(kipdij+filet), head-final compounds, prefix, inside; penalties per extra word and per
flavour/processing word (search-words.ts, editable); bonuses for store brands, the
query's dominant category, store count, favourites; trigram tiebreak
- groceries.synonyms table (seeded: kipdij/kippendij, pasta → spaghetti, …) expands queries
- list rows show all pack sizes of a group; group picker uses the same ranking
- scripts/groceries-search-eval.ts prints top results + latency; preflight now 8 tables
2026-10-25 20:20:34 +00:00
27abff569c
start: drag and drop links to reorder within a section or move them to another section (view and edit mode); orderLinks can also change the dragged link's section
Deploy production / deploy (push) Successful in 1m14s
2026-10-25 20:03:54 +00:00
1cfbe6486a
groceries: Action importer (allowed category listings: price, unit price, EAN from image name; food/drinks, personal care, pets, household consumables) + store row
Deploy production / deploy (push) Successful in 1m13s
2026-10-25 19:40:53 +00:00
0e98acd0a8
groceries: Lidl — search API only public for CDN-cached URLs (401 otherwise); later pages best-effort, off the nightly run
Deploy production / deploy (push) Successful in 1m13s
2026-10-25 19:31:39 +00:00
707f07efd4
groceries: mobile-first tracker redesign — compact rows per product group (cheapest store badge, unit price, spread, promo), tap to compare stores; category tree (23 tops, subcategories, icons/colours) with chips, store tiles, sort and non-food toggle; owner shelf prices (manual source with date, photo, note)
Deploy production / deploy (push) Failing after 1m1s
2026-10-25 19:10:10 +00:00
67d74f39b8
groceries: ALDI importer (category pages SSR Algolia hits, offers; no EANs) + store row
Deploy production / deploy (push) Successful in 1m13s
2026-10-25 19:04:37 +00:00
cce6ec3f2b
groceries: Vomar importer (public product gateway, EANs; regular prices only) + store row
Deploy production / deploy (push) Successful in 1m21s
2026-10-25 18:57:21 +00:00
1bab96c20d
games: chain the split migration snapshot after hoogvliet; games flyout tooltip shows the full game name
Deploy production / deploy (push) Has been cancelled
2026-10-25 18:57:06 +00:00
e4162d3a78
games: split Call of Duty into one entry per title and Pokémon into one per generation (remakes and spin-offs separate), full names, official logo for each (Steam icons / English logos); data migration moves bo2 status+aliases to black-ops-2; /trackers/games/bo2 and /pokemon redirect; three-column games flyout
Deploy production / deploy (push) Successful in 1m16s
2026-10-25 18:54:50 +00:00
942c436d03
groceries: Hoogvliet importer (sitemap SKUs + storefront GraphQL, EANs, promo labels) + store row; Lidl retries transient CDN 401s
Deploy production / deploy (push) Successful in 1m24s
2026-10-25 18:52:01 +00:00