docs(devlog): enumerate every invocation-line site to bound the cursor fix - #2913
Conversation
Two partial fixes had already shipped for this defect, so the residual risk was a third replay site with the same suffix-indexing gap. Enumerated instead of assumed: only rootPromptMessages and conversationTurns attach an invocation line and both now take knownCalls. The third toolResultToText caller, contentText, passes no call and is unreachable for toolResult because all three of its callers select on user/developer role first.
|
✅ Deterministic PR hygiene checks passed. |
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. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 10 included reviews per hour; 3 remain after this review. 📝 WalkthroughWalkthroughThe plan adds a completeness audit for invocation-line generation. It identifies ChangesInvocation Site Audit
Estimated code review effort: 1 (Trivial) | ~3 minutes Merge Risk: ⚪ Minimal · up to This documentation-only PR records the invocation-line site audit without changing product behavior, so no actionable merge-blocking risk remains after normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.) ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
리뷰 · 우선순위 43 / 80이 PR은 코드를 안 고친다. 지금 지금 HEAD의
네이티브(비외부) 모델은 호출 줄을 텍스트로 안 붙인다. types.ts/config.ts 분할과 무관하다. close-don't-rebase 대상이 아니다. 런타임, 라우팅, 인증은 안 건드린다. merge-base 가 지금 HEAD 와 같아서 파일도 040 노트 하나만 갈라진다. 라인 106 다음 Completeness 제목 - Verification 목록 한가운데에 들어간다. 123 pass 다음에 제목이 나오고, 그 아래 라인 표 conversationTurns 953 - 953은 맵을 담는 줄이다. 경로 contentText 호출부 - 본문은 contentText 호출이 셋이라고 한다. 실제 contentText 직접 호출은 경로 conversationTurns 1025 - 네이티브에서 짝이 없으면 호출 줄 없이 PR 본문 124 pass - 파일 Verification 은 여전히 123 pass 다. 이 PR이 테스트를 안 바꾸므로 파일 숫자가 맞다. 메인테이너의 판단이 필요한 지점
너의 추천 이 댓글은 grok-bot이 작성했습니다 |
Summary
Devlog only. Follow-up to #2910, which fixed the checkpoint replay path.
That was the third partial fix for one defect: #2900 named the invocation inside a replayed tool
result, #2903 bounded and identity-checked it, and #2910 covered the checkpoint continuation path
that the first two missed. The obvious residual risk was a fourth site with the same shape, so this
enumerates them against the source instead of assuming the set is closed.
Only two functions attach an invocation line, and both take
knownCallsafter #2910:rootPromptMessages[Tool Result]blobknownCalls ?? toolCallsByCallId(messages)conversationTurns[Tool Result]knownCalls ?? toolCallsByCallId(messages)toolResultToTexthas a third caller,contentText(line 498), which passes no call and so can nevername an invocation. It is not a gap: no tool result reaches it, because all three of its callers
select on role first — line 285 guards on
user/developer, line 1034 is the turnuserMessagereached only after the
assistantandtoolResultbranches bothcontinue, and line 1052(
activePromptText) scans backwards for auser/developermessage.request-builder.tshas its owntoolResultToTextfor the textmessageschannel; differentchannel, no invocation line by design, out of scope.
Verification
bun run privacy:scan— passed.bun test tests/cursor-tool-result-invocation.test.ts tests/cursor-tool-continuation.test.ts tests/cursor-blob.test.ts— 124 pass, 0 fail.bun x tsc --noEmitonssh lidgeat the head SHA.No GUI change.
Checklist
Summary by CodeRabbit