Conversation
…cations - Activity Feed: SQLite-backed ActivityStore with in-memory ring buffer, task lifecycle events emitted from MessageBridge, GET /api/activity/events endpoint, real-time WS broadcast, and ActivityTimeline component in the Team workspace's agent detail panel. - Session Persistence: On WS connect, auto-fetch server-side sessions via list_sessions message, merge into local store, and load message history for restored sessions. localStorage remains as write-through cache. - Browser Notifications: Desktop notifications via Notification API when tasks complete while tab is unfocused, plus unread count in tab title. Permission requested on login. No new store fields — pure utility module. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase 1 of making the web platform fully replace Feishu as agent infrastructure.
@are human-to-human (broadcast to all).@botNameroutes to the specific agent.@in group chat InputBar to see a popup of available bots, select with keyboard or click.Key files
src/auth/user-store.ts,src/api/routes/auth-routes.tssrc/web/group-manager.ts,src/web/ws-server.tsweb/src/components/LoginPage.tsxweb/src/components/chat/InputBar.tsxweb/src/components/ChatView.tsx,ChatView.module.cssweb/src/hooks/useWebSocket.ts,web/src/types.tsTest plan
@in group chat → autocomplete popup appears@botNameinserted → send → bot responds@→ broadcast to other users (no agent triggered)npm run build+npm test+npm run lintpass🤖 Generated with Claude Code