Skip to content

Task 10: Web Dashboard Cannot Connect to Live Debug Sessions Because Server Routes Are Mocked #306

Description

@grantfox-oss

Grat features an interactive web dashboard designed to allow developers to connect to live debugging sessions, visualizing their transaction traces in real time. The server facilitates this via the /api/session/:sessionId REST endpoints and associated WebSockets. Currently, the architecture for this system in session.ts is entirely fraudulent. The routes do not interact with any database, cache, or memory pool; they simply return a hardcoded JSON payload of { status: "not_found" } for every single request. Consequently, the frontend application is completely severed from the backend's state. When a developer attempts to launch the dashboard and connect to an active trace, the web application invariably receives a "not_found" response, making it physically impossible to initialize, connect, or resume any interactive debugging session.

Issues/what to fix

The Fastify routing architecture must be connected to a real, persistent state management system. A sophisticated session controller must be built, likely leveraging Redis, an embedded key value store, or a thread safe Arc<RwLock> in memory. When a debugging session is initiated by the CLI, the server must securely generate a token and store the session metadata in this controller. The /api/session/:sessionId endpoint must be rewritten to dynamically query this store. If the session exists, it must return the active connection metadata, the WebSocket URL, and the current transaction trace state, allowing the frontend client to successfully bootstrap its UI.

Files location

apps/server/src/routes/session.ts

Expected result

The artificial boundary between the web UI and the backend will be broken down. Developers will experience a seamless transition; initiating a debug session via the CLI will instantly spin up a persistent server state, and the web application will seamlessly query, discover, and connect to that live session to begin rendering real time metrics.

Contributor telegram group

https://t.me/+sII7WPhll2liMGNk

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions