feat(warp): preserve raw warp rows in uploaded sessions#133
feat(warp): preserve raw warp rows in uploaded sessions#133daveslutzkin merged 1 commit intomainfrom
Conversation
Keep the existing normalized Warp transcript events for compatibility while appending namespaced raw JSONL rows for ai_queries, agent_tasks, agent_conversations, and blocks. The raw evidence stays nested under a raw object so current server parsing ignores it instead of misclassifying it as transcript content or cwd metadata. This also preserves agent_tasks task blobs as base64 plus a SHA-256 fingerprint, reuses block rows for cwd fallback, and adds Warp-focused tests covering the raw JSONL shape and task blob fidelity.
There was a problem hiding this comment.
Cadence PR Review
Goal
Extend Warp session upload so Cadence keeps the current normalized transcript behavior while appending additional raw Warp database evidence for later server-side analysis, especially raw ai_queries, agent_tasks, agent_conversations, and blocks rows. The key constraint was preserving parser compatibility by keeping the new evidence namespaced and nested so existing server logic ignores it.
| Signal | Details |
|---|---|
| Score | |
| Models | gpt-5.4 |
| Phases | 25% investigation, 60% implementation, 15% verification |
Key Decisions
- The user chose a phase-1 compatibility strategy: keep normalized Warp events unchanged and append separate
warp_raw_*rows instead of changing the existing schema. - The model expanded scope beyond
ai_queriesandagent_tasksto also fetch per-conversationagent_conversationsandblocksraw rows so uploads carry more underlying evidence. - The user and model kept cwd recovery behavior on the existing fallback path rather than moving repo metadata onto the new raw rows.
Outcome
The model appears to have delivered the requested Warp raw-evidence lane cleanly and stayed aligned with the compatibility constraints called out in the PR. The implementation is focused, includes targeted tests for the risky parser-compatibility and task-blob-preservation requirements, and shows little sign of unnecessary drift.
If this review was useful, please react with 👍 below. Otherwise, react with 👎.
Purpose
Preserve substantially more raw Warp session evidence in uploaded session blobs without breaking the current server-side Warp parser.
Summary
This change keeps the existing normalized Warp transcript output intact and appends supplemental raw JSONL rows for the Warp tables we currently read.
Specifically, it:
user,assistant,tool_call,tool_result, andwarp_metaWarp eventsai_queries,agent_tasks,agent_conversations, andblocksagent_tasks.taskblobs as base64 plus a SHA-256 fingerprintagent_conversationsandblocksrows per conversation so the uploaded blob carries more of the underlying Warp evidencebase64dependency required for raw task blob preservationImportant Review Points
warp_raw_*rows intentionally avoid top-levelcontentand cwd-like fields, and keep raw payloads nested underraw, so current server parsing should ignore them rather than misclassify them as transcript content or repo metadata.src/agents/warp.rsto confirm we are carrying forward the tables and fields we care about for phase 1.task_blob_base64andtask_blob_sha256handling to confirm the rawagent_tasks.taskpayload is preserved losslessly enough for later server-side analysis.Test Plan
cargo fmtcargo test --no-fail-fastcargo clippy(completes with one unrelated existing warning insrc/agents/cursor.rs)