[codex] Handle streamed chat errors and harden document access

✅ merged · #8 · CaseMark/mikeoss-casedotdev ← CaseMark/mikeoss-casedotdev · opened 22d ago by kveton · merged 22d ago by kveton · self · +767-196 across 17 files · ↗ on GitHub

From the PR description

Summary

  • carries forward the post-merge hardening work from the prior branch: workflow metadata persistence, document access hardening, expiring download tokens, AI route rate limits, and normalized document load errors
  • adds streamed chat error handling so SSE { type: "error" } events surface as user-readable failures instead of leaving the chat in a confusing streaming state
  • keeps shared document load error parsing in one frontend helper

Why

The previous PR was merged before the follow-up hardening commits could receive a fresh bot review. This PR packages those changes plus the local chat-stream error handling into a new reviewable branch.

Validation

  • npm run build --prefix backend
  • (cd frontend && npx tsc --noEmit)
  • npm run build --prefix frontend
  • git diff --check

Our analysis

Harden post-merge surface and surface streaming chat errors — read the full analysis →

Think the analysis missed something the PR description covers?

Commits in this PR (6)

SHA Subject Author Date
3011eb79 Persist workflow metadata for chat messages kveton 2026-05-04 ↗ GitHub
d5539959 Harden document access and request limits kveton 2026-05-04 ↗ GitHub
4e770c9b Normalize document load errors kveton 2026-05-04 ↗ GitHub
a2842e05 Handle streamed chat errors kveton 2026-05-04 ↗ GitHub
e0f2d13d Optimize tabular document access checks kveton 2026-05-04 ↗ GitHub
3aadb6f8 Serialize jsonb values in Postgres compat writes kveton 2026-05-04 ↗ GitHub

Capture this PR into my fork

Download a Markdown prompt that tells Claude how to port every commit in this PR into your working tree. Run it via claude -p < capture-pull-8.md from inside the repo you want the changes in.

⬇ Download capture-pull-8.md