Conversation
Fix citation link mapping for duplicate URLs and unstable cite_index
|
@ouqiting is attempting to deploy a commit to the cjack's projects Team on Vercel. A member of the Team first needs to authorize it. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f125c7ab83
ℹ️ About Codex in GitHub
Codex has been enabled to automatically 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 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| s.err = err | ||
| return err |
There was a problem hiding this comment.
Avoid latching transient persistence errors in chat history store
saveLocked stores runtime write failures in s.err, and all public operations short-circuit when s.err != nil (for example Start, Update, Snapshot). This means a transient disk-full/permission hiccup can permanently disable chat history for the process lifetime even after the filesystem recovers, because no subsequent operation is allowed to retry and clear the error.
Useful? React with 👍 / 👎.
| if item.Content != "" || item.ReasoningContent != "" || item.FinalPrompt != "" || len(item.Messages) > 0 { | ||
| return legacy, true, nil | ||
| } |
There was a problem hiding this comment.
Treat legacy monolith files as legacy even with empty content
parseLegacy only returns legacyOK=true when at least one entry has content, reasoning_content, final_prompt, or messages. Legacy files whose entries contain only metadata/error/user input are misclassified as non-legacy, so loadLocked then expects split detail files and fails with missing-file errors, making the store unavailable on startup for that data shape.
Useful? React with 👍 / 👎.
| for id, item := range s.details { | ||
| path := filepath.Join(s.detailDir, id+".json") |
There was a problem hiding this comment.
Write only changed detail files instead of rewriting all entries
saveLocked rewrites every detail file on each save by iterating over all s.details. Because streaming calls Update frequently (via chatHistorySession.progress), one active stream repeatedly rewrites the full retained history set, creating avoidable O(n) disk I/O and increasing request-path latency as history size grows.
Useful? React with 👍 / 👎.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
💻 变更类型 | Change Type
🔀 变更说明 | Description of Change
给webui增加对话记录栏目,可以保存调用记录,方便进行查看
电脑端界面
手机界面
📝 补充信息 | Additional Information