Commit Graph

  • fd216ecd3d community: a proposal on your board arrives as a toast, carried sealed through the inbox KeelrLeek 2026-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 KeelrLeek 2026-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 KeelrLeek 2026-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 KeelrLeek 2026-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 KeelrLeek 2026-09-02 17:08:25 -05:00
  • d7bc92fda7 release: 1.7.0-alpha KeelrLeek 2026-09-02 16:38:43 -05:00
  • bf81792c49 the proposal board: a Space's pinned playlist takes signed proposals, and an accept republishes it KeelrLeek 2026-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 KeelrLeek 2026-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 KeelrLeek 2026-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 KeelrLeek 2026-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 KeelrLeek 2026-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 KeelrLeek 2026-09-02 14:27:54 -05:00
  • cf9558cf26 release: 1.6.0-alpha KeelrLeek 2026-09-02 14:03:28 -05:00
  • 5160d97a5f community: the drawer asks a peer for its card and the server for interests, and discover gets the similar-users shelf KeelrLeek 2026-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 KeelrLeek 2026-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 KeelrLeek 2026-09-02 13:43:16 -05:00
  • 6dce4e2ac7 the freenet layer: adapter, persona and profile services, the contracts bundled as commitments KeelrLeek 2026-09-02 13:43:16 -05:00
  • 63a0357651 the soulseek hub: the whole Qt client as one area, wired to the wire KeelrLeek 2026-08-31 15:13:53 -05:00
  • 913289a297 the panel tops speak one language: 28px discs, white glyphs, one veil KeelrLeek 2026-08-31 15:13:24 -05:00
  • 2d8c385a2e the sourcing notifier is a toast: the glass bar hands rstatus to the player-bar slot KeelrLeek 2026-08-31 11:46:27 -05:00
  • 0670b8654a hero commits wait for scroll calm, and a dev tripwire watches the rides KeelrLeek 2026-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 KeelrLeek 2026-08-31 11:46:01 -05:00
  • 75a95405a8 the acrylic rides move drags: only a real resize parks the glass at blur KeelrLeek 2026-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 KeelrLeek 2026-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 KeelrLeek 2026-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 KeelrLeek 2026-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 KeelrLeek 2026-08-31 05:52:43 -05:00
  • 93271aceec release: 1.5.0-alpha KeelrLeek 2026-08-27 17:25:19 -05:00
  • 547cee6649 dark glass gets a surface ladder, and the 200-750ms stalls are dead - two sessions of uncommitted work landing together KeelrLeek 2026-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 KeelrLeek 2026-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 KeelrLeek 2026-08-26 14:55:25 -05:00
  • 225c9139aa release: 1.4.0-alpha KeelrLeek 2026-08-26 07:57:03 -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 KeelrLeek 2026-08-26 07:56:00 -05:00
  • 9b84b30aef now playing: flatten the bleed so the corner arc antialiases once, not per layer KeelrLeek 2026-08-26 07:56:00 -05:00
  • 7dfba58ea7 release: 1.3.0-alpha KeelrLeek 2026-08-25 08:05:07 -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 KeelrLeek 2026-08-25 08:05:07 -05:00
  • ad2c912b71 release: 1.2.0-alpha KeelrLeek 2026-08-24 18:12:02 -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 KeelrLeek 2026-08-24 18:10:34 -05:00
  • 30eb6fe025 release: 1.1.0-alpha KeelrLeek 2026-08-24 10:49:11 -05:00
  • 1dd8573808 dj sets + lyrics: a mix that names its own tracks, and words pulled off the separated voice KeelrLeek 2026-08-24 10:49:10 -05:00
  • 4efe85b6bf release: 0.1.0-alpha.4 KeelrLeek 2026-08-17 18:06:04 -05:00
  • f4f26d6d34 player bar: the overflow menu out from under the bar's own clip, and Lyrics wired for real KeelrLeek 2026-08-17 18:05:36 -05:00
  • df3d15553a playlists + lyrics: setlists with pages of their own, and the words timed to the voice KeelrLeek 2026-08-17 18:05:31 -05:00
  • c4ff6269a3 import: records named by their own tags, and covers resampled where the pixels are KeelrLeek 2026-08-10 18:08:58 -05:00
  • e7d0971de2 import: the whole feature, and releases put back together KeelrLeek 2026-08-10 07:55:59 -05:00
  • 4b30c5e573 vite: bind the dev server to 127.0.0.1, where the app's WebView looks KeelrLeek 2026-08-06 17:21:24 -05:00
  • 185c29fc33 library: the page lit by its own records, and portraits that prove out KeelrLeek 2026-08-06 17:21:23 -05:00
  • 741c4ae6dc library: file a record you don't own off the payload's own field names KeelrLeek 2026-08-05 18:04:26 -05:00
  • f55052506a library: three views of the collection, and what every file actually is KeelrLeek 2026-08-05 18:02:40 -05:00
  • 10e4c75b33 home: rows that fill the window, and news across the whole of it KeelrLeek 2026-08-05 09:47:07 -05:00
  • d397b78887 news: about the artist, and each story only once KeelrLeek 2026-08-05 09:46:54 -05:00
  • 034eac9569 home: a landing page built from the app's own parts KeelrLeek 2026-08-04 19:08:58 -05:00
  • 8ef730848a news: headlines about the artists you follow, anchored to the artist KeelrLeek 2026-08-04 19:08:35 -05:00
  • 50afa6a6a9 branding: the falcon replaces the waveform everywhere the app is seen KeelrLeek 2026-08-04 16:42:38 -05:00
  • 1e6f3f2250 release: package-lock follows the alpha.3 bump KeelrLeek 2026-08-04 16:42:28 -05:00
  • f0c2bb5ed3 taskbar: transport buttons under the window preview KeelrLeek 2026-08-04 16:08:26 -05:00
  • f6eb9ff02f media card: Windows knows SoulStream is a music player now KeelrLeek 2026-08-04 16:08:10 -05:00
  • f72b12a892 release: 0.1.0-alpha.3 KeelrLeek 2026-08-04 14:49:28 -05:00
  • 34313e6035 discography: the whole catalogue on a page of its own KeelrLeek 2026-08-04 14:44:13 -05:00
  • 819a2757bc artist page: five sections after the hero, and nothing moved to fit them KeelrLeek 2026-08-04 14:43:52 -05:00
  • 520e2ad4e4 follow: the artist page's heart becomes a real thing, stored and celebrated KeelrLeek 2026-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 KeelrLeek 2026-08-04 14:42:54 -05:00
  • e976fb88ba ignore branding/ — the logo kits are worked on elsewhere KeelrLeek 2026-08-04 14:41:50 -05:00
  • 2a83615958 player bar: one fixed name box — the transport never moves again KeelrLeek 2026-08-03 18:03:13 -05:00
  • a949c24677 playback: streams try peers that can actually deliver, and give up on the dead ones faster KeelrLeek 2026-08-03 17:48:16 -05:00
  • cef1363acd playback: stop flooding the Soulseek server from the album fill KeelrLeek 2026-08-03 17:36:27 -05:00
  • 8cd56a433e player bar: the album line survives library plays, and lands with the title KeelrLeek 2026-08-03 17:18:25 -05:00
  • e2cfed081c player bar: the track-change morph stops being a coin flip KeelrLeek 2026-08-03 17:07:33 -05:00
  • 0bbdb1bb0e player bar: track changes morph shape into shape, not up from the dots KeelrLeek 2026-08-03 17:01:59 -05:00
  • 1765de65cf player bar: a complete waveform arrives as one motion instead of popping KeelrLeek 2026-08-03 16:46:37 -05:00
  • 4c9a6e312a library: one record, one recents row, however it was played KeelrLeek 2026-08-03 16:29:19 -05:00
  • 5ac456102f playback: the album button and the background fill learn the cache too KeelrLeek 2026-08-03 16:16:31 -05:00
  • f55562f0ab playback: a cached track plays without asking Soulseek where it lives KeelrLeek 2026-08-03 16:08:51 -05:00
  • b33d403634 player bar: the name sets the width, and the waveform stops flattering the clamp KeelrLeek 2026-08-03 16:08:26 -05:00
  • 3aaec30dc6 metadata: a lost probe race no longer writes an image host off for five minutes KeelrLeek 2026-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 5 2026-08-03 07:04:11 -05:00
  • b173f60085 search: the results page, the typeahead, and a session that survives a reload KeelrLeekandClaude Opus 5 2026-08-03 07:03:45 -05:00
  • 7547fed56d playback: remember the last transport so a reload lands where you left off KeelrLeekandClaude Opus 5 2026-08-03 07:03:20 -05:00
  • dc918c98ef metadata: per-track listeners, and an artist profile the search hero can ask for KeelrLeekandClaude Opus 5 2026-08-03 07:03:03 -05:00
  • f8f56f4398 albums: ask the artist's own discography before deciding a record does not exist KeelrLeek 2026-08-01 07:53:57 -05:00
  • dde8c7510b albums: one page for every record, and streamed history rows that actually open KeelrLeek 2026-08-01 07:43:50 -05:00
  • 3c5bccf1b6 recents: a streamed album has no library id, so the key must not pretend it does KeelrLeek 2026-08-01 07:11:25 -05:00
  • 69f64c11eb previews: the glow goes, the eq steps, and every clip lands before you scroll to it KeelrLeek 2026-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 KeelrLeek 2026-07-31 18:21:04 -05:00
  • 606250c361 resize: reads before writes everywhere, and an open album drags like a closed one KeelrLeek 2026-07-31 16:58:48 -05:00
  • 52f5878297 loudness: a first play starts three quarters of a decibel under the prefix KeelrLeek 2026-07-30 07:39:44 -05:00
  • 4179247203 build: strip the UTF-8 BOM that stopped both halves of the app starting KeelrLeek 2026-07-30 07:39:30 -05:00
  • 5682dfc22f release: 0.1.0-alpha.2 KeelrLeek 2026-07-29 18:46:38 -05:00
  • 3f4f5c305a now playing: the transfer moves into the bar, and the panel speaks the app's headings KeelrLeek 2026-07-29 18:46:31 -05:00
  • a6b585303e album page: the record's own shape while it loads, and prose that waits its turn KeelrLeek 2026-07-29 18:46:16 -05:00
  • 35a18d9ca0 state: one identity merge, one description splitter, and a record named at click time KeelrLeek 2026-07-29 18:45:58 -05:00
  • 1e35c5e039 loudness: correct the gain during the track instead of only guessing at its start KeelrLeek 2026-07-29 18:45:43 -05:00
  • 4f485b6f9a backend: a supplemented album remembers what it is between runs KeelrLeek 2026-07-29 18:45:23 -05:00
  • 0ea4da7146 now playing: the drag tracks the pointer, and the panel stops fighting its width KeelrLeek 2026-07-29 08:12:31 -05:00
  • 9cb19f42af player: fill the album, report a cached track honestly, and stop double-appending KeelrLeek 2026-07-29 08:12:07 -05:00
  • d460352973 backend: a cached track says so, and fallback hero art expires in a day KeelrLeek 2026-07-29 08:11:49 -05:00
  • 9dc3eaf939 artist hero: the blurred layers ride with the photograph KeelrLeek 2026-07-29 08:11:36 -05:00
  • ae99757ddd hero: repaint on a resize instead of rebuilding the canvas for it KeelrLeek 2026-07-29 08:11:20 -05:00
  • e334cd51c2 now playing: collapse to a rail, and rebuild the panel around the record KeelrLeek 2026-07-28 19:15:15 -05:00
  • 35729c1f9e navigation: state the bar's geometry instead of collapsing a margin for it KeelrLeek 2026-07-28 17:40:22 -05:00