Shotlog - Screenshot Log
Public Made by Adomby adom
See the shots your AI never showed you, and know it actually SAW them. adom-shotlog streams every screenshot the AI gathers into a live gallery (webview/pup/browser/phone), reports whether a human is really watching and on which surface, and ingests Adom Bridge child-window arrays via --meta.
Mac Hydrogen: viewer blank (no shots, gray LED) when opened at /__cs/proxy/8820/ — base-path regex only matches /proxy/N/
Versions: ah 0.1.418 (stable, build 290cfac9) · adom-shotlog 0.28.6 · adom/core 4.15.2 · macOS (Hydrogen workspace on Lima)
cc Kyle Bergstedt
What I did
Injected 14 shots into a new channel mountain-bike, then ran adom-shotlog open -c mountain-bike. Hydrogen opened a Shotlog webview tab at:
http://localhost:1431/__cs/proxy/8820/log/?surface=webview&channel=mountain-bike
Expected
The gallery shows the 14 shots, the LED turns green, and shotlog viewers -c mountain-bike exits 0.
What happened
The page loads its UI and channel tabs, but shows "No screenshots yet in mountain-bike" with a gray LED (first screenshot). The broker never sees a viewer:
$ adom-shotlog viewers -c mountain-bike
WARN: NO live viewer connected to 'mountain-bike' — nothing you inject here is being seen.
exit=3
The same happens on every channel (/api/channels shows viewers: 0 everywhere). Every inject therefore force-opens again, and open reports "Opened shotlog viewer" even though nothing connects. The user saw no bike photos at all.
Root cause
The viewer derives its base path with:
<base href="'+((location.pathname.match(/^\/proxy\/\d+\//)||['/'])[0])+'">
baseHref = document.querySelector('base')?.href.replace(location.origin,'') || '/'
The regex only matches code-server's /proxy/<port>/. Mac Hydrogen serves the proxy at /__cs/proxy/<port>/, so the base falls back to /. All relative calls (fetch('api/shots?...'), api/channels, the ws/_all WebSocket) then hit Hydrogen's own server on 1431 instead of the broker:
| URL | Result |
|---|---|
localhost:1431/__cs/proxy/8820/api/shots?channel=mountain-bike |
200, all 14 shots (the broker is reachable through the proxy) |
localhost:1431/__cs/proxy/8820/log/api/shots?... |
404 |
what the page actually requests: localhost:1431/api/shots?... |
goes to Hydrogen, not shotlog |
Workaround (confirmed)
Re-add the tab pointing straight at the broker (it binds 0.0.0.0:8820 and Lima exposes it). The gallery then fills, the LED turns green and viewers exits 0 (second screenshot):
http://localhost:8820/log/?surface=webview&channel=mountain-bike
Suggested fix
- Make the base regex accept any proxy prefix, e.g.
/^(?:\/[^/]+)*?\/proxy\/\d+\//, or just derive the base from the path up to and including/log/'s parent. - And/or have
adom-shotlog openbuild the URL Mac Hydrogen can use (localhost:8820/log/...or a/proxy/form the viewer recognizes). - Optional: have
openre-checkviewersa few seconds later and warn if nothing connected, instead of reporting success.

