38 lines
2.8 KiB
Markdown
38 lines
2.8 KiB
Markdown
## Execution Log
|
|
|
|
### T1: Add backend mention parsing and payload extraction
|
|
|
|
**Status**: Completed
|
|
**Files Changed**: `internal/markdown/ast/mention.go`, `internal/markdown/parser/mention.go`, `internal/markdown/extensions/mention.go`, `internal/markdown/markdown.go`, `internal/markdown/renderer/markdown_renderer.go`, `server/runner/memopayload/runner.go`, `server/router/api/v1/memo_service.go`, `server/router/api/v1/v1.go`, `server/router/api/v1/test/test_helper.go`, `internal/markdown/markdown_test.go`
|
|
**Validation**: `go test ./internal/markdown` — PASS
|
|
**Path Corrections**: `RebuildMemoPayload` needed `context + store` so mention resolution could happen during payload rebuild.
|
|
**Deviations**: None
|
|
|
|
### T2: Add mention notifications and user search APIs
|
|
|
|
**Status**: Completed
|
|
**Files Changed**: `proto/store/memo.proto`, `proto/store/inbox.proto`, `proto/api/v1/user_service.proto`, `server/router/api/v1/user_service.go`, `server/router/api/v1/connect_services.go`, `server/router/api/v1/acl_config.go`, `server/router/api/v1/acl_config_test.go`, `server/router/api/v1/memo_mention_helpers.go`, `store/user.go`, `store/db/sqlite/user.go`, `store/db/postgres/user.go`, `store/db/mysql/user.go`, `server/router/api/v1/test/user_notification_test.go`, `server/router/api/v1/test/user_search_test.go`
|
|
**Validation**: `go test ./server/router/api/v1/...` — PASS
|
|
**Path Corrections**: Unknown legacy inbox message types are filtered server-side to keep unread counts aligned with rendered cards.
|
|
**Deviations**: None
|
|
|
|
### T3: Add frontend mention autocomplete, rendering, and inbox UI
|
|
|
|
**Status**: Completed
|
|
**Files Changed**: `web/src/components/MemoEditor/Editor/MentionSuggestions.tsx`, `web/src/components/MemoEditor/Editor/index.tsx`, `web/src/components/MemoEditor/Editor/useSuggestions.ts`, `web/src/hooks/useUserQueries.ts`, `web/src/utils/remark-plugins/remark-mention.ts`, `web/src/components/MemoContent/MentionContext.tsx`, `web/src/components/MemoContent/Mention.tsx`, `web/src/components/MemoContent/index.tsx`, `web/src/components/MemoContent/ConditionalComponent.tsx`, `web/src/types/markdown.ts`, `web/src/components/Inbox/MemoMentionMessage.tsx`, `web/src/pages/Inboxes.tsx`
|
|
**Validation**: `pnpm lint && pnpm build` — PASS
|
|
**Path Corrections**: Editor autocomplete reused the existing generic suggestion hook by exposing the live query rather than duplicating keyboard navigation logic.
|
|
**Deviations**: None
|
|
|
|
### T4: Regenerate code and validate the feature
|
|
|
|
**Status**: Completed
|
|
**Files Changed**: `proto/gen/**`, `web/src/types/proto/**`
|
|
**Validation**: `buf generate` — PASS; `go test ./internal/markdown ./server/router/api/v1/...` — PASS; `pnpm lint` — PASS; `pnpm build` — PASS
|
|
**Path Corrections**: None
|
|
**Deviations**: None
|
|
|
|
## Completion Declaration
|
|
|
|
All tasks completed successfully
|