CaseMark stops Mike's matter chat from quietly losing history

A post-merge cleanup turns a handful of silent failure modes in the chat experience into honest, visible ones.

chat-uisecurity

CaseMark spent this round hardening the parts of Mike that lawyers touch day to day. The headline fix: matter chat messages could fail to save without anyone noticing, quietly dropping pieces of a case's conversation history. Now a failed save stops and reports itself instead of vanishing. And when the AI hits a mid-answer error - a quota or budget limit, say - the interface surfaces it as a clear failure rather than freezing mid-stream.

The same pass adds guardrails around the AI features: a cap on how many requests a single user can fire in a given window, which protects against runaway cost and abuse, plus a filter that keeps internal system error messages from leaking back to whoever is using the API.

So what Anyone trusting Mike with live matter conversations should care - it's the difference between a chat tool you can rely on and one that loses your record without telling you.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

6 commits from CaseMark/mikeoss-casedotdev, oldest first. Source extracted verbatim from the harvested git log.

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 thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-281.md from inside the repo you want the changes in.

⬇ Download capture-thread-281.md