You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 824263f
Browse filesBrowse the repository at this point in the historyBrowse files
nichedb-nightly: a Traffic section, so the report is not all zeros (#23)
Anthony (bot@ queue, 2026-10-16): "can we track anything here? its all
zeros?". The money lines are zero because nothing has been bought, but the
API rate limiter's hourly counter (api_usage) already records every /api
request per caller: ~270K requests a day from ~190K addresses. The report now
shows that (internal proxy addresses counted apart), plus accounts, sign-in
links sent vs used, API keys and feed alerts delivered, and the closing note
says the traffic is real and unpaid. The ssh read timeout goes to 10 min: the
whole reading took 4m47s in the daytime against a 5 min limit.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
thrownewError(`the stats script failed in ${APP_CONTAINER} on ${APP_HOST}: ${String(e.stderr||e.message).trim().slice(-400)}`);
150
177
}
@@ -215,7 +242,8 @@ function todoList(r) {
215
242
/** The honest closing line. A page of zeros should not read as a fault. */
216
243
functionhonestNote(r){
217
244
if(r.sales.n===0&&r.rev.events===0)
218
-
return'No crawl pass has ever been bought and the ledger is empty, so every money line is zero by circumstance rather than by fault. The paywall is live and answering 402.';
245
+
return'No crawl pass has ever been bought and the ledger is empty, so every money line is zero by circumstance rather than by fault. The paywall is live and answering 402.'+
246
+
(r.traffic?.reqs_24h ? ` The traffic is real: ${num(r.traffic.reqs_24h)} API requests from ${num(r.traffic.ips_24h)} addresses in 24h, mostly crawlers, and none of it paid.` : '');
219
247
if(r.alloc.owed===0&&r.members.active===0)
220
248
return"Money is arriving but nobody operates a niche, so all of it is the platform's. A claimed niche is what starts splitting it.";
221
249
returnnull;
@@ -225,6 +253,13 @@ function honestNote(r) {
225
253
functionsections(r){
226
254
constq=r.questions;
227
255
return[
256
+
...(r.traffic ? [{title: 'Traffic',sub: 'demand before money: API requests and accounts',rows: [
257
+
['API, 24h',`${num(r.traffic.reqs_24h)} requests from ${plural(r.traffic.ips_24h,'address','addresses')}; ${plural(r.traffic.keys_24h,'API key')} used (${num(r.traffic.keyed_reqs_24h)} requests)`],
258
+
['API, 7d',`${num(r.traffic.reqs_7d)} requests, ${num(Math.round(r.traffic.reqs_7d/Math.max(1,Math.min(7,r.traffic.days))))} a day on average`],
259
+
['Internal',`${num(r.traffic.internal_24h)} requests from our own proxies and services (not counted above)`],
260
+
['Accounts',`${num(r.people.users)} total, ${num(r.people.new_24h)} new and ${num(r.people.seen_24h)} seen in 24h; ${plural(r.people.logins_24h,'sign-in link')} sent, ${num(r.people.logins_used_24h)} used; ${plural(r.people.api_keys,'API key')} issued`],
261
+
['Alerts',`${plural(r.people.alerts_24h,'feed alert')} delivered in 24h`],
262
+
]}] : []),
228
263
{title: 'Niches',rows: [
229
264
['Total',`${num(r.niches.total)}: ${num(r.niches.operated)} operated, ${num(r.niches.open)} open for a claim`],
230
265
['Members',`${plural(r.members.active,'active membership')} across ${plural(r.members.people,'person','people')}`],
0 commit comments