Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 0 additions & 40 deletions herdr-insights/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,28 +37,6 @@ click-state rules. Set `HERDR_APP_HOME` to use a different app home.
- Open **Settings** to choose sources, edit paths, toggle cached tokens, or
change the palette and refresh interval.

## Long scans and recovery

- A foreground refresh is a bounded slice. When work remains it returns
committed data, the dashboard keeps rendering, and the view automatically
continues. Herdr's exec timeout is unchanged.
- A giant non-seekable zstd archive that cannot finish in one slice continues
in one managed local detached Node worker. Polling never restarts it. There
is no fabricated compressed-offset resume; after a crash the unfinished
archive and any uncheckpointed batch are replayed, while completed files stay
committed.
- `prepare` and status reads use a metadata-only cache plus sanitized live progress
(current file, decoded bytes, counters). Only a matching live local worker
claim and writer lock at the same generation may publish it; rows, config,
and accounting always come from committed state.
- `savedAt`/`lastScanAt` is the last persisted write; `lastCompletedScanAt` is
the last fully completed scan. A saved partial scan is not a completed scan.
- Locks fail closed. Empty, foreign, or legacy lock state is never age-evicted
automatically. Clean up manually only after proving no writer is running;
`lock.acquire-*`/quarantine leftovers are inactive, but recheck before
deleting anything.
- Node.js 22.15+ is required.

## Privacy

No network requests or uploads. The mod runs a local Node helper, reads session
Expand All @@ -79,21 +57,3 @@ without modifying them (see [INSTALL.md](INSTALL.md)).
Developer tests, fixtures, and release validation live outside this distribution;
see the repo's [development guide](../docs/herdr-insights-development.md). They are
not installation steps.

### Reproducible performance benchmark

The opt-in benchmark uses only synthetic sessions and never reads a real home:

```sh
node scripts/herdr-insights/benchmark.mjs
```

It starts three fresh presenter processes per case and records medians plus peak
RSS, source/store/payload bytes, filesRead, bytesRead, structuredClone counts,
and every gate in `research/issue-109/round2-perf-benchmark.json` (gitignored).
Cases cover 1,000 and 10,008 unique compressed Codex sessions cold and warm, a
single 250,000-event session, and 50MiB/500MiB plain and zstd payloads with fixed
usage cardinality. It also checks cached `status` latency while a stream-throttled
worker indexes. The benchmark is a development measurement, not native Herdr
proof and not a Node 22 compatibility certification; see the artifact's pending
gates for that separate work.
Loading
Loading