analytics 2026-04-21
This page is the daily netsky observability cut: DuckDB-style SQL over ~/.netsky/meta.db, rendered by netsky analytics daily, with Plotly charts checked into the website. It is both the operator dashboard and the product demo of what the system measures about itself.
generated 2026-04-21T12:00:06Z
summary #
- sessions: 2 (median —)
- crashes: 0 (MTTR —)
- clones dispatched: 3 (0.0 clone-hours)
- tokens: 0 in / 0 out / 0 cached ($0.00)
- tasks closed: 8 (actual 2307 min, median drift -40.0%)
- task state: 13 open / 83 closed (close rate +86.5%)
- messages: 146
- commits to main: 36
- uptime: agent0 22h58m / any session 22h58m
sessions by agent #
messages by source #
clones by runtime #
tokens by runtime #
no data for this day
token percentiles (input / event) #
no data for this day
tasks closed today #
- count: 8
- total actual minutes: 2307
- median drift: -40.0%
task metrics #
Historical fix: same-minute closes now floor actual_minutes at 1 when a task closes after creation but before the clock crosses a full minute. That repairs pre-v8 zero-minute rows without inventing a new lifecycle column.
- open: 13
- closed: 83
- close rate: +86.5%
- median estimate: 60 min
- median actual: 27 min
- median drift: -40.0%
- dispatch to harvest median: —
open by priority #
closed by priority #
open by source #
closed by source #
cycle time histogram #
dispatch to harvest latency #
no data for this day
top drifted tasks #
| task | estimate | actual | drift |
|---|---|---|---|
| #82 skill: /estimate - reads task brief + historical actuals, returns estimate_minutes + confidence | 60 min | 27 min | -55.0% |
| #83 gate: netsky task update –status in_progress refuses when estimate_minutes is null. clones must estimate-at-ack or /estimate skill fills heuristic default. codify in 0.md clone-ack protocol | 45 min | 27 min | -40.0% |
| #88 analytics data-eng overhaul: filter controls, data tab (tables + CSV/parquet + schema), duckdb-wasm playground, drill-down, group-by selectors, comparison views | 120 min | 85 min | -29.2% |
test suite timing #
- tracked tests: 10
| suite | test | runs | p50 7d | p90 7d | last |
|---|---|---|---|---|---|
netsky test unit | unit/test-iroh-e2e.sh | 27 | 8859 ms | 9087 ms | 8970 ms |
netsky test integration | integration/test-clone-tool-deny-hook.sh | 13 | 8318 ms | 8871 ms | 8259 ms |
netsky test integration | integration/test-clone-health-json.sh | 13 | 1256 ms | 5502 ms | 5502 ms |
netsky test unit | unit/test-fresh-clone.sh | 28 | 3092 ms | 5052 ms | 4867 ms |
netsky test unit | unit/test-channel-concurrent-send.sh | 28 | 3710 ms | 4551 ms | 3426 ms |
netsky test unit | unit/test-test-record-to-db.sh | 28 | 3177 ms | 3222 ms | 3212 ms |
netsky test unit | unit/test-status-watch.sh | 28 | 3124 ms | 3149 ms | 3142 ms |
netsky test integration | integration/test-netsky-ai-status-wait-cat.sh | 13 | 2241 ms | 2264 ms | 2242 ms |
netsky test unit | unit/test-bash-portability.sh | 28 | 1345 ms | 2127 ms | 1791 ms |
netsky test unit | unit/test-pre-push-guard.sh | 19 | 1787 ms | 2087 ms | 1857 ms |
tokens per task #
- no task-attributed token rows
iroh #
- connect: 0, evict: 0, reconnect: 0, handshake_refused: 0
queries #
DuckDB rerun snippets:
task snapshot by priority #
SELECT status, COALESCE(priority, 'unscoped') AS priority, COUNT(*) AS n FROM tasks WHERE created_at < '2026-04-22T00:00:00Z' GROUP BY status, priority ORDER BY status, n DESC;
closed-task drift #
SELECT id, title, estimate_minutes, actual_minutes, ((actual_minutes - estimate_minutes) * 100.0) / estimate_minutes AS drift_pct FROM tasks WHERE status = 'closed' AND closed_at >= '2026-04-21T00:00:00Z' AND closed_at < '2026-04-22T00:00:00Z' AND estimate_minutes IS NOT NULL AND actual_minutes IS NOT NULL ORDER BY ABS(((actual_minutes - estimate_minutes) * 100.0) / estimate_minutes) DESC LIMIT 10;
task token attribution #
SELECT task_id, model, SUM(COALESCE(input_tokens, 0)) AS input_tokens, SUM(COALESCE(output_tokens, 0)) AS output_tokens, SUM(COALESCE(cached_input_tokens, 0)) AS cached_tokens, SUM(COALESCE(cost_usd_micros, 0)) AS cost_usd_micros FROM token_usage WHERE task_id IS NOT NULL AND ts_utc >= '2026-04-21T00:00:00Z' AND ts_utc < '2026-04-22T00:00:00Z' GROUP BY task_id, model ORDER BY cost_usd_micros DESC;
test timing rollup #
SELECT suite, name, duration_ms FROM test_runs WHERE ts_utc >= '2026-04-15T00:00:00Z' AND ts_utc < '2026-04-22T00:00:00Z' AND name <> '' ORDER BY suite, name, duration_ms;
dispatch to harvest proxy #
SELECT c.branch, MIN(c.ts_utc_start) AS dispatch_start, h.commit_sha, MIN(h.ts_utc) AS harvest_ts FROM clone_dispatches c JOIN harvest_events h ON h.source_branch = c.branch WHERE c.ts_utc_start < '2026-04-22T00:00:00Z' AND h.ts_utc < '2026-04-22T00:00:00Z' AND h.status = 'applied' GROUP BY c.branch, h.commit_sha;