Wire QA intent detection in daemon routing + fix epoch units#6941
Conversation
Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ddf847cf30
ℹ️ About Codex in GitHub
Your team has set up Codex to 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 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| screenWidth, | ||
| screenHeight, | ||
| interactionType: 'computer_use', | ||
| reportToSessionId: sourceSessionId, |
There was a problem hiding this comment.
Gate escalation report metadata behind QA finalization support
Setting reportToSessionId on every escalation stores CU metadata for every escalated run, but the macOS client only sends cu_session_finalized when qaMode is true (ComputerUseSession.run), so non-QA escalations never trigger the metadata cleanup path in handleCuSessionFinalized. In long-lived desktop sessions this accumulates stale cuSessionMetadata entries and leaves the new report-linking path effectively incomplete unless QA mode is also enabled.
Useful? React with 👍 / 👎.
| const lower = taskText.toLowerCase().trim(); | ||
|
|
||
| // Direct QA/test commands | ||
| if (/^(qa|test|verify|check)\b/.test(lower)) return true; |
There was a problem hiding this comment.
Narrow QA intent matcher for generic “check” commands
The direct matcher marks any task beginning with check as QA intent, so routine computer-use requests like “check my inbox/calendar/slack” are treated as QA/test workflows even when no testing is intended. That broad trigger can unexpectedly flip sessions into QA-specific behavior and pollute QA/reporting paths for normal user tasks.
Useful? React with 👍 / 👎.
Co-authored-by: Vellum Assistant <assistant@vellum.ai> Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Vellum Assistant <assistant@vellum.ai> Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Vellum Assistant <assistant@vellum.ai> Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Vellum Assistant <assistant@vellum.ai> Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Vellum Assistant <assistant@vellum.ai> Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Vellum Assistant <assistant@vellum.ai> Co-authored-by: Claude <noreply@anthropic.com>
P0: Add detectQaIntent() for keyword/pattern matching of QA tasks. Wire it in task_submit and escalation handlers to set qaMode+reportToSessionId on CU sessions. Add qaMode/reportToSessionId to TaskRouted IPC message so clients know to start recording. P1: Fix epoch seconds→ms mismatch in Session.swift finalizeQARecording. P2: Map unknown session status to failed to match TS contract union.