Summary
I observed memtrace status printing UI: http://localhost:3030 while nothing was listening on TCP 3030. The URL comes from the uiPort field of daemon-state.json, and status does not appear to check that a listener is actually up before printing it as available.
Version
memtrace 0.8.63, macOS arm64.
What I observed
- In a workspace whose owner record (
daemon-state.json) carried uiPort: 3030 while no process was serving the dashboard on :3030 (the process that wrote the record was no longer serving it), I ran memtrace status.
Observed:
Owner PID: <pid>
UI: http://localhost:3030
0 nodes - 0 edges - 0 episodes
lsof -nP -iTCP:3030 -sTCP:LISTEN returned nothing, and curl http://localhost:3030 was refused.
status reported the UI URL with no "unavailable" or "degraded" hint, though nothing served it.
Expected
Before advertising the UI URL, I expect status to confirm the listener is reachable (a TCP connect or an HTTP HEAD on uiPort), or to label it as "configured, not verified". Right now the URL is echoed straight from daemon-state.json.
Impact
status is the natural command for answering "is the dashboard up?". Printing a healthy URL that serves nothing is a misleading diagnostic: it points at a dead http://localhost:3030 and hides that the UI is actually down. A restart, or a dashboard process that stopped while an owner record remained, can leave status advertising the dead URL.
Summary
I observed
memtrace statusprintingUI: http://localhost:3030while nothing was listening on TCP 3030. The URL comes from theuiPortfield ofdaemon-state.json, and status does not appear to check that a listener is actually up before printing it as available.Version
memtrace 0.8.63, macOS arm64.
What I observed
daemon-state.json) carrieduiPort: 3030while no process was serving the dashboard on :3030 (the process that wrote the record was no longer serving it), I ranmemtrace status.Observed:
lsof -nP -iTCP:3030 -sTCP:LISTENreturned nothing, andcurl http://localhost:3030was refused.status reported the UI URL with no "unavailable" or "degraded" hint, though nothing served it.
Expected
Before advertising the UI URL, I expect status to confirm the listener is reachable (a TCP connect or an HTTP HEAD on
uiPort), or to label it as "configured, not verified". Right now the URL is echoed straight fromdaemon-state.json.Impact
statusis the natural command for answering "is the dashboard up?". Printing a healthy URL that serves nothing is a misleading diagnostic: it points at a dead http://localhost:3030 and hides that the UI is actually down. A restart, or a dashboard process that stopped while an owner record remained, can leave status advertising the dead URL.