3.0 KB · updated 2026-07-06 · md

v0.16.0.md

docs/release-notes/v0.16.0.md

Tesserae v0.16.0 — the serve page goes live

<!-- translations:start -->

한국어 · 中文 · 日本語 · Русский · Español · Français · Deutsch

<!-- translations:end -->

Released 2026-07-06 · PyPI · GitHub release · pip install --upgrade tesserae==0.16.0

The tesserae serve sessions page no longer waits for the next compile. It now reads your live agent activity straight from the harness roots — so a session you're in right now shows up as you work.

Live sessions on the serve page

When you run tesserae serve, the Sessions page fetches a new /api/sessions endpoint that scans your Claude Code roots on the fly (recent-window bounded) and renders the currently-active sessions above the compiled table — session id, account, turn count, last-active time, and a preview of the opening turn. Open a static build (GitHub Pages) instead and the panel simply stays hidden: the compiled table is the whole page, exactly as before.

The fast transcript search box goes live the same way: fresh hits scanned from the roots are merged ahead of the memex index results (deduped), so a phrase you typed moments ago is findable before it's ever indexed.

Both surfaces are origin-gated — they expose local history, so a cross-site browser request is rejected, same as the clip endpoint.

Why Claude-only, and how codex stays covered

Claude Code transcripts are directory-scoped, so a live per-project scan is sub-second. Codex sessions are not — scoping to one project would mean parsing every recent session file (100k+ on a busy machine, ~170s per request), far too slow for an interactive page. So the live scan is Claude-only; codex is served from the memex index and the compiled projection as before. The offline tesserae summary and tesserae decisions commands still scan every account — Claude and codex — because they can afford the full pass.

--max-turns on summary and decisions

tesserae summary and tesserae decisions gain a --max-turns N flag that caps how many turns are read per session before windowing. Handy for bounding a huge session's cost when you only need a recent slice. The default stays effectively unbounded.

tesserae summary --day 2026-07-06 --max-turns 200
tesserae decisions --week --max-turns 200

Upgrading

Drop-in over v0.15.x. Everything is additive — the live endpoints only exist under tesserae serve, the page degrades cleanly on static hosting, and nothing needs a migration or re-compile. It reads your existing sessions on the fly.