Repository navigation
Preserve optional XMRig pool fields - #607
pithead-developer[bot] wants to merge 4 commits into
Conversation
Part of #527. Implemented by an operator-run gpt-6-astra session at the owner's request. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Operator: this v2.x enhancement stays a held draft until RigForge 1.18.1 is tagged (due Fri 2026-11-06, Sat 11-07 at the latest). 1.18.1 is cut from develop, so merging this first would widen that release. After the tag: rebase on develop, run the agent review, and request the owner's approval. |
|
Operator: released to the runner (owner 2026-11-06). New work goes to the local Flash-Next model first; Claude only after three local rounds or for sensitive work. |
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
PASS What I investigatedReviewed PR #607 at head e2ea9bb against issue #527. The new pool-fields test is green on the head and red with rigforge.sh reverted, and the head's GitHub checks are all green. Both XMRig validators match v6.26.0's source. I did not run
Reviewed head: |
Owner brief for
|
…rigforge # Conflicts: # rigforge.sh
|
PASS What I investigatedRound 2 at head 192d18e, a merge of develop-v1.19.0 into the PR branch. The PR's own diff against its base is unchanged since the round-1 PASS at e2ea9bb. The new pool-fields test is green at the head and red with rigforge.sh reverted, and my local full
Reviewed head: |
Owner brief for
|
What's the problem
RigForge drops XMRig's
rig-id,nicehash,algo,coin, andsnipool fields when generating the miner configuration. Operators cannot select these pool behaviors, and status/doctor do not identify a non-default live algorithm. Fixes #527.How I fixed it
Preserve non-null values for all five fields, including explicit
false, and validate them before generating or remotely applying configuration. Keep the existinguserdefault and legacy output unchanged. Accept the pinned XMRig release's canonical RandomX algorithms and RandomX coin names/codes; reject unknown values and non-RandomX coins to maintain the issue's scope.Show non-default live algorithms in status and doctor, document every supported pool field, and add an isolated regression suite through
tests/run.sh. The control receiver already stages complete pool objects, so its existing shared validation path needs no separate schema change. Existing assertions and file-budget ceilings are unchanged.Here is the proof
bash tests/test-pool-fields.sh rigforge.sh tests/contract/v1/feed.jsonexited 1. All five fields disappeared from both generated pools and explicitfalsevalues disappeared; null/absent controls passed.pool schema fields: PASS. Coverage includes pool indexing, strict types and diagnostics, all accepted algorithms/coins, legacy null/absent behavior, live diagnostic output, receiver staging, remote application, and rejection without changing the stored configuration.PATH="/private/tmp/rigforge-527-tools:$PATH" make testexited 0: 2,431 passed, 0 failed, followed by passing contract-credential, access-token-readiness, documentation clone-pin, and tool-pin-watch suites. This includes the control writable-key drift guard and wire-shape fixtures. The tool directory contains the repository's pinned shfmt 3.14.1. The first unpinnedmake teststopped on existing formatting differences under local shfmt 3.13.1. An intermediate pinned run recorded 2,430 passes and one failure in the draft compatibility-test harness; that harness was corrected before the clean passing run.FILE_BUDGET_REQUIRE_BASE=1 bash scripts/lint-file-budget.shpassed.shellcheck --severity=warning tests/test-pool-fields.shand/private/tmp/rigforge-527-tools/shfmt -i 4 -d rigforge.sh tests/test-pool-fields.sh tests/run.shpassed.jq empty config.reference.jsonandgit diff --checkpassed.npm_config_cache=/private/tmp/rigforge-527-npm-cache make lint-mdfailed only on three pre-existing formatting errors in the supplied, untrackedISSUE.md, which is unchanged.npm_config_cache=/private/tmp/rigforge-527-npm-cache npx --yes markdownlint-cli2@0.23.3 --no-globs docs/configuration.md docs/operations.mdpassed with zero issues.The following exact command compared the entire generated legacy configuration against the original checkout's implementation. It exited 0 and printed
default generated config baseline/current: PASS:The native macOS suite skipped Linux
/etcidempotency and tuning benchmark timing cases. No Docker e2e, kcov coverage, KVM, bench, or hardware run was performed. Actual hashing for the selected variants and live NiceHash/TLS-SNI interoperability still need a rig and pool. The change does not alter kernel provisioning or KVM behavior. No commits, pushes, GitHub writes, SSH connections, or bench jobs were made.Closes #527
Draft from an operator-run gpt-6-astra session (owner request, 2026-11-01). The operator reviews and gates it before it leaves draft.
🤖 Generated with Claude Code