Without a by-subject lookup a monitor cannot monitor. The only lookup was by device id — which requires already knowing the device the monitor is trying to discover. The subject column existed; nothing exposed it.
A query parameter, not a path segment: logSubject falls back to local:<audience>/<userID>, which contains a slash — a path route would have silently 404'd for exactly the accounts least able to notice.
The index stays a position in the whole log, not a per-subject number; a test puts an unrelated entry ahead so per-subject numbering fails it.
Unauthenticated, and the cost is documented: anyone with an fnid can see how many devices it has published and when. Inherent to key transparency — a substitution cannot be detected in a log nobody may read.
Scripts/watch-key-log.py — stdlib only, self-hosted, because a service everybody was enrolled in would learn which accounts are worth watching.
It states what it cannot see: a forked log needs witnesses (#23, none exist), and a silent relay reports "could not reach", never "no changes". First run is a baseline, not a report.
7 new tests; full relay suite green.
Closes #32.
**Without a by-subject lookup a monitor cannot monitor.** The only lookup was by device id — which requires already knowing the device the monitor is trying to discover. The `subject` column existed; nothing exposed it.
**A query parameter, not a path segment**: `logSubject` falls back to `local:<audience>/<userID>`, which contains a slash — a path route would have silently 404'd for exactly the accounts least able to notice.
**The index stays a position in the whole log**, not a per-subject number; a test puts an unrelated entry ahead so per-subject numbering fails it.
**Unauthenticated, and the cost is documented**: anyone with an fnid can see how many devices it has published and when. Inherent to key transparency — a substitution cannot be detected in a log nobody may read.
`Scripts/watch-key-log.py` — stdlib only, self-hosted, because a service everybody was enrolled in would learn which accounts are worth watching.
It states what it **cannot** see: a forked log needs witnesses (#23, none exist), and a silent relay reports "could not reach", never "no changes". First run is a baseline, not a report.
7 new tests; full relay suite green.
added 6 commits
<ul><li>34b665dc...1a0a93fa - 4 commits from branch <code>main</code></li><li>2c7ae289 - Let somebody watch the key log for their own account</li><li>7cffea68 - Let an operator switch off per-subject log queries</li></ul>
[Compare with previous version](/paulhitt/flamenet-relay/-/merge_requests/27/diffs?diff_id=2000724579&start_sha=34b665dcfbd083517fe77e265cc4083336d390f7)
added 11 commits
<ul><li>7cffea68...83f0a029 - 9 commits from branch <code>main</code></li><li>3a01cf11 - Let somebody watch the key log for their own account</li><li>5f552c5d - Let an operator switch off per-subject log queries</li></ul>
[Compare with previous version](/paulhitt/flamenet-relay/-/merge_requests/27/diffs?diff_id=2001133736&start_sha=7cffea682924a5de7c84c5143215181f9fef99e2)
paulhitt
(Migrated from gitlab.com)
merged commit 657e53693a into main2026-09-02 23:55:16 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #32.
Without a by-subject lookup a monitor cannot monitor. The only lookup was by device id — which requires already knowing the device the monitor is trying to discover. The
subjectcolumn existed; nothing exposed it.A query parameter, not a path segment:
logSubjectfalls back tolocal:<audience>/<userID>, which contains a slash — a path route would have silently 404'd for exactly the accounts least able to notice.The index stays a position in the whole log, not a per-subject number; a test puts an unrelated entry ahead so per-subject numbering fails it.
Unauthenticated, and the cost is documented: anyone with an fnid can see how many devices it has published and when. Inherent to key transparency — a substitution cannot be detected in a log nobody may read.
Scripts/watch-key-log.py— stdlib only, self-hosted, because a service everybody was enrolled in would learn which accounts are worth watching.It states what it cannot see: a forked log needs witnesses (#23, none exist), and a silent relay reports "could not reach", never "no changes". First run is a baseline, not a report.
7 new tests; full relay suite green.
added 6 commits
mainCompare with previous version
added 11 commits
main3a01cf11- Let somebody watch the key log for their own account5f552c5d- Let an operator switch off per-subject log queriesCompare with previous version
mentioned in commit
657e53693achanged the description