stan
152880f5ab
spotters: 120 website-icon logos for makers and operators without a free Commons logo
Deploy production / deploy (push) Successful in 1m9s
2026-10-25 14:51:33 +00:00
stan
4af041719c
start: wider spotting tile, filter narrows spotting chips
Deploy production / deploy (push) Has been cancelled
2026-10-25 14:24:11 +00:00
stan
27987fb8e7
reading: owner archive / restore / delete / merge for books (⋯ menu on cards, rows and detail pages), archived filter, tombstones so merged ids redirect and the ingest never recreates deleted works, books-quarantine.py for deleted files
Deploy production / deploy (push) Successful in 1m11s
2026-10-25 14:22:40 +00:00
stan
8a8ed1642e
start: trackers section mirroring the header dropdown (same order and icons, spotting chips, f filter)
Deploy production / deploy (push) Successful in 1m11s
2026-10-25 14:21:23 +00:00
stan
11fa8ec006
spotters: fix 500 on detail pages of seen items (timestamp comes back as text); logos script uses small separate Wikidata queries
Deploy production / deploy (push) Successful in 1m10s
2026-10-25 14:10:53 +00:00
stan
0f8db8e432
music: fix tooltip and streak spacing, sort genre tooltip, shorter clock cells
Deploy production / deploy (push) Successful in 1m10s
2026-10-25 14:06:43 +00:00
stan
516bc15545
music: Last.fm-style stats with 7d/30d/1y/all ranges and genres
...
Deploy production / deploy (push) Successful in 1m14s
- Range picker (?range=7d|30d|1y|all) drives every section; the hours chart
covers the whole range (daily for 7d/30d, weekly for 1y, monthly for all).
- Genres from Last.fm artist top tags (music.artist_tags, normalised and
filtered), split by artist listening time, with a per-bucket stacked chart.
- Listening clock, new artists, comparison with the previous period and top
movers, streaks, milestones, top albums with art, rank changes.
- music.play_facts materialized view (refreshed by the app when plays arrive)
plus a per-range cache keep the page fast.
- scripts/music-fetch-tags.ts backfills tags, most-played artists first.
2026-10-25 14:03:39 +00:00
stan
7d6cee26a8
house tracker: contact status per listing (whose turn, last message, viewing) and labelled filters
Deploy production / deploy (push) Has been cancelled
2026-10-25 13:53:33 +00:00
stan
df081b8058
music: backup play log from now-playing samples (origin nowplaying; 30 s or half the track, ignoring pauses and seeks); recently-played takes those rows over with its exact timestamp
Deploy production / deploy (push) Successful in 1m9s
2026-10-25 13:52:38 +00:00
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
ef9524aa0f
trains: schema and migration
Deploy production / deploy (push) Successful in 1m5s
2026-10-24 23:22:20 +00:00
stan
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
stan
3f251145be
wildlife: schema and migration
Deploy production / deploy (push) Successful in 1m4s
2026-10-24 21:54:25 +00:00
stan
59b35c0886
planes: pass maker sources to the maker page
Deploy production / deploy (push) Successful in 1m3s
2026-10-24 20:51:49 +00:00
stan
6696bc7162
planes: pokedex tracker pages, cards, makers, random
2026-10-24 20:10:36 +00:00
stan
cc6c7c8ede
planes: schema and migration
2026-10-24 20:10:36 +00:00
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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
stan
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