Commit 287c971
Add dashboard on web and cli (#136)
* feat(pds): add live status dashboard at /status
Dark-themed dashboard for conference demos. Shows server identity,
repository record counts, relay federation sync status, firehose
subscriber details, and a live event stream with inline CBOR decoding.
- GET /status serves the dashboard HTML
- GET /xrpc/gg.mk.experimental.getSubscribers exposes sanitized
firehose subscriber metadata (connectedAt, cursor)
- Relay sync polling (bsky.network) with animated status transitions
- WebSocket firehose connection with minimal inline CBOR decoder
* Add live terminal dashboard for PDS monitoring (#135)
* feat(pds): add CLI dashboard command for live PDS monitoring
Adds `pds dashboard` command that shows a real-time terminal UI with:
- Repository panel (collection counts)
- Federation panel (relay sync status)
- Firehose panel (subscribers, sequence number)
- Notifications panel (likes, reposts, follows via AppView proxy)
- Events panel (live firehose events via WebSocket)
- Keybindings: [a] activate, [r] request crawl, [e] emit identity, [q] quit
Uses ANSI escape codes + picocolors for rendering (no new dependencies).
Firehose frames decoded with existing @atproto/lex-cbor decodeAll.
https://claude.ai/code/session_01XjTynB9skS7w4f14XUzTrC
* style: apply prettier formatting
https://claude.ai/code/session_01XjTynB9skS7w4f14XUzTrC
* fix(pds): fix events panel separator overflow in CLI dashboard
The separator line didn't account for the WebSocket status text width,
causing it to overflow and merge with the status indicator.
https://claude.ai/code/session_01XjTynB9skS7w4f14XUzTrC
* fix(pds): fix dashboard seq display, collection sorting, and separator padding
- Fetch latestSeq from authenticated getFirehoseStatus endpoint as primary
source, falling back to getSubscribers
- Sort collections by priority (posts, likes, follows first) and filter
out empty collections
- Add missing collection names (chat, postgates, labeler)
- Add right padding to events separator so "connected" isn't flush with edge
https://claude.ai/code/session_01XjTynB9skS7w4f14XUzTrC
* feat(pds): show identity events in dashboard firehose log
Parse #identity frames from the firehose in addition to #commit frames.
Identity events display with cyan "IDENTITY" action and the handle.
https://claude.ai/code/session_01XjTynB9skS7w4f14XUzTrC
---------
Co-authored-by: Claude <noreply@anthropic.com>
* Remove firehose status from web dash
* Changeset
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent dd9ad5e commit 287c971
14 files changed
Lines changed: 1829 additions & 56 deletions
File tree
- .changeset
- packages
- oauth-provider/test
- pds
- src
- cli
- commands
- utils
- test
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
89 | | - | |
90 | | - | |
91 | | - | |
| 89 | + | |
92 | 90 | | |
93 | 91 | | |
94 | 92 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
755 | 755 | | |
756 | 756 | | |
757 | 757 | | |
758 | | - | |
759 | | - | |
760 | | - | |
| 758 | + | |
761 | 759 | | |
762 | 760 | | |
763 | 761 | | |
| |||
1090 | 1088 | | |
1091 | 1089 | | |
1092 | 1090 | | |
1093 | | - | |
| 1091 | + | |
1094 | 1092 | | |
1095 | 1093 | | |
1096 | 1094 | | |
| 1095 | + | |
1097 | 1096 | | |
1098 | 1097 | | |
1099 | 1098 | | |
| |||
1345 | 1344 | | |
1346 | 1345 | | |
1347 | 1346 | | |
1348 | | - | |
| 1347 | + | |
| 1348 | + | |
| 1349 | + | |
| 1350 | + | |
| 1351 | + | |
1349 | 1352 | | |
1350 | 1353 | | |
1351 | 1354 | | |
1352 | 1355 | | |
1353 | | - | |
1354 | | - | |
| 1356 | + | |
1355 | 1357 | | |
1356 | | - | |
| 1358 | + | |
| 1359 | + | |
| 1360 | + | |
| 1361 | + | |
| 1362 | + | |
| 1363 | + | |
| 1364 | + | |
| 1365 | + | |
| 1366 | + | |
| 1367 | + | |
| 1368 | + | |
| 1369 | + | |
1357 | 1370 | | |
1358 | 1371 | | |
1359 | 1372 | | |
| |||
0 commit comments