Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 736dfbd864
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 94508574f7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| } = {}, | ||
| ): Promise<void> | void { | ||
| abortActiveRequests() | ||
| store.cancel() |
There was a problem hiding this comment.
Do not clear unrelated mutation loading on table transitions
When a search, filter, or page changes during another store operation, this unconditional cancellation clears that operation's loading state because several stores reuse collection.isLoading outside collection fetches: comments.ts uses it for flag/delete/bulk actions, notifications.ts for create/update/delete, and audit.ts for exports. createCollectionSlice.cancel() immediately assigns isLoading = false even when it has no active collection controller, so an enabled toolbar can report completion and permit overlapping actions while the original mutation or export is still running. Keep mutation loading separate from collection request state, or make cancellation affect loading only when it actually owns the active load.
Useful? React with 👍 / 👎.
Summary
一次性实施架构深化决策方案的全部五项决策(Closes #216):
update(ProfilePatch)/replaceAvatar),集中行锁、null-skip、cleanup intent、Search publication 与事务;删除 AvatarProfileMutationService 与两个 adapter 的重复实现。cancel();useRemoteTable 删除 sequence/controller/pending count/signal 转发。start/delete/sweep),吸收 planned-key、状态迁移、tombstone、settle-window 决策;单一 executor submission path 与唯一 scheduled sweep。依赖顺序:D1→D2、D3→D4、D5 独立且单独提交。
不变量
Verification
Closes #216