[object Object]

← 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

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 →