mirror of
https://github.com/prdlk/omarchy-beeper.git
synced 2026-11-02 13:12:48 +00:00
Verified against Beeper Desktop 4.3.73 with a real token:
- inbox=primary combined with unreadOnly=true returned 0 of 78 genuinely
unread chats, and includeMuted=false returned muted chats anyway. Both
params are gone; muted/archived/low-priority are now decided here from
isMuted/isArchived/isLowPriority, and a hand-marked-unread chat counts.
- Snippets now come from GET /v1/messages/search (1.1 ms/chat) instead of
GET /v1/chats/{id}/messages (145 ms/chat), which is kept as the fallback
for chats the index has not reached. list --limit 50 went 3.33s -> 0.16s.
1.6 KiB
1.6 KiB
Changelog
1.0.0
First release.
- Bar icon: stroked chat bubble with an unread-chat badge in the bar foreground colour, dimmed to half opacity when Beeper Desktop is unreachable.
- Panel: one row per unread chat across every connected network, newest first, with the network as a chip when more than one account is connected.
- Click a row (or
Enter/Space/o) to focus that chat in Beeper Desktop and mark it read; the row disappears immediately and the mark is queued. amarks the row under the cursor read without opening it.Amarks every unread chat read behind a two-press confirm, with a 100-second budget and a partial count.- Paging with
n/p, page size 1–50, poll interval 15–3600 s. bin/omarchy-beeperCLI:list,read,read-all,open,auth. Every command prints one JSON object and exits 0.- Muted, archived, and low-priority chats are excluded from the pile, filtered
on each chat's own flags: Beeper Desktop 4.3.73 ignores
includeMuted=falseandinbox=primaryhides genuinely unread chats when combined withunreadOnly=true. - Row snippets come from
GET /v1/messages/search(~1 ms per chat) withGET /v1/chats/{chatID}/messagesas the fallback for chats the message index has not reached yet, and only for the rows on screen. - Token stored at
~/.config/omarchy-beeper/secrets/token.json(600, in a 700 directory), read withO_NOFOLLOW, never passed in argv. - All HTTP bound to
http://localhost:23373/v1/, no redirects, 2 MiB body cap and 64 KiB error cap, 30 s per request. - Read and mark-read only: the plugin never sends a message.