5.6 KiB
5.6 KiB
Core Checklist Status (Web + API)
Legend:
DONE- implemented and works in current web flow.PARTIAL- implemented partly, limited UX/coverage, or needs hardening.TODO- not implemented yet.
Modules
- Account -
DONE(email auth, JWT, refresh, logout, reset, sessions; web handles/verify-email?token=...links with auth-page feedback; integration tests cover resend-verification replacement, password-reset login flow, andcheck-emailstatus transitions) - User Profile -
DONE(username, name, avatar, bio, update) - User Status -
DONE(online/last seen/recently/offline; web formatsjust now/today/yesterday/recentlyand uses Telegram-like fallbacklast seen recentlywhen precise last-seen is unavailable) - Contacts -
DONE(list/search/add/remove/block/unblock;add by emailflow covered by integration tests includingsuccess/not found/blocked conflict; web surfaces specific add-by-email errors and Contacts panel includes inlineBlock/Unblockactions) - Chat List -
DONE(all/pinned/archive/sort/unread; saved-messages delete behavior covered: clear history without deleting chat; regression test coversGET /chats/{saved_id}detail response) - Chat Types -
DONE(private/group/channel) - Chat Creation -
DONE(private/group/channel) - Messages (base) -
DONE(send/read/edit/delete/delete for all; 7-day edit window enforced and covered by integration tests; group UI shows sender names over bubbles + sender avatars on incoming message clusters) - Message Types -
DONE(text/photo/video/docs/audio/voice/circle + GIF/stickers in web pickers) - Reply/Quote/Threads -
DONE(reply + quote-like UI + thread panel with nested replies and directJump in chatnavigation) - Forwarding -
DONE(single + bulk + without author) - Pinning -
DONE(message/chat pin-unpin) - Reactions -
DONE - Delivery Status -
DONE(sent/delivered/read + reconnect reconciliation after backend restarts) - Typing Realtime -
DONE(web: typing start/stop + recording voice start/stop;recording_video_*remains for mobile circle-video clients) - Media & Attachments -
DONE(upload/preview/download/gallery; sticker/GIF inline media no longer opens photo viewer on click; Chat Info and message context menus now have consistentOpen/Download/Copybehavior with menu auto-close and download toasts) - Voice Messages -
DONE(record/send/play/seek + global speed 1x/1.5x/2x; improved recorder mime handling and duration fallbacks) - Circle Video Messages -
DONE(web supports viewing/receiving; composing/sending remains mobile-only by product scope) - Stickers -
DONE(web sticker picker with preset pack, favorites, and sticker search) - GIF -
DONE(web GIF picker with provider search, preset fallback, and favorites) - Message History/Search -
DONE(history/pagination/chat+global search) - Text Formatting -
DONE(bold/italic/underline/spoiler/mono/links + strikethrough + quote/code block; web composer supports keyboard shortcutsCtrl/Cmd+B/I/U/K,Ctrl/Cmd+Shift+X, `Ctrl/Cmd+Shift+``) - Groups -
DONE(create/add/remove/invite link with role-aware moderation flows in web Chat Info and covered invite/join behavior) - Roles -
DONE(owner/admin/member) - Admin Rights -
DONE(delete/pin/edit info + ban/unban/member role management with role-gated UI and APIs for groups/channels; member role no longer sees participants lists in group/channel chat info) - Channels -
DONE(create/post/edit/delete/subscribe/unsubscribe with role-aware channel behavior and invite-link flows) - Channel Types -
DONE(public/private) - Notifications -
DONE(browser notifications + mute/settings/sound; mention override for muted chats, realtime sync for mute state, notification click deep-link (/?chat=..&message=..) restores chat/message focus after auth) - Archive -
DONE - Blacklist -
DONE - Privacy -
DONE(avatar/last-seen/group-invites + PM policyeveryone|contacts|nobody; API + web settings support all matrix values; integration tests cover PM policy matrix, group-invite policy matrix, private chat counterpart visibilitynobody/contacts/everyone, and avatar visibility in searcheveryone/contacts/nobody) - Security -
DONE(sessions + revoke + 2FA + access-session visibility; integration tests cover single-session revoke, revoke-all invalidation/force-disconnect, 2FA setup guard, recovery-code normalization/lifecycle, and disable-2FA cleanup; web auth supports recovery-code login; settings provides recovery-code warning/copy/download) - Realtime Events -
DONE(connect/disconnect/send/receive/typing/read/delivered/online/offline + chat/message updates + chat_deleted) - Sync -
DONE(cross-device via backend state + realtime; reconciliation for loaded chats/messages;chat_updatedcovers profile/membership/delete-for-self/archive/unarchive/pin/unpin/mute/clear and create-chat fanout to members; full-chat delete emitschat_deleted; web Chat Info also has 15s polling fallback to self-heal missed realtime updates; integration tests cover user-scoped archive/pin, member-side visibility after create, and user-scoped clear behavior; chat list and migration0026_deduplicate_saved_chatshandle historical duplicate Saved Messages) - Additional -
DONE(drafts, inline link preview cards, and basic media autoload behavior in web)
Current Focus beyond P1
- Finalize media messaging UX parity (voice/circle controls, unified attachment behaviors).
- Expand message types ecosystem (GIF/stickers/thread UX + formatting polish).
- Continue raising test coverage for realtime/media edge cases.
- Keep hardening and regression-testing DONE areas while expanding polish.