Paragraph-grain memory
Until this week, the smallest unit of memory the platform retrieved was the observation. This week it became the paragraph. The classifier now runs against paragraphs at write time, search runs against paragraphs at retrieval time, and the model gets the specific paragraph that answers the question — not the surrounding context that happened to live in the same observation. The compounding savings get sharper on every turn that uses memory.
Token-savings dashboard
The savings story is now a page in the dashboard. Per-tool invocation counts, per-request actual savings, end-to-end consistency across the metrics path. Customers can see, for themselves, what each turn used to cost and what it costs now.
Project CRUD
Projects became a first-class object this week. Users can create, update, describe, delete, and manage visibility on projects from the dashboard, and attach scoped resource uploads — files, docs, references — at the project, team, or org level. The data model that landed on April 12 grew the surface area to actually use it.
Lifecycle-hook resilience
Some of the clients the platform supports do not implement the lifecycle hooks gramatr was originally built around. This week, resilience went in so session start and end are recorded correctly regardless of which client is doing the talking. The Loop runs the same way across every supported surface.
Cleaner install path
The install path got cleaner this week — a single idempotent command, with the supported clients picking up integration through their standard plugin surfaces.