d6c5dde2c1
reading: hide book-only stats on the papers/articles tabs, site letter on articles without an image
Deploy production / deploy (push) Successful in 1m10s
2026-10-25 13:48:05 +00:00
e31e1be73f
reading: split the book tracker into books, papers and articles (kind column + migration classifying 20 papers), segmented tabs with counts, article cards that open the link, owner + add link with server-side unfurl, kind switch on detail pages, /trackers/reading alias
Deploy production / deploy (push) Successful in 1m8s
2026-10-25 13:42:51 +00:00
7b5faf6e74
start: collapsible link groups (remembered per browser), links filter (f, Enter opens first match), brand marks + saved favicons for bookmarked sites
Deploy production / deploy (push) Has been cancelled
2026-10-25 13:41:59 +00:00
628e5cb9b3
music poller: a 429 on recently-played pauses only the play log for the full Retry-After; now playing keeps polling every 5 s; player 429s honour Retry-After up to 24 h
Deploy production / deploy (push) Successful in 1m8s
2026-10-25 13:25:25 +00:00
253cd69424
spotters: most-active-in sort with country/region selector, collection tracking (seen marks, progress, filters), refresh scripts score activity and report new NL entries
Deploy production / deploy (push) Has been cancelled
2026-10-25 13:24:37 +00:00
3f294df337
music: hours tooltip opens on tap (focus no longer closes it straight away)
Deploy production / deploy (push) Successful in 1m7s
2026-10-25 13:21:28 +00:00
20ad42b247
handleError for SvelteKit 3: ids only for unknown errors, compact 404 log line; error page suggestions prefer the real parent over the section
Deploy production / deploy (push) Successful in 1m10s
2026-10-25 13:15:41 +00:00
92d6da959d
daisy-hook: accept a full "Name: value" header setting, redact the key from logs, retry once; start: brand icons on link and service tiles (trimmed simple-icons + saved favicons, monogram fallback)
Deploy production / deploy (push) Successful in 1m7s
2026-10-25 13:12:16 +00:00
a89a187346
Global error page: ErrorView with per-status copy, did-you-mean suggestions, error ids from handleError, static error.html; 404 instead of 500 for bad progress ids; tolerate full header line in DAISY_TASK_WEBHOOK_HEADER and stop logging raw fetch errors
Deploy production / deploy (push) Successful in 1m9s
2026-10-25 13:10:51 +00:00
f86c8ef294
spotters: activity (per-country score) and seen (collection) tables for cars, planes, trains, wildlife
Deploy production / deploy (push) Successful in 1m7s
2026-10-25 13:09:02 +00:00
85c6f89e36
music: styled hover/focus/tap tooltip with exact hours and date on the hours-per-day chart
Deploy production / deploy (push) Has been cancelled
2026-10-25 13:08:06 +00:00
cc34f5751b
spotters: fix random 404 on client navigation (random is a page load, not an endpoint shadowed by [slug]); square logo tiles everywhere
Deploy production / deploy (push) Has been cancelled
2026-10-25 13:07:26 +00:00
45943543c2
trackers: one-click spotting links: header flyout (hover/focus, delayed close, side-aware), chips on the spotting tile, mobile sub-links
Deploy production / deploy (push) Successful in 1m8s
2026-10-25 12:18:33 +00:00
d8490ce94f
trackers: group cars, trains, planes and wildlife under one spotting tracker with /trackers/spotting landing page and category switcher
Deploy production / deploy (push) Successful in 1m9s
2026-10-25 12:08:38 +00:00
5226ed7fec
trackers: colourful tracker icons on /trackers and home tiles, 3/4-column desktop grid with lift hover
Deploy production / deploy (push) Successful in 1m9s
2026-10-25 11:27:56 +00:00
704880dc98
trains: stricter Commons photo matching (category files must name the type; no maps, class interiors, trucks)
Deploy production / deploy (push) Successful in 1m9s
2026-10-25 00:13:30 +00:00
5f940e8196
trains: pokedex pages (builders, operators, countries, detail, random) and registrations
Deploy production / deploy (push) Successful in 1m9s
2026-10-25 00:11:50 +00:00
8c0fc74283
trains: Wikidata/Wikipedia import, Commons photos and refresh scripts
Deploy production / deploy (push) Successful in 1m13s
2026-10-25 00:09:07 +00:00
ef9524aa0f
trains: schema and migration
Deploy production / deploy (push) Successful in 1m5s
2026-10-24 23:22:20 +00:00
8515cf0e9c
wildlife: photos script without response cache (it outgrew JSON.stringify)
Deploy production / deploy (push) Successful in 1m5s
2026-10-24 22:42:26 +00:00
602ea9c8e1
wildlife: fetch English names without the NL place (it localised them to Dutch)
Deploy production / deploy (push) Successful in 1m6s
2026-10-24 22:27:16 +00:00
42b6b6568a
wildlife: pokedex pages (list, groups, group, species detail, random) and registrations
Deploy production / deploy (push) Successful in 1m4s
2026-10-24 22:04:15 +00:00
ba44365c71
wildlife: iNaturalist/Wikidata/GBIF import, CC photos and refresh script
Deploy production / deploy (push) Successful in 1m8s
2026-10-24 21:58:35 +00:00
3f251145be
wildlife: schema and migration
Deploy production / deploy (push) Successful in 1m4s
2026-10-24 21:54:25 +00:00
59b35c0886
planes: pass maker sources to the maker page
Deploy production / deploy (push) Successful in 1m3s
2026-10-24 20:51:49 +00:00
eccae362ec
planes: stricter photo matching, skip company articles, payload-not-pax
Deploy production / deploy (push) Successful in 1m8s
2026-10-24 20:26:13 +00:00
6696bc7162
planes: pokedex tracker pages, cards, makers, random
2026-10-24 20:10:36 +00:00
2259965a28
planes: wikidata/wikipedia import, commons photos and refresh script
2026-10-24 20:10:36 +00:00
cc6c7c8ede
planes: schema and migration
2026-10-24 20:10:36 +00:00
6249e6daeb
start: server links -> stan-ovh (Tailscale), drop Webmin from home-collector
Deploy production / deploy (push) Successful in 1m4s
2026-10-24 18:41:53 +00:00
085a30bec8
pc: PC setup tracker at /trackers/pc on the hardware schema
...
Deploy production / deploy (push) Successful in 1m4s
- model the existing hardware schema in Drizzle (devices, components, new sensitivities)
- idempotent reconciling migration: new columns, checks, setup_overview view, grants, meta.tables
- seed: main PC labels/hostnames, planned AMD X3D + RTX 5090 build, stan-ovh (OVH RISE-S),
other devices, sensitivity placeholders (no invented cm/360)
- owner-only add/edit via modals; public view hides notes/order numbers
- trackers dropdown entry + icon, seo/title/sitemap, owner write prefix
2026-10-24 17:55:48 +00:00
8442d59b68
cars: brand logos everywhere (search cards, brand grid, model headers), stricter logo matching + curated fixes, logo refresh in cars-photos
Deploy production / deploy (push) Successful in 2m24s
2026-10-24 17:43:47 +00:00
fac49b57ba
music: near-realtime now playing (currently-playing every 5 s while playing, 30 s idle backoff, Retry-After, recent plays ~10 s after a track change, holder-based lease) and a public SSE stream /api/listening/stream feeding the listening card live with client-side progress
Deploy production / deploy (push) Successful in 2m35s
2026-10-24 17:28:33 +00:00
7636f0b2bc
cars: keep MAZDA2/JAECOO7 names (no false typo strip), canonical upload.wikimedia.org thumbs, tidier gallery captions/credits
Deploy production / deploy (push) Successful in 2m34s
2026-10-24 16:54:14 +00:00
bf0a1e1d2a
cars: Wikimedia Commons photos (cars.photos, card heroes, model gallery + lightbox, brand hero/logo), cars:photos + cars:refresh with --report-new, fold duplicate names (Golf VI, Peugot, Mustang Mach 1, Model 3/Y, i10/i30, Ceed, Lynk & Co)
Deploy production / deploy (push) Successful in 3m0s
2026-10-24 16:44:38 +00:00
Daisy
0612270545
chore: redeploy to load DAISY_TASK_WEBHOOK env
Deploy production / deploy (push) Successful in 52s
2026-10-24 16:30:50 +00:00
901d12f71d
Header tiles: Trackers dropdown, dashboard and quick add as hoverable monochrome tiles
...
Deploy production / deploy (push) Successful in 2m48s
Lift + tint on hover, visible focus ring, aria-current for the dashboard,
colourful icons on a black-and-white surface, prefers-reduced-motion respected.
2026-10-24 16:17:27 +00:00
771f64c168
drizzle: chain osu_match_cache snapshot after tasks_auto_handle
Deploy production / deploy (push) Has been cancelled
2026-10-24 16:16:19 +00:00
46703f1a6c
map finder: quick lists from my listening (top/recent/now/Spotify top/liked), Artist - Title without Spotify, owned playlists via the user token, rich beatmap cards (cover, mapper, status, BPM, length, star chips, preview, osu!direct), mode/status/star filters, DB result cache (music.osu_match_cache)
Deploy production / deploy (push) Has been cancelled
2026-10-24 16:15:56 +00:00
0aa14cebf3
Quick add task from the header (owner): modal, g t shortcut, auto_handle + Daisy webhook
...
Deploy production / deploy (push) Has been cancelled
- + button next to Dashboard (desktop and mobile sheet), lazy-loaded native <dialog>
- POST /trackers/tasks/quick inserts source 'quick-add', notes, due date, priority
- tasks.tasks.auto_handle (default false) with a Daisy badge in the tracker
- DAISY_TASK_WEBHOOK_URL/KEY/HEADER: fire-and-forget POST {task_id, title}, 3 s timeout
2026-10-24 16:13:45 +00:00
3903317a59
spotify: manual 302 for external redirects in /api/spotify/connect (kit refuses redirect() to external origins)
Deploy production / deploy (push) Has been cancelled
2026-10-24 16:12:10 +00:00
4738f10ad1
header: trackers menu as a 2-column grid (desktop and mobile) with a coloured inline-SVG tile per tracker
...
Deploy production / deploy (push) Successful in 2m41s
TrackerIcon + #lib/tracker-icons: one gradient rounded tile and a few stroke paths per
tracker (tasks, money, books, cars, music, health, groceries, houses, energy, games, skins,
pets, lists), distinct colours, readable in light and dark. No icon library. Test checks
every tracker has a unique tile and tasks/money/books stay first.
2026-10-24 16:06:39 +00:00
bc58e97776
start: show the normal site header on /start (with the owner dashboard button, highlighted there); no footer on the new-tab page
...
Deploy production / deploy (push) Successful in 2m36s
/start is no longer immersive, so it loads the lazily imported SiteChrome like other pages.
Only the book reader still skips the chrome. hidesFooter() keeps the footer off /start.
2026-10-24 16:03:06 +00:00
b757269151
music: self-hosted scrobbler (Spotify poller, Last.fm + streaming-history importers, /trackers/music, homepage listening card)
...
Deploy production / deploy (push) Successful in 2m37s
- music schema: artists/albums/tracks (+album art), plays with source + dedupe, now_playing,
spotify_auth, import_state; plays_deduped view hides Last.fm scrobbles Spotify also has
- in-app Spotify poller (60s, leased) started from hooks init; no new role or env needed
- /api/spotify/connect + callback (owner only), /trackers/music public stats
- scripts: music-poll, music-import-lastfm (resumable), music-import-history
- deploy/music-collector: optional host timer with its own role
2026-10-24 15:57:40 +00:00
45c124a365
cars: default to most-common-in-NL order; dex numbers oldest first with unknown years last (--renumber)
Deploy production / deploy (push) Successful in 2m41s
2026-10-24 15:47:44 +00:00
9e30e4246f
cars: import handles models without years, keeps roman numerals upper-case; don't cache an empty overview
Deploy production / deploy (push) Has been cancelled
2026-10-24 15:46:25 +00:00
a04e5faebe
houses: zero-pad Leefbaarometer grid cell ids (cells west of x=100 km, e.g. Zevenhuizen, Rotterdam)
Deploy production / deploy (push) Has been cancelled
2026-10-24 15:45:26 +00:00
113eb54cd9
houses: Leefbaarometer liveability per listing (PDOK geocode + LBM 2024 grid/buurt), min-score filter and sort; store every regional listing (no price caps at scrape time)
Deploy production / deploy (push) Successful in 2m33s
2026-10-24 15:40:32 +00:00
e95b7da1e3
cars: car pokedex tracker (brands, models, US variants from RDW + fueleconomy.gov), import script, search/filter UI, model pages
Deploy production / deploy (push) Has been cancelled
2026-10-24 15:39:08 +00:00
cc4b10f239
site: owner-only dashboard link in header, mobile menu and homepage (g then d from any page); /start skips the site chrome JS
...
Deploy production / deploy (push) Successful in 2m56s
- Header/footer moved to #lib/components/SiteChrome.svelte, returned by a universal
+layout.ts load only for non-immersive pages, so /start and the book reader never
download icon libraries, dropdowns or the bits-ui Sheet. /start: 36 -> 18 JS files,
133 -> 78 KB gzip.
- Header logo is a hashed asset (inlined), so it is cached with the build.
- inlineStyleThreshold 4096: tiny page/component CSS is inlined into the HTML.
- Umami is not loaded on /start.
2026-10-24 15:35:38 +00:00