Web companion: in-browser debug surface (v0.15.0) #16
Closed
opened 2026-05-27 18:42:24 -07:00 by vh
·
1 comment
No Branch/Tag Specified
main
diag/r30-gap-injection-harness
diag/r30-phi0-step-response
diag/r29-pad-series
graphify-tooling
v0.22.3
v0.22.2
v0.22.1
v0.22.0
v0.21.20
v0.21.19
v0.21.18
v0.21.17
v0.21.16
v0.21.15
v0.21.14
v0.21.13
v0.21.12
v0.21.11
v0.21.10
v0.21.9
v0.21.8
v0.21.7
v0.21.6
v0.21.5
v0.21.4
v0.21.3
v0.21.2
v0.21.1
v0.21.0
v0.20.17
v0.20.16
v0.20.15
v0.20.14
v0.20.13
v0.20.12
v0.20.11
v0.20.10
v0.20.9
v0.20.8
v0.20.7
v0.20.6
v0.20.5
v0.20.4
v0.20.3
v0.20.2
v0.20.1
v0.20.0
v0.19.9
v0.19.8
v0.19.7
v0.19.6
v0.19.5
v0.19.4
v0.19.3
v0.19.2
v0.19.1
v0.19.0
v0.18.11
v0.18.10
v0.18.9
v0.18.8
v0.18.7
v0.18.6
v0.18.5
v0.18.4
v0.18.3
v0.18.2
v0.18.1
v0.18.0
v0.17.17
v0.17.16
v0.17.15
v0.17.14
v0.17.13
v0.17.12
v0.17.11
v0.17.10
v0.17.9
v0.17.8
v0.17.7
v0.17.6
v0.17.5
v0.17.4
v0.17.3
v0.17.2
v0.17.1
v0.17.0
v0.16.1
v0.16.0
v0.15.1
v0.15.0
v0.14.2
v0.14.1
v0.14.0
v0.13.0
v0.12.0
v0.11.0
v0.10.0
v0.9.0
v0.8.2
v0.8.1
v0.8.0
v0.7.1
v0.7.0
v0.6.5
v0.6.4
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.5.1
v0.5.0
v0.4.1
v0.4.0
v0.3.0
v0.2.1
v0.2.0
v0.1.0
Labels
Clear labels
blocked-needs-contract
blocked-needs-dependency
bug
cli
documentation
duplicate
enhancement
invalid
needs-architect-decision
needs-info
needs-triage
observability
ready-for-agent
sse-client
task
tui
wontfix
Sleipnir refuses dispatch — issue-scoped contract missing
Sleipnir holds dispatch — INV-029 dependency-aware gate
Something is not working
Command-line surface (--send, --new, --session, etc.)
Docs / contract / spec work
Duplicate of another issue
New feature or improvement
Not a real issue
Escalated for a design call
More info required from reporter
Newly filed, not yet sorted
Log-pane / debug-surface work (persona, admin events, Bifrost, tools)
Gates AFK dispatch via Sleipnir (applied by /sleipnir-preflight)
SSE consumer module (src/ratatoskr/sse_client.py)
Implementation task
Textual app shell + presenters
Accepted as not-fixing
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: vh/ratatoskr#16
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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).