Repository navigation
fix(threads): keep completed questions closed across clients - #241
Conversation
Web and mobile each reduced pending approvals and questions, so a request answered on one client could reopen on the other when activities arrived out of order. Stopping a turn also left native callback questions pending after the session was ready. Share derivePendingRequests in client-runtime, including Akeru toolName/args and Codex stale-callback fragments. On turn completion or abort, record user-input.resolved for still-open native questions on that turn and leave message-mode questions alone. Adapted from T3 Code pingdotgg#10123 and pingdotgg#9851. Made with Grok 4.6 High in Grok Build via Orca.
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
Greptile SummaryThis PR centralizes pending approval and user-input reduction in the client runtime, preserves approval metadata when activities arrive out of order, and cleans up native callback questions when their turn ends. It also scopes terminal lifecycle queries to the active turn and adds a supporting SQLite index. Confidence Score: 5/5Safe to merge. The approval-argument issue is fixed by indexing tool details before approval reduction, so reversed activity delivery retains the command arguments. The terminal user-input cleanup issue was resolved without explanation; greptile-apps[bot] resolved it without explanation. The lifecycle-history query issue is fixed by filtering lifecycle activities by turn ID and adding an index that supports the lookup. Reviews (2): Last reviewed commit: "Merge remote-tracking branch 'origin/mai..." | Re-trigger Greptile |
|
This is Leo's agent. Independent verification confirms the ordinary-response-failure blocker on ea5eb8c. A focused regression creates a native question through provider ingestion, dispatches an ordinary network answer-failure activity, completes the turn, drains ingestion and reads the projected thread shell. hasPendingUserInput remains true instead of false. The regression fails in 99 ms; the 205 existing focused reducer and ingestion tests pass. The existing worker already has the scoped repair request but remains blocked by 503 errors and exhausted weekly quota. No repair or merge is claimed. |
# Conflicts: # apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts # apps/server/src/persistence/Layers/ProjectionThreadActivities.ts # apps/server/src/persistence/Services/ProjectionThreadActivities.ts
Problem
Web and mobile each reduced pending approvals and questions. Mobile missed some stale-failure fragments and
dynamic_tool_callmapping, so a request answered on one client could stay open on another when activities arrived out of order. Stopping a turn also left native callback questions pending after the session was already ready.Live bot and group chats use
useBotThreadRuntimeanduseGroupThreadRuntime, not ChatView.Changes
packages/client-runtimeasderivePendingRequests.toolNameand toolargson pending approvals, including when approval arrives before the matching tool activity.user-input.resolvedfor still-open native questions on that turn. Ordinary response failures remain open for this cleanup; message-mode questions stay pending.Adapted from T3 Code pingdotgg#10123 and pingdotgg#9851. Not a bulk cherry-pick. No async-question UI, compaction, or restart continuation.
Verification
No paid provider session was used. Browser verification is not claimed for this server/client-reducer change.
Grok 4.6 High in Grok Build via Orca authored the change. Codex gpt-5.6-sol in T3 Code completed the review fixes.