Web companion: in-browser debug surface (v0.15.0) #16
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Browser-based debug companion to the Ratatoskr TUI, reusing the existing wire-layer modules (
sse_client,sessions,tier3,local_agents). Same five surfaces (transcript, thinking, tools, debug, persona) over the same Worldtree Conversation API SSE wire, viewable from any device on the operator's LAN.Non-goals
Trust model
Internal-LAN debug surface. Binds
0.0.0.0. No auth, no CORS guard. Trust: anyone routable to the host's port. What stays disciplined regardless of network trust:Architecture (high-level)
src/ratatoskr/web/withentrypoint.py(lazy-import gate),server.py(Starlette app),static/index.html(UI)[web](starlette+uvicorn)ratatoskr-webEventSourceGET; prompt-submit is a separate POST (EventSourceis GET-only — load-bearing finding from Heid panel review)Endpoint surface
Ship criteria (v0.15.0)
ratatoskr-webconsole script launches Starlette on0.0.0.0:8765(configurable via--host/--port/--open); auto-prints URL to stderr/, picks agent, mints session, submits prompt, renders five panes live as upstream events arrive/api/turns/.../cancel)test_web_server.py,test_web_presentation_contract.py,test_web_packaging.pyOut of scope (deferred to v0.16.x+)
Last-Event-IDProvenance
Delivered across v0.15.0 → v0.16.1.
Shipped:
Verification: 378 tests passing. End-to-end smoke vs personal:8081 (v0.29.0) confirmed real session-create + SSE proxy. Heid pass 2: Groa zero findings, Hulda 2 minor (closed in v0.16.1). Review loop converged.
Contract: docs/contracts/issues/16.contract.md (v2.1 + v0.16.0 amendment).
Deferred to follow-ups: cross-reload resume via Last-Event-ID; Tier 3 lifecycle UI in browser; Markdown rendering; full structured access logging; TLS + real auth (LAN-trust model only).