app
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.
← Commit history
Publish 0.27.1
8 files changed
+23−8
Cargo.lock+1−1@@ -10,7 +10,7 @@ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "adom-shotlog"-version = "0.27.0"+version = "0.27.1" dependencies = [ "axum", "base64",
Cargo.toml+1−1@@ -1,6 +1,6 @@ [package] name = "adom-shotlog"-version = "0.27.0"+version = "0.27.1" edition = "2021" description = "Screenshot log viewer and CLI for Adom" license = "MIT"
VERSION+1−1@@ -1 +1 @@-0.27.0+0.27.1
bin/adom-shotlog⋯ 1 unchanged line ⋯
dev-skills/adom-shotlog-dev/SKILL.md+10@@ -431,3 +431,13 @@ just auto-recreates it (fresh dir, ids restart at 1, tab reappears via the WS entry handler's ensureChan). Per-channel /api/clear-all still exists for programmatic use. NEVER test clear-everything against the live 8820 broker - it nukes John's real channels; use a throwaway broker + data dir.++## Fleeting overlays NEVER scroll internally (John, 2026-08-17)+The compact-mode info overlay had max-height:82% + overflow-y:auto - John:+"its just an overlay, why not do fluid layout such that it shows all of its+content since its a fleeting overlay". Rule: any hover-revealed, self-+dismissing overlay sizes to its FULL content, spilling past its container+like a tooltip (shadow + full border to read as floating). The card's+overflow:hidden clip is escaped with `.shot-card:has(.card-info.show)+{ overflow: visible }` (:has is fine - every shotlog surface is Chromium).+Content is bounded anyway (context truncates at capture), so no cap needed.
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "adom-shotlog",- "version": "0.27.0",+ "version": "0.27.1", "type": "app", "title": "Shotlog - Screenshot Log", "description": "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.",
page.json+1−1@@ -1,6 +1,6 @@ { "slug": "adom-shotlog",- "version": "0.27.0",+ "version": "0.27.1", "type": "app", "title": "Shotlog - Screenshot Log", "description": "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.",
src/html/index.html+8−3@@ -190,10 +190,15 @@ header { body.compact .feed { gap: 8px; padding: 8px; } body.compact .shot-card { position: relative; } body.compact .card-info { display: none; }+/* The revealed overlay is FLEETING (gone on mouse-out), so it NEVER scrolls+ internally: it sizes to its full content and may spill past the card's+ bounds, floating over whatever is below (like a tooltip would). */ body.compact .card-info.show { display: block; position: absolute; top: 0; left: 0; right: 0;- z-index: 6; background: rgba(13,17,23,.95); backdrop-filter: blur(3px);- border-bottom: 1px solid var(--border); border-radius: 10px 10px 0 0;- padding-bottom: 9px; max-height: 82%; overflow-y: auto; }+ z-index: 6; background: rgba(13,17,23,.96); backdrop-filter: blur(3px);+ border: 1px solid var(--border); border-radius: 10px;+ padding-bottom: 9px; box-shadow: 0 10px 28px rgba(0,0,0,.55); }+/* Let the overlay escape the card's overflow:hidden clip while it's shown */+body.compact .shot-card:has(.card-info.show) { overflow: visible; } /* natural aspect: the browser sizes the box from width x aspect (no fixed height = no letterbox bars), capped so one giant portrait can't eat the feed */ body.compact .shot-card-img { height: auto; max-height: 420px; object-fit: contain; }