Skip to content

fix: mark channels unread for any message and count @mentions of you - #577

Merged
iamnbutler merged 4 commits into
mainfrom
fix-unread
Oct 22, 2026
Merged

iamnbutler merged 4 commits into
mainfrom
fix-unread

Conversation

@iamnbutler

@iamnbutler iamnbutler commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Decided in Q122: mark a channel unread for any new message and count @mentions of you. Map ids: ^386 ^620.

  • The channel publishes each message a person or another channel's agent writes (onSaid, like onRun), with the names it @mentions. Local workers write it to the catalog; hosted/cloud channels project it over the workspace socket. The host records the latest message (said) and a running per-name mention count (mentions) on the listing, so teammates get it through peers like ran.
  • The app marks a channel unread when someone other than you wrote since you last looked (message), and counts @mentions of your GitHub login since then, against a per-profile baseline so history doesn't light up. Opening the channel clears both.
  • ^386: the sidebar row shows the unread dot and the mention count (no longer hard-coded 0); the palette shows Mention/Unread.
  • ^620: the Dashboard's channel list shows needs-you (raised hand), the mention count and the unread dot.
  • The @mention regex now lives in @ace/channel/protocol so what the channel counts matches what the app links.

Smoked on an isolated loopback host (4431) with ace serve --demo and a synthetic teammate: after sam wrote in lab-one and twice @mentioned me in lab-two (once as @IAMNBUTLER), the Dashboard showed lab-one Unread and lab-two 2 mentions + Unread, the sidebar showed the dot and a 2 badge, the palette read Unread/Mention; opening both cleared them, and they stayed cleared after a reload. My own ace say marked nothing. Records held said and mentions: {"iamnbutler": 2}.

Note: hosted/cloud channels need the channel service redeployed to send said; an older host answers it as an unknown method with no call id, which the service drops.

Built in Ace

No. Built with Claude Code (fix-train worker) in a lane, outside Ace, as part of the map-lead fix train. Tracked under #5.

Each message a person or another channel's agent writes is published like a run end: the host
records the latest one and a running count of @mentions per name on the channel's listing, which
reaches teammates through peers. The app marks a channel unread when someone else wrote since you
last looked, counts mentions of your GitHub login since then, and shows both, with needs-you,
in the sidebar, palette and the Dashboard's channel list. Decided in Q122.

Why: apps/host/src/catalog.ts#function said | mention counts only grow; apps subtract the count they last saw, so resetting one hides or invents mentions
@iamnbutler
iamnbutler merged commit 19f3215 into main Oct 22, 2026
1 check passed
@iamnbutler
iamnbutler deleted the fix-unread branch October 22, 2026 15:14
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.

1 participant