| 2026-02-23 18:01 | fix: use git dependency for nostrdb instead of hardcoded local path | William Casarin | 2 | +2 | -1 |
| 2026-02-22 19:46 | fix: replace Notify with watch channel for inflight dedup, upgrade nostrdb | William Casarin | 4 | +43 | -34 |
| 2026-02-18 20:34 | refactor: extract run_inflight_deduplicated and replace mock tests | William Casarin | 1 | +166 | -69 |
| 2026-02-18 20:29 | test: add tests for debounce and inflight deduplication logic | William Casarin | 1 | +316 | -0 |
| 2026-02-18 20:19 | refactor: convert Notecrumbs methods to standalone functions for testability | William Casarin | 1 | +162 | -136 |
| 2026-02-18 20:09 | fix: extend relay debouncing to cover all nip19 types and profile feeds | William Casarin | 1 | +56 | -35 |
| 2026-02-18 19:56 | fix: debounce relay requests to prevent hammering on repeated note fetches | William Casarin | 1 | +284 | -176 |
| 2026-02-17 19:08 | perf: move secondary note fetches to background task | William Casarin | 2 | +29 | -27 |
| 2026-02-17 18:56 | clippy fixes | William Casarin | 3 | +37 | -27 |
| 2026-02-17 18:50 | fix: fetch reply author profiles via unknowns system | William Casarin | 3 | +50 | -2 |
| 2026-02-17 18:43 | feat: display direct replies below notes | William Casarin | 2 | +170 | -6 |
| 2026-02-17 18:28 | feat: display reply, repost, and reaction counts in note footer | William Casarin | 4 | +87 | -49 |
| 2026-02-17 02:50 | feat: display reaction counts on notes using nostrdb metadata | William Casarin | 4 | +160 | -11 |
| 2026-02-17 01:47 | feat: thread layout with vertical line connecting parent and reply avatars | William Casarin | 2 | +210 | -118 |
| 2026-02-17 00:54 | Merge feat/reply-context: display reply context with parent note preview | William Casarin | 4 | +163 | -3 |
| 2026-02-17 00:06 | chore: remove .beads from tracking and add to gitignore | William Casarin | 2 | +1 | -20 |
| 2026-02-17 00:00 | feat: display reply context with parent note preview | William Casarin | 4 | +182 | -3 |
| 2026-02-16 23:33 | feat: add sitemap.xml and robots.txt for SEO | alltheseas | 11 | +2620 | -302 |
| 2026-02-05 18:09 | feat: store relay provenance in nostrdb via IngestMetadata | William Casarin | 1 | +30 | -10 |
| 2025-12-19 05:36 | feat: integrate rust-nostr PR #1172 relay provenance tracking | alltheseas | 7 | +438 | -288 |
| 2026-02-05 17:38 | refactor: replace tuple with QuoteProfileInfo struct in build_embedded_quotes_html | William Casarin | 1 | +27 | -9 |
| 2026-02-05 17:27 | rustfmt | William Casarin | 4 | +142 | -96 |
| 2025-12-19 15:28 | fix: refresh profile metadata during background updates | alltheseas | 1 | +62 | -5 |
| 2026-02-05 17:22 | chore: fix unused argument warnings | William Casarin | 1 | +3 | -3 |
| 2026-02-05 06:52 | refactor: generalize unknowns to fetch all missing data | William Casarin | 3 | +145 | -34 |
| 2026-02-05 06:35 | feat: fetch quoted events from relays with relay provenance | William Casarin | 4 | +358 | -28 |
| 2026-02-05 06:02 | feat: iOS-style article card for embedded longform quotes | William Casarin | 2 | +136 | -35 |
| 2026-02-04 20:51 | feat: add NIP-84 highlights and NIP-18 embedded quotes | William Casarin | 2 | +969 | -30 |
| 2026-02-04 20:50 | upgrade nostrdb to 0.9.0 | William Casarin | 3 | +175 | -13 |
| 2026-02-04 21:44 | ci: add apt-get update before installing deps | William Casarin | 1 | +3 | -1 |
| 2025-12-18 22:32 | refactor base_url retrieval | William Casarin | 1 | +15 | -27 |
| 2025-12-18 19:40 | refactor slop, add profile links | William Casarin | 3 | +198 | -159 |
| 2025-12-18 19:27 | clippy fixes | William Casarin | 1 | +3 | -1 |
| 2025-12-18 19:27 | nix: add clippy | William Casarin | 1 | +1 | -1 |
| 2025-12-18 19:08 | clippy fixes | William Casarin | 2 | +9 | -10 |
| 2025-12-18 19:06 | cargo: update deps | William Casarin | 1 | +218 | -251 |
| 2025-12-18 19:01 | Merge don't block profile page loading by elsat #43 | William Casarin | 3 | +151 | -5 |
| 2025-12-18 18:53 | html: add video support | William Casarin | 2 | +32 | -17 |
| 2025-12-18 18:43 | perf: add concurrency safety with DashMap and atomic operations | alltheseas | 3 | +110 | -38 |
| 2025-12-18 18:41 | perf: rate-limit background profile refreshes | alltheseas | 1 | +54 | -5 |
| 2025-12-18 18:40 | perf: skip blocking profile feed fetch when notes are cached | alltheseas | 1 | +30 | -5 |
| 2025-12-18 18:14 | fix potential panic in ends_with | William Casarin | 1 | +6 | -2 |
| 2025-12-18 18:08 | nix: add rustc/cargo | William Casarin | 1 | +1 | -1 |
| 2025-12-18 18:07 | nix: pin nixpkgs | William Casarin | 1 | +2 | -1 |
| 2025-12-18 18:07 | html: bump assets because cloudflare cached them | William Casarin | 1 | +5 | -5 |
| 2025-12-18 18:05 | html: render images | William Casarin | 1 | +27 | -1 |
| 2025-12-18 18:05 | nix: openssl is needed now | William Casarin | 1 | +1 | -1 |
| 2025-12-18 17:05 | Merge relay pool + design improvements by elsat #37 | William Casarin | 11 | +2224 | -237 |
| 2025-10-23 23:08 | Remove unused profile image cache plumbing | alltheseas | 3 | +0 | -10 |
| 2025-10-23 23:08 | Load default avatar from embedded bytes | alltheseas | 1 | +2 | -2 |
| 2025-10-23 23:07 | Avoid stale LMDB transactions when hydrating render data | alltheseas | 1 | +35 | -17 |
| 2025-10-23 22:58 | Stabilize address lookup test against nostrdb races | alltheseas | 1 | +18 | -7 |
| 2025-10-23 22:01 | Track embedded font assets | alltheseas | 2 | +0 | -1 |
| 2025-10-23 21:43 | Address feedback on relay queries and mobile layout | alltheseas | 3 | +69 | -65 |
| 2025-10-23 20:41 | Align notecrumbs frontend with Damus styling | alltheseas | 5 | +1184 | -520 |
| 2025-10-22 16:26 | Document relay discovery sources | alltheseas | 4 | +32 | -276 |
| 2025-10-22 16:07 | Expose relay pool metrics via Prometheus | alltheseas | 3 | +699 | -29 |
| 2025-10-22 15:48 | Improve relay resiliency with metrics and discovery | alltheseas | 2 | +58 | -8 |
| 2025-10-22 15:41 | Refine relay pool connections and profile experience | alltheseas | 2 | +69 | -35 |
| 2025-10-22 15:22 | Restore npub profile styling and copy interaction | alltheseas | 1 | +50 | -17 |
| 2025-10-22 15:11 | Improve profile feed freshness and ordering | alltheseas | 2 | +991 | -63 |
| 2025-10-22 14:56 | Add persistent relay pool and richer npub profile rendering | alltheseas | 4 | +622 | -792 |
| 2025-10-22 16:56 | fix newlines in notes | William Casarin | 1 | +1 | -1 |
| 2025-10-22 16:56 | add missing timeout file | William Casarin | 1 | +7 | -0 |
| 2025-10-22 16:45 | Merge remote-tracking branch 'elsat/docs/add-agents' | William Casarin | 1 | +42 | -0 |
| 2025-10-22 16:39 | Merge 'feat/longform-articles' by elsat | William Casarin | 7 | +1481 | -578 |
| 2025-10-22 16:38 | timeout: standardize timeouts | William Casarin | 3 | +6 | -9 |
| 2025-10-22 16:27 | test: use wait_for_notes from ndb | William Casarin | 1 | +11 | -27 |
| 2025-10-22 14:32 | render: remove redundant clone | William Casarin | 1 | +1 | -1 |
| 2025-10-22 14:30 | nit: remove some redundant calls | William Casarin | 1 | +2 | -2 |
| 2025-10-22 14:25 | query: use note result directly | William Casarin | 1 | +1 | -1 |
| 2025-10-22 14:25 | cargo: update deps | William Casarin | 1 | +592 | -462 |
| 2025-10-22 04:05 | Add coverage for longform note address filters | alltheseas | 1 | +120 | -0 |
| 2025-10-22 03:26 | fix: remove redundant 'a' tag filter in address queries | alltheseas | 1 | +0 | -1 |
| 2025-10-22 02:36 | feat: render NIP-23 longform articles | alltheseas | 5 | +784 | -111 |
| 2025-01-01 17:06 | ci: update deps | William Casarin | 1 | +2 | -0 |
| 2024-12-31 18:00 | api: add note json endpoint | William Casarin | 2 | +92 | -2 |
| 2024-12-31 17:59 | json: add serde_json | William Casarin | 3 | +10 | -0 |
| 2024-12-31 17:59 | don't create transaction if we don't need to | William Casarin | 1 | +2 | -1 |
| 2024-12-31 17:58 | render: don't wait longer than we need to | William Casarin | 1 | +8 | -0 |
| 2024-12-31 15:30 | trust: don't skip validation | William Casarin | 2 | +1 | -3 |
| 2024-12-31 15:29 | log: switch to tracing | William Casarin | 5 | +12 | -64 |
| 2024-12-30 17:47 | expand timeout | William Casarin | 1 | +1 | -1 |
| 2024-12-30 17:36 | fix subscription exhaustion | William Casarin | 3 | +5 | -8 |
| 2024-12-17 05:17 | Switch to async nostrdb | William Casarin | 11 | +653 | -510 |
| 2024-12-16 18:32 | update deps | William Casarin | 3 | +1057 | -846 |
| 2024-02-16 22:28 | Update README.md | William Casarin | 1 | +1 | -1 |
| 2024-01-24 19:37 | html: fix profile pictures | William Casarin | 1 | +4 | -1 |
| 2024-01-24 19:19 | html: new note style from daniel | William Casarin | 2 | +67 | -10 |
| 2024-01-24 19:16 | update nostrdb | William Casarin | 1 | +1 | -1 |
| 2024-01-24 19:16 | update lockfile | William Casarin | 1 | +1 | -1 |
| 2024-01-02 17:13 | initial html note renderer | William Casarin | 4 | +207 | -110 |
| 2024-01-02 17:13 | bump nostrdb | William Casarin | 2 | +2 | -2 |
| 2024-01-02 18:02 | todo | William Casarin | 3 | +3 | -0 |
| 2024-01-01 17:42 | update nostrdb | William Casarin | 2 | +2 | -2 |
| 2024-01-01 17:06 | render mentions in previews | William Casarin | 1 | +107 | -32 |
| 2024-01-01 17:05 | cleanup some warnings | William Casarin | 2 | +14 | -15 |
| 2024-01-01 17:05 | update nostrdb | William Casarin | 2 | +2 | -2 |
| 2023-12-31 06:10 | Initial note block renderer | William Casarin | 1 | +85 | -32 |
| 2023-12-31 06:10 | update to latest nostrdb | William Casarin | 2 | +39 | -4 |
| 2023-12-24 02:47 | relays: only give up looking when it makes sense | William Casarin | 1 | +12 | -2 |
| 2023-12-21 22:29 | smaller | William Casarin | 1 | +1 | -1 |
| 2023-12-21 22:28 | better image | William Casarin | 1 | +1 | -1 |
| 2023-12-21 20:51 | make sure the frame doesn't get smaller | William Casarin | 1 | +3 | -1 |
| 2023-12-21 20:49 | add working note | William Casarin | 1 | +1 | -1 |
| 2023-12-21 20:40 | just use the purple link directly | William Casarin | 1 | +1 | -1 |
| 2023-12-21 20:11 | unjustify | William Casarin | 1 | +2 | -4 |
| 2023-12-21 19:16 | deps: fix nostr-sdk changes | William Casarin | 3 | +6 | -4 |
| 2023-12-21 19:16 | deps: bump nostr-sdk to latest | William Casarin | 2 | +14 | -9 |
| 2023-12-21 19:09 | remove negative kerning | William Casarin | 1 | +1 | -1 |
| 2023-12-21 18:59 | escape html in opengraph properties | William Casarin | 1 | +5 | -3 |
| 2023-12-21 18:59 | update lockfile | William Casarin | 1 | +16 | -0 |
| 2023-12-21 18:58 | add html_escape | William Casarin | 1 | +1 | -0 |
| 2023-12-21 18:33 | tweak kerning | William Casarin | 1 | +2 | -2 |
| 2023-12-21 18:25 | trim title | William Casarin | 1 | +3 | -3 |
| 2023-12-21 18:13 | new background, drop shadow, larger text | William Casarin | 4 | +104 | -19 |
| 2023-12-21 02:42 | get it working on twitter | William Casarin | 2 | +13 | -17 |
| 2023-12-20 23:39 | bump abbrev, fix a warning | William Casarin | 1 | +2 | -2 |
| 2023-12-21 00:19 | fix startup | William Casarin | 2 | +1 | -1 |
| 2023-12-20 23:37 | initial html page for notes | William Casarin | 2 | +141 | -16 |
| 2023-12-20 20:30 | add font | William Casarin | 2 | +0 | -1 |
| 2023-12-20 20:29 | badge: link to actions | William Casarin | 1 | +1 | -1 |
| 2023-12-20 20:28 | update gitignore | William Casarin | 1 | +1 | -0 |
| 2023-12-20 20:07 | fix skia dep | William Casarin | 1 | +2 | -2 |
| 2023-12-20 20:07 | update lockfile | William Casarin | 1 | +1 | -0 |
| 2023-12-20 20:03 | add missing file | William Casarin | 1 | +84 | -0 |
| 2023-12-20 20:03 | cleanup some stuff | William Casarin | 4 | +9 | -65 |
| 2023-12-20 18:59 | ui: consistent quote text positioning | William Casarin | 1 | +89 | -27 |
| 2023-12-20 16:36 | refactor data completion, add initial design from karnage | William Casarin | 6 | +639 | -92 |
| 2023-12-20 16:35 | add default profile pic | William Casarin | 1 | +0 | -0 |
| 2023-12-20 16:35 | add tags to gitignore | William Casarin | 1 | +1 | -0 |
| 2023-12-20 16:35 | update deps | William Casarin | 1 | +12 | -6 |
| 2023-12-20 16:35 | update lockfile | William Casarin | 1 | +84 | -18 |
| 2023-12-19 01:27 | update lockfile | William Casarin | 1 | +210 | -31 |
| 2023-12-19 01:23 | assets: add default pfp | William Casarin | 1 | +0 | -0 |
| 2023-12-18 21:19 | deps: fix egui_skia | William Casarin | 1 | +1 | -2 |
| 2023-12-18 16:52 | move around some things, add code for pfps | William Casarin | 4 | +192 | -87 |
| 2023-12-18 16:51 | update gitignore and project file | William Casarin | 2 | +3 | -0 |
| 2023-12-18 16:51 | update lockfile | William Casarin | 1 | +220 | -0 |
| 2023-12-18 16:15 | rename Context to Notecrumbs | William Casarin | 1 | +17 | -17 |
| 2023-12-18 16:06 | remove unused file | William Casarin | 1 | +0 | -1 |
| 2023-12-18 15:57 | ui: move note ui to its own function | William Casarin | 1 | +19 | -20 |
| 2023-12-17 22:38 | initial profile fetching support | William Casarin | 2 | +54 | -30 |
| 2023-12-17 22:38 | update lockfile | William Casarin | 1 | +13 | -2 |
| 2023-12-17 21:02 | fetch notes from relays if we don't have them | William Casarin | 3 | +99 | -29 |
| 2023-12-17 21:26 | nip19: add a few utils for getting filters and relays | William Casarin | 1 | +32 | -0 |
| 2023-12-17 21:24 | fonts: move font logic elsewhere for now | William Casarin | 2 | +23 | -21 |
| 2023-12-17 21:23 | error: add a few more error types | William Casarin | 1 | +21 | -0 |
| 2023-12-17 21:23 | error: simplify StdError derivation | William Casarin | 1 | +1 | -12 |
| 2023-12-17 21:00 | update Cargo.lock | William Casarin | 1 | +23 | -26 |
| 2023-12-17 06:41 | add license | William Casarin | 1 | +674 | -0 |
| 2023-12-17 06:29 | readme: badge | William Casarin | 1 | +2 | -0 |
| 2023-12-17 06:28 | Create rust.yml | William Casarin | 1 | +22 | -0 |
| 2023-12-17 06:27 | readme: wip | William Casarin | 1 | +13 | -1 |
| 2023-12-17 06:25 | image example | William Casarin | 1 | +4 | -2 |
| 2023-12-17 06:20 | readme: update | William Casarin | 1 | +1 | -1 |
| 2023-12-17 06:19 | add lockfile | William Casarin | 1 | +2430 | -0 |
| 2023-12-17 01:48 | notecrumbs: initial commit | William Casarin | 9 | +278 | -0 |