docs(miner): publish a measured CPU/RAM/disk sizing table for laptop vs fleet mode - #5645
Conversation
…vs fleet mode Neither the operational-runbook issue nor the local-stores documentation commits to publishing real, measured resource numbers, so operators had no data-backed answer to how much CPU/RAM/disk a laptop-mode run needs, or how fleet mode scales with worker count. Adds packages/gittensory-miner/docs/sizing.md: real numbers for `init` + `discover` measured with /usr/bin/time -v (laptop mode) and docker stats (fleet mode, N=1 and N=4 isolated Docker volumes, matching docker-compose.miner.yml's own documented isolation requirement), plus the exact reproduction commands and measurement environment. Deliberately excludes a live coding-agent attempt cycle, which would need real operator credentials and write to a real target repo -- discover is measured instead as the dominant, always-run, network-bound phase every mode shares.
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
Tip 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 ✅ LoopOver review result - approve/merge recommendedReview updated: 2026-07-13 19:15:50 UTC
✅ Suggested Action - Approve/Merge
Review summary Nits — 6 non-blocking
Review context
Contributor next steps
Signal definitions
[BETA] Chat with GittensoryAsk Gittensory a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://gittensory.aethereal.dev/docs/gittensory-commands 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
Summary
publishing real, measured resource numbers — both are scoped to narrative/reference content, not a sizing
table. Operators had no data-backed answer to "how much CPU/RAM/disk does one laptop-mode run need, and how
does that scale in fleet mode?"
packages/gittensory-miner/docs/sizing.mdwith real, measured numbers for both modes, the exactreproduction commands, and the measurement environment, so the numbers are reproducible and falsifiable by a
reviewer — not asserted from memory.
gittensory-miner init(laptop mode only) followed bygittensory-miner discover <owner/repo>... --jsonagainst real, small public repos (octocat/Hello-World,octocat/Spoon-Knife) withno
GITHUB_TOKEN— real unauthenticated GitHub GETs, metadata fan-out + ranking, zero writes.attemptcycle: that needs operator-suppliedGITHUB_TOKEN+ coding-agentCLI credentials and writes a real branch/PR to a real target repo — not something to spend for a
resource-sizing exercise, and not reproducible by a reviewer without their own credentials.
discoverismeasured instead as the dominant, always-run, network-bound phase every mode exercises identically.
/usr/bin/time -varound the CLI process (no container).packages/gittensory-miner/Dockerfileimage and measured withdocker stats --no-streampolled once per second per container, at N=1 and N=4 workers. Perdocker-compose.miner.yml'sown documented warning that N replicas sharing one volume corrupt/contend on the SQLite ledgers, N=4 here
means four separate named volumes (
docker run -d -v miner-n<i>:/data/miner ...per worker) — the sameisolation pattern the compose file itself recommends, not a single shared-volume
--scale.du -sh/du -ahon the resolved state dir (laptop mode) or each worker's mounted volume via adisposable
alpinecontainer (fleet mode), after the run.Measured results
init)discover, 1 repo, 90 issues)discover, 2 repos)discover, 2 repos)Measured on a 4 vCPU / 9.5 GiB RAM Linux sandbox — see
docs/sizing.mdfor the full methodology, exactcommands, environment caveat, and takeaways (per-worker memory does not measurably change between N=1 and N=4
since each worker is an independent Node process with no shared heap; CPU is dominated by waiting on GitHub's
API, not local computation).
Fixes #5182
Scope
type(scope): short summaryConventional Commit format, for examplefix(api): restore profile access checks.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Closes #123) — a linked open issue is required for every contributor PR.Validation
git diff --checknpm run actionlintnpm run typechecknpm run test:coverage— N/A: this is a docs-only deliverable with nosrc/**logic change and no new measurement script/helper added (the issue's own Test Coverage Requirements only apply "if any measurement script or helper is added to produce the numbers" — none was; the numbers were captured with ad-hoc, documented shell commands, all reproduced exactly in the doc itself).npm run test:workersnpm run build:mcpnpm run test:mcp-packnpm run build:minernpm run test:miner-pack— confirmeddocs/sizing.mdpacks correctly into the published@loopover/minertarball.npm run ui:openapi:checknpm run ui:lintnpm run ui:typechecknpm run ui:buildnpm audit --audit-level=moderateRan the full local gate:
npm run test:ci(0 failures) andnpm audit --audit-level=moderate(0 vulnerabilities), both clean on the final commit. Also directly ran the exactFORBIDDEN_PATH/FORBIDDEN_CONTENTregexes fromscripts/check-miner-package.mjs/scripts/forbidden-content.mjsagainst every new/touched file — zero matches.Safety
UI Evidencesection below. — N/A, see below.docs/sizing.md, cross-linked fromREADME.mdandDEPLOYMENT.md.UI Evidence
N/A — this is a docs-only change with no visible UI surface. No screenshots apply.
Notes
strictly the sizing table, methodology, and reproduction commands.
docs/sizing.md's"Methodology" section against this repo's own
Dockerfile/CLI on the environment described — none wereestimated, interpolated, or asserted from memory.