Repository navigation
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
@codex review |
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. |
|
Codex Review: Didn't find any major issues. More of your lovely PRs please. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
b823c86 to
c078242
Compare
The feedback MCP server and the self-host web search bridge each hand-wrote the same 127.0.0.1 server: lazy listen, unref, settling a pending start on close, a capped body read, and JSON responses. Both now use startLoopbackServer, readRequestText and writeJson. The search bridge's body cap now counts UTF-8 bytes instead of UTF-16 characters, like the feedback server's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
c078242 to
ae48e14
Compare
Relates to Brevilabs/obsidian-copilot-private#672
Why
Copilot now runs two local-only HTTP servers on
127.0.0.1that agents call back into: the self-host web search bridge (#165) and the feedback MCP server this stack adds. Each one hand-writes the same setup: listen on a random port without keeping Obsidian alive, settle a pending start when the plugin closes first, read a capped request body, and write JSON replies. The two copies have already drifted. The feedback server caps its body at 64 KiB of UTF-8 bytes, while the search bridge counts characters, so a search body of 30,000 CJK characters (about 90 KB) passes a cap meant to stop at 64 KiB.What
Both servers run on one shared implementation, so a lifecycle or size-cap fix lands once.
Non goal
Screenshot
Not applicable: this PR changes local server plumbing with no rendered change.
Risk
High
loopbackServertests cover serving, close-before-listen, close-after-listen, split UTF-8 chunks and the byte cap; the existing search-bridge and feedback-server suites run both servers end to end, now including a 90 KB CJK search bodyReview: inspect
startLoopbackServerandreadRequestTextinsrc/utils/loopbackServer.ts,createSelfHostWebSearchAgentBridgeandhandleAgentSearchRequestinsrc/LLMProviders/selfHostServices.ts, andcreateFeedbackMcpServerinsrc/agentMode/session/feedback/feedbackMcpServer.ts, line by line. Then run Verification.Verification