← back to Domain Sniper
ct-source-ctlog: emit 'resumed' status when cursor pre-exists
6852b6973e761afe8374cb7780acaca2bd58596a · 2026-05-12 16:46:51 -0700 · steve
Argon was being silently picked up across restarts because the 'seeded'
event only fires on the first-ever encounter (position === null). Added
a 'resumed' status emit for the warm-cursor case + wired into both
watcher and dashboard console output. Also logged 3.17h honeypot DoH
spot-check (slice 2-3, fresh baits) — still 0/10, curve genuinely flat
through 20/50 baits across two slices.
Files touched
M README.mdM brand-typo-watcher.jsM ct-source-ctlog.jsM dashboard.js
Diff
commit 6852b6973e761afe8374cb7780acaca2bd58596a
Author: steve <steve@designerwallcoverings.com>
Date: Tue May 12 16:46:51 2026 -0700
ct-source-ctlog: emit 'resumed' status when cursor pre-exists
Argon was being silently picked up across restarts because the 'seeded'
event only fires on the first-ever encounter (position === null). Added
a 'resumed' status emit for the warm-cursor case + wired into both
watcher and dashboard console output. Also logged 3.17h honeypot DoH
spot-check (slice 2-3, fresh baits) — still 0/10, curve genuinely flat
through 20/50 baits across two slices.
---
README.md | 5 +++--
brand-typo-watcher.js | 2 ++
ct-source-ctlog.js | 1 +
dashboard.js | 2 ++
4 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index d79f2dd..38f13f8 100644
--- a/README.md
+++ b/README.md
@@ -50,8 +50,9 @@ Spot-checks via DoH at increasing intervals to find where the snipe window close
| Elapsed | Buckets checked | Snipes |
| --- | --- | --- |
-| ~2h | A/B/C/D/E (2 ea) | 0 / 10 |
-| ~3.1h | A/B/C/D/E (2 ea) | 0 / 10 |
+| ~2h | A/B/C/D/E (2 ea, slice 0-1) | 0 / 10 |
+| ~3.1h | A/B/C/D/E (2 ea, slice 0-1) | 0 / 10 |
+| ~3.2h | A/B/C/D/E (2 ea, slice 2-3) | 0 / 10 |
| ~6h | _pending_ | — |
| ~24h | full batch | — |
| ~48h | full batch (final) | — |
diff --git a/brand-typo-watcher.js b/brand-typo-watcher.js
index 65dd460..47aac24 100644
--- a/brand-typo-watcher.js
+++ b/brand-typo-watcher.js
@@ -183,6 +183,8 @@ function connectCtLog() {
console.error(`[${ts()}] ctlog ${st.type} on ${st.log || '?'}: ${st.msg || JSON.stringify(st)}`);
} else if (st.type === 'seeded') {
console.error(`[${ts()}] seeded ${st.log} at tree_size=${st.position}`);
+ } else if (st.type === 'resumed') {
+ console.error(`[${ts()}] resumed ${st.log} at cursor=${st.position}`);
}
},
});
diff --git a/ct-source-ctlog.js b/ct-source-ctlog.js
index f522785..45dd2d8 100644
--- a/ct-source-ctlog.js
+++ b/ct-source-ctlog.js
@@ -267,6 +267,7 @@ function startSingle({
const stats = { sths: 0, fetched: 0, x509: 0, precert: 0, parseErr: 0, emitted: 0 };
ee.emit('status', { type: 'started', log: log.name, pollMs, batchSize });
+ if (position !== null) ee.emit('status', { type: 'resumed', log: log.name, position });
async function tick() {
if (stopped) return;
diff --git a/dashboard.js b/dashboard.js
index b783e61..16d672b 100644
--- a/dashboard.js
+++ b/dashboard.js
@@ -129,6 +129,8 @@ function connectCtLog() {
console.error(`[${new Date().toISOString()}] ctlog ${st.type} on ${st.log || '?'}: ${st.msg || JSON.stringify(st)}`);
} else if (st.type === 'seeded') {
console.log(`[${new Date().toISOString()}] ctlog seeded ${st.log} at tree_size=${st.position}`);
+ } else if (st.type === 'resumed') {
+ console.log(`[${new Date().toISOString()}] ctlog resumed ${st.log} at cursor=${st.position}`);
}
},
});
← da97978 ct-source: expand default fan-out to 6 logs (sphinx+elephant
·
back to Domain Sniper
·
watch-drops: scaffold Step 6 — env-gated, czds-only adapter, ded6c22 →