Replay one of your own sealed sessions
Drop the files from one session export — the journal CSV
(journal-….csv), the summary-….json, and the session.json
(it carries the alert log). The Intake #8 and Intake #9 files you already sent work as-is.
Drop files here, or tap to choose
Everything is parsed in this browser. Nothing is uploaded; the deploy carries no session data.
The room's rhythm — records per 30 s
The playhead is the replay moment. A silent stretch here is a fact about the records — the app's own GAP and quiet records live in the sealed summary, and scan attempts are not in this export.
Watched signatures — the session's own alert log
Glance — what a 2-second look should answer
typical ≥ −55
typical −75…−55
typical < −75
Counts are emitters heard in the last 2 minutes, banded by their window median — the typical level, not one loud sample.
Biggest movers (claimed trends only)
What changed in this pass — and what did not
- The band follows the typical, not the loudest moment. Each card's band is read from the median of the last 2 minutes (the basis prints on the card). The app's current view bands by the latest single sample — one −45 blip can paint a −85 device "Adjacent".
- A sparkline on every card. RSSI is noisy; the shape of the noise is information. Dashed lines mark the band edges (−55 / −75).
- Trend with its evidence attached. A trend is claimed only when two adjacent 90-second windows each hold ≥10 samples, comparing their medians: a direction needs Δ ≥ 5 dB (about twice the difference's own standard error), and "steady" is claimed only when the change is provably inside ±3 dB — flatness is a positive claim too. Otherwise the card prints why not ("too few recent samples", "change within noise", "heard once"). The current view compares the session's first and last samples — at indoor noise levels that coins a direction on roughly every second stationary emitter.
- The middle half, not the wildest extremes. Cards lead with the interquartile range; the session min…max survives, demoted and labeled "extremes", because one early outlier otherwise inflates it forever.
- Silence is labeled as a records fact. Radio chips read HEARING with the last-heard age, or QUIET (records) past 2 minutes — with the printed caveat that scan attempts are not in this export, so a replay can never prove the radio died; it can only say the records stopped.
- LEADs stay LEADs. The alert log renders in the app's own sentence form. The journal's
wl_matchcolumn is empty in current exports, so no card is ever marked as "the match" — the ribbon prints that limit instead of implying an identification. - Unchanged: the house band edges (−55 / −75), the honesty label, the UNPROVEN header, the median (a mean of dBm stays refused), and every fence below.
Fences
RSSI is not location and not distance — bands are device-relative signal words. A LEAD is a pattern match, not an identification of a device or a person. UNPROVEN labels stay until the Assayer's fixtures prove otherwise. $0 · passive records only · your files are parsed in this browser and never uploaded · nothing here deploys into the Detector app — integration is a separate, owner-ruled step (v0.3.8).
Theme: “Daylight Instrument” — paper ground, ink text, the app's own FR-028 band palette (every color paired with a word, a segment count, and a number; color is never the only channel). Working name “Signal Glass” is this prototype's label, not a product ruling.