Skip to content

Add /updates endpoint — unified polling for mail, status, social#568

Merged
asim merged 1 commit intomainfrom
claude/add-wallet-transfers-74PHC
Apr 16, 2026
Merged

Add /updates endpoint — unified polling for mail, status, social#568
asim merged 1 commit intomainfrom
claude/add-wallet-transfers-74PHC

Conversation

@asim
Copy link
Copy Markdown
Member

@asim asim commented Apr 16, 2026

Single lightweight endpoint the client polls instead of fetching full HTML fragments or hitting multiple services:

GET /updates?since=1713254400
→ {"mail":3,"status":2,"social":1,"ts":1713254401}

  • mail: unread count (personal, always current, not since-based)
  • status: new status entries since the given unix timestamp
  • social: new messages since timestamp
  • ts: server timestamp to send back on next poll

Implementation:

  • user.StatusCountSince(since, viewerID) — counts status entries newer than the given time, respects ban visibility
  • social.CountSince(since) — counts messages newer than the given time
  • mail.GetUnreadCount(userID) — already existed

Home page JS updated: instead of fetching /user/status/stream every 10 seconds regardless, polls /updates, and only fetches the stream fragment when status > 0. Also updates the mail badge from the same poll — replacing the separate fetch in mu.js. Much cheaper: one tiny JSON response vs a full HTML fragment on every tick.

https://claude.ai/code/session_01GRGLA9yj7BpqKiyi6xFwnm

Single lightweight endpoint the client polls instead of fetching
full HTML fragments or hitting multiple services:

  GET /updates?since=1713254400
  → {"mail":3,"status":2,"social":1,"ts":1713254401}

- mail: unread count (personal, always current, not since-based)
- status: new status entries since the given unix timestamp
- social: new messages since timestamp
- ts: server timestamp to send back on next poll

Implementation:
- user.StatusCountSince(since, viewerID) — counts status entries
  newer than the given time, respects ban visibility
- social.CountSince(since) — counts messages newer than the given
  time
- mail.GetUnreadCount(userID) — already existed

Home page JS updated: instead of fetching /user/status/stream every
10 seconds regardless, polls /updates, and only fetches the stream
fragment when status > 0. Also updates the mail badge from the same
poll — replacing the separate fetch in mu.js. Much cheaper: one
tiny JSON response vs a full HTML fragment on every tick.

https://claude.ai/code/session_01GRGLA9yj7BpqKiyi6xFwnm
@asim asim merged commit e6587e0 into main Apr 16, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants