CaseMark closes the back doors and unsticks the chat
A rollup of security hardening lands alongside a fix that finally tells users when a streaming chat reply has failed.
Most of this branch is the unglamorous work that separates a demo from something you'd actually let clients touch. Document access checks got stricter, the bare links that used to point at files were swapped for expiring download tokens, and the routes that call the AI model now have rate limits - three changes that together shut down both casual snooping and the kind of abuse that runs up a bill. Per-row access checks on tabular documents were also reworked for speed.
The more visible fix is on the chat side: when the streaming reply from the model errors out mid-flight, the UI now shows a readable failure instead of sitting there spinning. Anyone who has watched a half-finished AI answer freeze on screen knows why that matters. Workflow context is also now saved on each chat message, so reopening a conversation doesn't lose what the assistant was meant to be doing.
Spotted something wrong? Or know the PR text has fresher detail than the writeup above?