fd216ecd3d
community: a proposal on your board arrives as a toast, carried sealed through the inbox
KeelrLeek2026-09-03 12:16:33 -05:00
4d03cf849b
community: every ledger takes its write lock, so the inbox check can no longer land on top of a friend accept
KeelrLeek2026-09-03 11:51:35 -05:00
07227a90a7
the freenet layer: the app supervises its own peer, so a new release no longer quietly ends it
KeelrLeek2026-09-03 11:12:41 -05:00
733e3b57a8
community: one writer at a time per ledger, and an inbox publish that bumps from what the network really holds
KeelrLeek2026-09-03 11:12:41 -05:00
0846b39d45
community: the library overlap shelf, their share folders against your albums on this device after a browse
KeelrLeek2026-09-02 17:08:25 -05:00
bf81792c49
the proposal board: a Space's pinned playlist takes signed proposals, and an accept republishes it
KeelrLeek2026-09-02 16:33:38 -05:00
8b511b20e7
community: spaces, an owner-signed roster with epochs, a bounded window of signed lines, bodies sealed to a rotating key when private
KeelrLeek2026-09-02 15:50:18 -05:00
4378c4c0cc
community: the encrypted inbox, friend requests and shares travel sealed to a box key when the other side has published one
KeelrLeek2026-09-02 15:26:30 -05:00
13c44f731a
community: shared playlists, a signed revision and a pointer on the network, a reference over soulseek, an import through the normal door
KeelrLeek2026-09-02 15:02:06 -05:00
984738135a
community: friends, two signed answers on one request carried over soulseek, one answer is only ever pending
KeelrLeek2026-09-02 14:40:33 -05:00
6ed6f5b8f8
community: the soulseek link proof, one message to yourself links the account and one question links anyone who answers
KeelrLeek2026-09-02 14:27:54 -05:00
5160d97a5f
community: the drawer asks a peer for its card and the server for interests, and discover gets the similar-users shelf
KeelrLeek2026-09-02 14:03:26 -05:00
64a7561750
community absorbs the hub: search, transfers and browse ride the same pills, one entry in the sidebar
KeelrLeek2026-09-02 13:46:57 -05:00
8c25f93afe
community: one area for the people on both networks, and the hub grows search tabs, a folder column and a queue column
KeelrLeek2026-09-02 13:43:16 -05:00
6dce4e2ac7
the freenet layer: adapter, persona and profile services, the contracts bundled as commitments
KeelrLeek2026-09-02 13:43:16 -05:00
63a0357651
the soulseek hub: the whole Qt client as one area, wired to the wire
KeelrLeek2026-08-31 15:13:53 -05:00
913289a297
the panel tops speak one language: 28px discs, white glyphs, one veil
KeelrLeek2026-08-31 15:13:24 -05:00
2d8c385a2e
the sourcing notifier is a toast: the glass bar hands rstatus to the player-bar slot
KeelrLeek2026-08-31 11:46:27 -05:00
0670b8654a
hero commits wait for scroll calm, and a dev tripwire watches the rides
KeelrLeek2026-08-31 11:46:17 -05:00
e4a2bb6075
the search panel detaches and frosts: 46px down, blur(40), and the rest of the acrylic recipe
KeelrLeek2026-08-31 11:46:01 -05:00
75a95405a8
the acrylic rides move drags: only a real resize parks the glass at blur
KeelrLeek2026-08-31 11:45:46 -05:00
5e2ad18269
the periscopes never built on this machine: bounded idle gate, and the fog rides the scroller's timeline instead of chasing it
KeelrLeek2026-08-31 05:53:42 -05:00
15746893a9
restoreSession rebuilds the waveform and the cache badge from the backend, and a direct album arrival gets its artist portrait
KeelrLeek2026-08-31 05:53:18 -05:00
73a677d35c
one listener bar, five surfaces: the search page's pill wins and the heat wash is retired
KeelrLeek2026-08-31 05:53:01 -05:00
385b598170
glass survives the window gestures: the accent rides the modal loop and the maximize animation gets a bracket
KeelrLeek2026-08-31 05:52:43 -05:00
547cee6649
dark glass gets a surface ladder, and the 200-750ms stalls are dead - two sessions of uncommitted work landing together
KeelrLeek2026-08-27 17:24:20 -05:00
7ab678fd22
artist page glass: the hero fades INTO the frost - the burial moves from the sheet's paint to the photo's own alpha (gfade frame+counter: in-flow pass-throughs wrapping every photo layer, seam mirror excluded; a STATIC inverted-smoothstep mask parked at --fog-rest rides the sheet's glide on the frame while the counter rides the exact inverse, so the photo stays pinned, the mask never animates, and photo-visible-fraction equals the base fade at every pixel by construction); under glass the sheet's band goes transparent and its tail lands on the frost tint, so the same dissolve now lands on desktop glow - solid mode byte-identical (wrappers inert, from-poses no-ops); the wrappers must NEVER be positioned: the in-flow banner is what sizes hero-bg and absolute wrappers collapse the chain to zero
KeelrLeek2026-08-26 16:26:59 -05:00
6ba1864498
dark glass, the whole app: frost on every pane, and the periscope pattern for every glass bar the frost sits under - backdrop-filter black-flattens over see-through ground (measured 3-vs-40), so bars over frost blur a scroll-synced clone behind a static band cut instead; the bar moved out of the scroller (pane shell, inner .content keeping the closest-contract, the old negative-margin flow replayed by a spacer after the artist page's sticky physics named the scrollport padding sacred); painted pages declare data-painted and keep the real backdrop bar, which is how the artist hero runs under the glass again; np wash rides the scroll away and dissolves to frost like the album banner; perf measured to vsync - 142px blur wraps (27.9ms frames down to 6.9), idle scroll-gated reclones, clip-path band, content-visibility on library rows, async cover decode; mini frosts over the mini:glass channel and the rest-frame flags ride window config because the env-var lane dies on some webview2 runtimes
KeelrLeek2026-08-26 14:55:25 -05:00
dc7ea16b22
mini player + dark glass: eight shapes run by the hidden main as the one brain, dissolving covers and accents, drag from anywhere, and the space between the panes turned to real acrylic - with the webview flags that keep rest frames honest
KeelrLeek2026-08-26 07:56:00 -05:00
9b84b30aef
now playing: flatten the bleed so the corner arc antialiases once, not per layer
KeelrLeek2026-08-26 07:56:00 -05:00
6a7a5c49c0
overlay + library: the preloader working on glass, album names that land on the right self-titled record, and covers warmed before you scroll to them
KeelrLeek2026-08-25 08:05:07 -05:00
50414dae5c
playlists + player: every service's list through one door with its names matched for real, and shuffle that readies exactly what it promises
KeelrLeek2026-08-24 18:10:34 -05:00
34313e6035
discography: the whole catalogue on a page of its own
KeelrLeek2026-08-04 14:44:13 -05:00
819a2757bc
artist page: five sections after the hero, and nothing moved to fit them
KeelrLeek2026-08-04 14:43:52 -05:00
520e2ad4e4
follow: the artist page's heart becomes a real thing, stored and celebrated
KeelrLeek2026-08-04 14:43:27 -05:00
5786269592
player bar: it grows upward, the cursor is marked by the wave itself, and the shape you leave it in survives a restart
KeelrLeek2026-08-04 14:42:54 -05:00
e976fb88ba
ignore branding/ — the logo kits are worked on elsewhere
KeelrLeek2026-08-04 14:41:50 -05:00
2a83615958
player bar: one fixed name box — the transport never moves again
KeelrLeek2026-08-03 18:03:13 -05:00
a949c24677
playback: streams try peers that can actually deliver, and give up on the dead ones faster
KeelrLeek2026-08-03 17:48:16 -05:00
cef1363acd
playback: stop flooding the Soulseek server from the album fill
KeelrLeek2026-08-03 17:36:27 -05:00
8cd56a433e
player bar: the album line survives library plays, and lands with the title
KeelrLeek2026-08-03 17:18:25 -05:00
e2cfed081c
player bar: the track-change morph stops being a coin flip
KeelrLeek2026-08-03 17:07:33 -05:00
0bbdb1bb0e
player bar: track changes morph shape into shape, not up from the dots
KeelrLeek2026-08-03 17:01:59 -05:00
1765de65cf
player bar: a complete waveform arrives as one motion instead of popping
KeelrLeek2026-08-03 16:46:37 -05:00
4c9a6e312a
library: one record, one recents row, however it was played
KeelrLeek2026-08-03 16:29:19 -05:00
5ac456102f
playback: the album button and the background fill learn the cache too
KeelrLeek2026-08-03 16:16:31 -05:00
f55562f0ab
playback: a cached track plays without asking Soulseek where it lives
KeelrLeek2026-08-03 16:08:51 -05:00
b33d403634
player bar: the name sets the width, and the waveform stops flattering the clamp
KeelrLeek2026-08-03 16:08:26 -05:00
3aaec30dc6
metadata: a lost probe race no longer writes an image host off for five minutes
KeelrLeek2026-08-03 16:08:10 -05:00
9aeb6c39c7
player bar: one row, aligned to the sidebar's column, and it says who is sending
KeelrLeekandClaude Opus 52026-08-03 07:04:11 -05:00
b173f60085
search: the results page, the typeahead, and a session that survives a reload
KeelrLeekandClaude Opus 52026-08-03 07:03:45 -05:00
7547fed56d
playback: remember the last transport so a reload lands where you left off
KeelrLeekandClaude Opus 52026-08-03 07:03:20 -05:00
dc918c98ef
metadata: per-track listeners, and an artist profile the search hero can ask for
KeelrLeekandClaude Opus 52026-08-03 07:03:03 -05:00
f8f56f4398
albums: ask the artist's own discography before deciding a record does not exist
KeelrLeek2026-08-01 07:53:57 -05:00
dde8c7510b
albums: one page for every record, and streamed history rows that actually open
KeelrLeek2026-08-01 07:43:50 -05:00
3c5bccf1b6
recents: a streamed album has no library id, so the key must not pretend it does
KeelrLeek2026-08-01 07:11:25 -05:00
69f64c11eb
previews: the glow goes, the eq steps, and every clip lands before you scroll to it
KeelrLeek2026-08-01 07:11:17 -05:00
eba29824c9
sidebar and artist pipeline: one list in the rail, recents anchored to ids, and popular takes its own lane
KeelrLeek2026-07-31 18:21:04 -05:00
606250c361
resize: reads before writes everywhere, and an open album drags like a closed one
KeelrLeek2026-07-31 16:58:48 -05:00
52f5878297
loudness: a first play starts three quarters of a decibel under the prefix
KeelrLeek2026-07-30 07:39:44 -05:00
4179247203
build: strip the UTF-8 BOM that stopped both halves of the app starting
KeelrLeek2026-07-30 07:39:30 -05:00