{
 "number": 36689,
 "input_hash": "0afebf72eb96da42",
 "model": "ledger",
 "prompt_hash": null,
 "created": "2026-11-01T01:16:00+00:00",
 "result": {
  "summary": "Extracts `-signetchallenge` parsing and hex validation into a shared `ReadSignetChallengeArg()` helper in `chainparamsbase`. Calls this helper from both `GetSignetDataDir()` and `ReadSigNetArgs()`, ensuring `bitcoin-cli` immediately rejects invalid hex or duplicate challenge arguments instead of failing later during RPC authentication.",
  "problem": "When invalid hex or duplicate values are supplied to `-signetchallenge` in `bitcoin-cli`, the CLI tool does not validate the argument during data directory resolution. It silently falls back to the default signet datadir and eventually fails with an unhelpful authorization or missing RPC cookie error rather than reporting the malformed argument.",
  "card": "Unifies -signetchallenge argument validation between bitcoind and bitcoin-cli by moving hex checking into a shared helper function. Currently, passing invalid hex or multiple challenge values to bitcoin-cli fails late with an ambiguous RPC authorization error instead of pinpointing the bad input. With this change, bitcoin-cli throws an immediate error on malformed or duplicate challenge arguments matching the error output of bitcoind.",
  "evidence": [
   "PR description demonstrates the error discrepancy: `bitcoind -signet -signetchallenge=z` reports `Error: -signetchallenge must be hex, not 'z'`, while `bitcoin-cli` only fails later with `error: Authorization failed... Is your -signetchallenge correct for custom signets?`",
   "Addressed review feedback from merged PR #34566: 'Addresses https://github.com/bitcoin/bitcoin/pull/34566#discussion_r3668123074'"
  ],
  "scope_notes": "",
  "changed_since_previous": "Dropped the helper function casing rename to `SigNet`, retaining `ReadSignetChallengeArg` with standard `Signet` casing.",
  "thread": {
   "last_event_at": "2026-10-30T15:28:03Z",
   "events": 5,
   "head_sha": "54fe0ec5d80a0bb2cdc4dee4e5a4ecaf7256a832",
   "schema_floor": 2,
   "schema": 2
  },
  "waiting_on": [
   {
    "at": "2026-10-30",
    "id": "c:6526513113",
    "on": "reviewer",
    "url": "https://github.com/bitcoin/bitcoin/pull/36689#issuecomment-6526513113",
    "what": "re-review after author updated commits and dropped rename"
   }
  ],
  "risk": {
   "level": "low",
   "touches": [
    "tooling",
    "tests"
   ],
   "why": "A bug in argument parsing would prevent custom signet nodes or CLI commands from reading their challenge argument or finding the correct datadir."
  },
  "discussion": {
   "author_status": "last statement processed 2026-10-30",
   "open_concerns": [],
   "resolved_concerns": [
    "ValeraFinebits: Add a test setting signetchallenge=51 in the [signet] config section and passing -signetchallenge=51 on the command line to assert the multiple-values error (fixed by ekzyis 2026-10-29)",
    "Sjors: Drop the rename commit to avoid bike-shedding (fixed by ekzyis 2026-10-30)"
   ]
  },
  "reviewability": {
   "state": "Ready",
   "label": "Ready",
   "reason": "Nothing known that would invalidate a review now."
  },
  "agreement": {
   "state": "Positive",
   "summary": "Positive: support without stated reasons, no open objection (Sjors)",
   "reason": "Added Concept ACK from Sjors and their suggestion to drop the rename commit, which was fixed when the author dropped it.",
   "evidence": [
    "Sjors: Concept ACK"
   ],
   "objections": [
    {
     "reviewer": "ValeraFinebits",
     "association": "NONE",
     "type": "suggestion",
     "kind": "correctness",
     "harm": "",
     "request": "Add a test setting signetchallenge=51 in the [signet] config section and passing -signetchallenge=51 on the command line to assert the multiple-values error",
     "question": "",
     "text": "Add a test setting signetchallenge=51 in the [signet] config section and passing -signetchallenge=51 on the command line to assert the multiple-values error",
     "clears_with": "answer",
     "blocking": false,
     "status": "fixed",
     "status_note": "author implemented the suggested test in commit cb7bb77a10",
     "cleared": true,
     "author_replied": true,
     "others_replied": false,
     "fix_pushed": true,
     "replies": [
      "c:6505333795"
     ],
     "evidence": "2026-10-29: 'Optional test suggestion: set `signetchallenge=51` in the `[signet]` config section and also pass `-signetchallenge=51` on the command line, then assert the multiple-values error.'",
     "url": "https://github.com/bitcoin/bitcoin/pull/36689#issuecomment-6503075583",
     "id": "c:6503075583",
     "at": "2026-10-29",
     "status_at": "2026-10-29",
     "status_by": "ekzyis",
     "resolution_evidence": "2026-10-29: ekzyis: 'I replaced the CLI test which passes the same invalid value twice (`-signetchallenge=abc`) with a test that uses `signet'",
     "pin": null,
     "from_schema": 2
    },
    {
     "reviewer": "Sjors",
     "association": "MEMBER",
     "type": "suggestion",
     "kind": "scope",
     "harm": "",
     "request": "Drop the rename commit to avoid bike-shedding",
     "question": "",
     "text": "Drop the rename commit to avoid bike-shedding",
     "clears_with": "answer",
     "blocking": false,
     "status": "fixed",
     "status_note": "author dropped the rename commit in an update",
     "cleared": true,
     "author_replied": true,
     "others_replied": false,
     "fix_pushed": true,
     "replies": [
      "c:6526513113"
     ],
     "evidence": "2026-10-30: 'I suggest dropping the rename in 38998ad4104b1dca4db4dd039b0ddb5e7ea766fe. It's going to invite bike-shedding (and personally I prefer Signet over SigNet).'",
     "url": "https://github.com/bitcoin/bitcoin/pull/36689#issuecomment-6518273655",
     "id": "c:6518273655",
     "at": "2026-10-30",
     "status_at": "2026-10-30",
     "status_by": "ekzyis",
     "resolution_evidence": "2026-10-30: ekzyis: 'Dropped the rename.'",
     "pin": null,
     "from_schema": 2
    }
   ],
   "support": [
    {
     "reviewer": "Sjors",
     "reason": "",
     "substantive": false,
     "verdict": "Concept ACK",
     "id": "c:6518273655",
     "url": "https://github.com/bitcoin/bitcoin/pull/36689#issuecomment-6518273655",
     "at": "2026-10-30",
     "association": "MEMBER",
     "evidence": "read",
     "areas": []
    }
   ],
   "participants": [
    {
     "login": "ValeraFinebits",
     "stance": "neutral",
     "note": "suggested an optional test case covering config and CLI multiple-values handling",
     "association": "NONE",
     "comments": 1,
     "first": "2026-10-29",
     "last": "2026-10-29"
    },
    {
     "login": "Sjors",
     "stance": "support",
     "note": "Concept ACK; suggested dropping the rename commit and splitting the refactor",
     "association": "MEMBER",
     "comments": 1,
     "first": "2026-10-30",
     "last": "2026-10-30"
    }
   ],
   "derivation": "support without stated reasons, no open objection (Sjors)",
   "model_state": null,
   "corrections": [],
   "notes": "Added Concept ACK from Sjors and their suggestion to drop the rename commit, which was fixed when the author dropped it."
  },
  "dependencies": {
   "depends_on": [],
   "enables": []
  },
  "categories": [
   {
    "name": "kernel",
    "member": false,
    "evidence": "Touches src/kernel/chainparams.cpp and src/kernel/signet.h only for a single-line mechanical rename of GetSignetMessageStart.",
    "band": "Unranked",
    "reason_tag": "cleanup",
    "score": 0.0,
    "factors": {
     "bug_severity": 1,
     "leverage": 0,
     "performance": 0,
     "security_stability": 0,
     "user_value": 1
    },
    "rationale": "Kernel touches are purely mechanical renames following the SigNet casing cleanup and do not touch the kernel API or its boundary."
   },
   {
    "name": "tools",
    "member": false,
    "evidence": "PR has the 'Scripts and tools' label and targets bitcoin-cli argument parsing, but the category explicitly excludes the RPC client.",
    "band": "Unranked",
    "reason_tag": "",
    "score": 0.0,
    "factors": {
     "bug_severity": 1,
     "leverage": 0,
     "performance": 0,
     "security_stability": 0,
     "user_value": 1
    },
    "rationale": "The tools category explicitly covers 'command-line tools other than the node and its RPC client'. Because the problem and fix directly target bitcoin-cli argument validation during datadir resolution, it falls outside the category despite the maintainer label."
   },
   {
    "name": "validation",
    "member": false,
    "evidence": "Touches src/chainparamsbase.cpp and src/chainparams.cpp without altering block or transaction validity rules.",
    "band": "Unranked",
    "reason_tag": "",
    "score": 0.0,
    "factors": {
     "bug_severity": 1,
     "leverage": 0,
     "performance": 0,
     "security_stability": 0,
     "user_value": 1
    },
    "rationale": "Extracting -signetchallenge hex parsing for datadir resolution does not substantively alter validation logic, chainstate, or consensus rules."
   }
  ],
  "confidence": "high",
  "uncertainties": [],
  "needs": []
 },
 "cost_usd": 0.0,
 "source": {
  "record": "2026-11-01T01:16:00+00:00",
  "code": "2026-11-01T01:20:08+00:00",
  "judgments": 3
 }
}