完善 Checkpoint 变更对比、差异展示与 Web 端交互修复#573
Conversation
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
| } catch (err) { | ||
| console.error('selectProviderModel failed:', err) | ||
| } | ||
| try { |
There was a problem hiding this comment.
setSelected(m) has already committed the optimistic UI state by the time this RPC runs, but the failure path only logs to the console. If setSessionModel / selectProviderModel fails, the dropdown keeps showing the new model even though the backend state never changed, and the deferred path has the same problem. Please either revert the optimistic state on error or surface a toast and re-sync from listModels() after a failed apply.
|
|
||
| return Array.from(byPath.entries()) | ||
| .filter(([path]) => path) | ||
| .filter(([path]) => { |
There was a problem hiding this comment.
This new filter drops every run-scoped file entry unless parseUnifiedPatch() produced at least one rendered diff line. That means legitimate backend-reported changes with no hunk body, such as zero-byte file add/delete or rename/copy-only patches, disappear from FileChangePanel even though diff.files still reports them. The UI should preserve those entries and treat the parsed patch as optional metadata instead of a hard requirement.
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
变更概述
主要变化
Checkpoint
PerEditSnapshotStore快照捕获与比较能力checkpoint_restore.go恢复逻辑Web 前端
Gateway / Runtime