Repository navigation
fix(logs): stop loading execution data and snapshots that reads do not use - #9349
Conversation
…t use - Status polls select execution_data through a CASE only for the statuses the poll reads it for (failed; completed when output is requested; always for selected outputs), from one shared status rule. - The execution snapshot view no longer loads execution_data while resolving its context; it is read only after authorization, so a refused caller never fetches it. - The paused execution list projects execution_snapshot->'triggerIds' instead of loading whole rows with the serialized executor snapshot. - One shared terminal-status predicate replaces the copies in the HITL manager and run-file reads.
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
There was a problem hiding this comment.
All reported issues were addressed across 7 files
Heads up: you’re close to your flex budget. Increase your flex budget so reviews don’t pause.
Turn on auto-fix | Re-trigger cubic
[Medium impact] The PR appears safe to merge; no actionable issues remain. SummaryThis PR avoids fetching large execution payloads when readers do not use them.
No new actionable issues were found. No previous review threads were supplied. Tests were inspected but not run.
|
…cost it pairs with
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
No issues found across 7 files
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Heads up: you’re close to your flex budget. Increase your flex budget so reviews don’t pause.
Turn on auto-fix | Re-trigger cubic
Summary
execution_dataon every poll: aCASEreturns it only for the statuses the poll reads it for (failed for the error; completed when output is requested; always for selected outputs). The rule is one shared function, so the SQL and the in-memory check cannot driftexecution_datawhile resolving its context. It is read after authorization, so a refused caller never fetches the payload; parent and child snapshots share one chunked readerexecution_snapshot->'triggerIds'instead of loading whole rows with the serialized executor snapshot (onlytriggerIdswas used)Type of Change
Testing
execution-read-payloads.integration.ts(real Postgres, records every value the client receives): status polls for a running run with output and a completed run without output, the paused list, and a refused snapshot caller all fetch no execution payload (4 cases fail on the pre-fix code); completed-with-output and failed polls still fetch itlib/logs,lib/workflows/executor,app/api/v1/logs(51 files, 672 tests)check:test-patterns,check:utils,check:comment-hygiene,check:unused-exports,check:file-names,check:explicit-any,check:source-conventions; generators in sync. Type-check and full audits run in CIChecklist
test-auditauthoring gate)