Repository navigation
Conversation
syanga
left a comment
There was a problem hiding this comment.
[gpt-6-astra] on behalf of Alan
Reviewed 538393a against 0b0a61a. Converged with no remaining findings.
Standards
Fresh native review found no documented-standard breaches or actionable smells. Existing domain helper reused; tests extend observable behavior.
Spec
Fresh native review found no missing requirements or scope creep. All owed wakes include unawaited notices; no new state/replay; query replacement preserved. Explicit audit of legacy assertions confirmed pending ownership and retained consumption, retirement, reset and Stop release controls.
Correctness
Outside Claude Opus 5.5 review found no defects and recommended shipping. Inspected ownership/helper, tombstones, consumption, retirement, reset/Stop, replacement and ProviderSessionManager idle release. Accepted unconsumed-notice retention remains bounded by existing session-manager policy. No tests run by reviewer; fiber timing and every rememberProviderThread caller were not exhaustively traced.
Original reviewed candidate a2097937d3eda18996fbda13ca1c1e6149d8e0b8 was rebased onto upstream test refactoring. A fresh native focused review confirmed identical ordered patch changes after whitespace normalization, byte-identical production code, preserved fixture messages/release controls, and unchanged lifetime caller. Earlier reviews remain applicable to this head.
Required vp run check:changed passed: 409 tests, format/lint/Knip/GraphQL/three typechecks. No live Claude cancellation/provenance claims; astack #165 remains open.
Remaining findings: Standards 0; Spec 0; Correctness 0.
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — Claude sessions now remain alive while already-owed wake turns are pending, preventing idle cleanup from discarding that work. The change is confined to existing session lifecycle tracking and introduces no new product defaults or permissions. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
When a Claude background command exits, its task can leave the live roster while its native notice turn is still owed. The adapter publishes pending background work during that gap, but the session-lifetime predicate returned false. An idle session release could therefore close the process before the notice turn was handled.
The lifetime predicate now consults the existing
owedWakeTasksForNativeThreadrelation for every remembered native thread. It covers awaited and unawaited notices, adds no state or replay, and leaves query replacement unchanged. Existing tests verify release after consumption, continuation retirement, process reset, and Stop.Assumed decisions
Verification
vp run check:changedpassed on head538393a5: 409 tests across both selected files, including the whole Claude adapter file; format, lint, both Knip passes, GraphQL verification, and all three affected typechecks passed.Signed review: #36029 (review)
The test-status helper could not publish statuses because this account lacks upstream push access. Full local result:
{ "tested": "538393a5da398f371435f8d63569b3d776ebef2e", "base": "0b0a61a01f2fd35319cfc55cb9a4145ec3c27593", "command": "vp run check:changed", "suites": { "apps/server/ClaudeAdapterV2": "pass", "check-changed": "pass" }, "summary": "409 tests across 2 selected files, including whole ClaudeAdapterV2.test.ts; format, lint, both Knip passes, GraphQL and all three affected typechecks pass.", "scope": "Changed Claude adapter and repository-selected adjacent tests and affected checks.", "limits": "Offline protocol fixtures; no live Claude dispatch/cancellation or resumed-context verification. Full repository CI/build not run locally per repository instructions." }Related investigation: syanga/astack#165 remains open. This PR addresses only T3 session ownership; cancellation provenance and resumed-context correction remain separate.
Implemented with GPT-6 Astra through Codex in T3 Code; correctness reviewed with Claude Opus 5.5.