docs/plans/2026-04-06-memo-mentions/plan.md
T1: Add backend mention parsing and payload extraction [M] — T2: Add mention notifications and user search APIs [L] — T3: Add frontend mention autocomplete, rendering, and inbox UI [L] — T4: Regenerate code and validate the feature [M]
Objective: Parse @username tokens into structured mention metadata during memo payload rebuilds.
Size: M
Files:
internal/markdown/ast/mention.gointernal/markdown/parser/mention.gointernal/markdown/extensions/mention.gointernal/markdown/markdown.gointernal/markdown/renderer/markdown_renderer.goserver/runner/memopayload/runner.goserver/router/api/v1/memo_service.gointernal/markdown/markdown_test.go
Implementation:MemoPayload rebuild to collect normalized mentions and resolve them to users.go test ./internal/markdown — expected okObjective: Expose mention-aware APIs and create inbox items for newly added mentions. Size: L Files:
proto/store/memo.protoproto/store/inbox.protoproto/api/v1/user_service.protoserver/router/api/v1/user_service.goserver/router/api/v1/connect_services.goserver/router/api/v1/acl_config.goserver/router/api/v1/acl_config_test.goserver/router/api/v1/memo_mention_helpers.gostore/user.gostore/db/sqlite/user.gostore/db/postgres/user.gostore/db/mysql/user.goserver/router/api/v1/test/user_notification_test.goserver/router/api/v1/test/user_search_test.go
Implementation:MemoPayload.mentions, InboxMessage.MEMO_MENTION, UserNotification.MEMO_MENTION, and SearchUsers.go test ./server/router/api/v1/... — expected okObjective: Let users insert mentions from the editor and render/read them in the UI. Size: L Files:
web/src/components/MemoEditor/Editor/MentionSuggestions.tsxweb/src/components/MemoEditor/Editor/index.tsxweb/src/components/MemoEditor/Editor/useSuggestions.tsweb/src/hooks/useUserQueries.tsweb/src/utils/remark-plugins/remark-mention.tsweb/src/components/MemoContent/MentionContext.tsxweb/src/components/MemoContent/Mention.tsxweb/src/components/MemoContent/index.tsxweb/src/components/MemoContent/ConditionalComponent.tsxweb/src/types/markdown.tsweb/src/components/Inbox/MemoMentionMessage.tsxweb/src/pages/Inboxes.tsx
Implementation:@ autocomplete backed by SearchUsers.pnpm lint && pnpm build — expected successObjective: Regenerate generated code and verify backend/frontend behavior. Size: M Files:
proto/gen/**web/src/types/proto/**
Implementation:buf generate after proto changes.buf generate, go test ./internal/markdown ./server/router/api/v1/..., pnpm lint, pnpm build