{
 "number": 30361,
 "input_hash": "786c99a9d6feccbe",
 "model": "openrouter/google/gemini-3.8-flash",
 "batch": false,
 "created": "2026-09-17T21:20:28+00:00",
 "provider": "Google",
 "stop_reason": "end_turn",
 "usage": {
  "input_tokens": 24196,
  "cache_creation_input_tokens": 0,
  "cache_read_input_tokens": 0,
  "output_tokens": 5278
 },
 "cost_usd": 0.0379395,
 "error": null,
 "result": {
  "display": {
   "goal": [
    "Update developer documentation to remove the requirement that LogError only be used for fatal errors that shut down the node."
   ],
   "reviewability": [
    "Author silent for eleven months with standing Concept NACKs recommending closure."
   ],
   "agreement": [
    "Blocked by Concept NACKs on weakening guidelines instead of fixing improper log calls (ajtowns, maflcko).",
    "Prior approval was retracted in favor of closing the PR (sedited)."
   ],
   "categories": [
    {
     "name": "docs",
     "why": [
      "P4 because it is a minor tweak to internal developer guidance that reviewers agree should not be weakened."
     ]
    }
   ]
  },
  "summary": "This pull request updates developer-notes.md to drop the requirement that LogError be reserved for fatal errors causing a node or subsystem shutdown. It redefines LogError as severe errors requiring administrator action and LogWarning as unexpected conditions indicating potentially severe problems.",
  "problem": "The developer documentation states LogError is only for fatal errors, but less than half of current LogError calls in the codebase actually trigger node shutdown.",
  "discussion": {
   "open_concerns": [
    "ajtowns and maflcko Concept NACKed weakening documentation to match legacy mistakes rather than fixing the code or consolidating log levels as in #34730.",
    "sedited retracted their approval, noting the project is closer to the original guidelines and recommending closure."
   ],
   "resolved_concerns": [
    "Clarification of examples and re-adding the word severe to LogWarning descriptions addressed early review feedback."
   ],
   "author_status": "silent since 2025-10-15"
  },
  "reviewability": {
   "state": "Stale",
   "label": "Author silent",
   "reason": "The author has been silent for over eleven months, leaving multiple standing Concept NACKs and a request for status unaddressed."
  },
  "agreement": {
   "participants": [
    {
     "login": "ajtowns",
     "stance": "objection",
     "note": "Concept NACK; argues docs should maintain clear standards rather than adapting to poorly thought out scripted conversions"
    },
    {
     "login": "maflcko",
     "stance": "objection",
     "note": "NACK-ish; objects to weakening developer guidelines because of flawed log usage that should be fixed instead"
    },
    {
     "login": "l0rinc",
     "stance": "support",
     "note": "utACK on the documentation adjustment in 2024"
    },
    {
     "login": "sedited",
     "stance": "objection",
     "note": "Initially approved, but retracted ACK and recommended closing due to the standing NACKs"
    }
   ],
   "objections": [
    {
     "reviewer": "ajtowns",
     "kind": "approach",
     "harm": "weakens documentation standards to match poor call-site practice and distracts from fixing log levels or consolidating them",
     "blocking": true,
     "author_replied": false,
     "fix_pushed": false,
     "status": "open",
     "evidence": "2026-03-04: 'Concept NACK... logging not-very-important errors as LogError (or even LogWarning) is not a desirable thing for our codebase'",
     "resolution_evidence": "",
     "sources": [
      "dossier",
      "thread"
     ]
    },
    {
     "reviewer": "maflcko",
     "kind": "approach",
     "harm": "increases developer confusion and weakens long-term code standards based on temporary improper log calls",
     "blocking": true,
     "author_replied": false,
     "fix_pushed": false,
     "status": "open",
     "evidence": "2024-09-18: 'I am NACK -ish on increasing confusion in the docs, motivated by code that will be removed or changed long-term anyway.'",
     "resolution_evidence": "",
     "sources": [
      "dossier",
      "thread"
     ]
    },
    {
     "reviewer": "sedited",
     "kind": "approach",
     "harm": "unnecessary change given progress toward realizing original log level guidelines",
     "blocking": true,
     "author_replied": false,
     "fix_pushed": false,
     "status": "open",
     "evidence": "2026-05-10: 'Retracting my A-C-K here... Given the two standing N-A-C-Ks, I think this should be closed.'",
     "resolution_evidence": "",
     "sources": [
      "dossier",
      "thread"
     ]
    }
   ],
   "support": [
    {
     "reviewer": "l0rinc",
     "reason": "Considers it a slight improvement over the status quo",
     "substantive": false
    }
   ],
   "state": "Blocked",
   "summary": "Blocked: ajtowns and maflcko Concept NACKed the approach; author has been silent since October 2025.",
   "reason": "Multiple reviewers Concept NACKed weakening developer documentation standards to conform to existing incorrect call sites, and the author has not responded to those blocking objections.",
   "evidence": [
    "ajtowns: 'Concept NACK. Most of the issues here... were introduced via scripted-diff in #29236 without putting much thought into whether the old error() and the then-new LogError were a good match.'",
    "maflcko: 'I am NACK -ish on increasing confusion in the docs, motivated by code that will be removed or changed long-term anyway.'",
    "sedited: 'Retracting my A-C-K here... Given the two standing N-A-C-Ks, I think this should be closed.'"
   ],
   "model_state": "Blocked",
   "derivation": "blocking objection open with no author reply (ajtowns, maflcko, sedited)",
   "corrections": [],
   "thread_read": {
    "state": "Blocked",
    "derived": "Blocked",
    "objections": [
     {
      "reviewer": "ajtowns",
      "kind": "approach",
      "harm": "weakens the documented standard to match improper log usage introduced previously, rather than fixing the code to meet the standard",
      "blocking": true,
      "author_replied": false,
      "fix_pushed": false,
      "status": "open",
      "evidence": "2026-03-04: \"Concept NACK. Most of the issues here -- that is, where not-very-important errors are logged via LogError -- were introduced via scripted-diff in #29236 without putting much thought into whether the old error() and the then-new LogError were a good match. This change just retroactively makes that PR's acks be in line with the docs.\"",
      "resolution_evidence": ""
     },
     {
      "reviewer": "maflcko",
      "kind": "approach",
      "harm": "increases long-term confusion by weakening developer guidelines to match legacy code rather than keeping docs as a standard to converge toward",
      "blocking": true,
      "author_replied": false,
      "fix_pushed": false,
      "status": "open",
      "evidence": "2024-09-18: \"So overall I am NACK -ish on increasing confusion in the docs, motivated by code that will be removed or changed long-term anyway.\"",
      "resolution_evidence": ""
     },
     {
      "reviewer": "sedited",
      "kind": "approach",
      "harm": "weakens developer guidelines when code is closer to adhering to them than assumed; recommends closing",
      "blocking": true,
      "author_replied": false,
      "fix_pushed": false,
      "status": "open",
      "evidence": "2026-05-10: \"Retracting my A-C-K here. Seems like we were closer to realizing the log level guidelines than I thought. Given the two standing N-A-C-Ks, I think this should be closed.\"",
      "resolution_evidence": ""
     }
    ],
    "support": [
     {
      "reviewer": "l0rinc",
      "reason": "considered it a slight improvement",
      "substantive": false
     }
    ],
    "participants": [
     {
      "login": "ajtowns",
      "stance": "objection",
      "note": "Concept NACK: wants to retain clear distinction between error and warning rather than weakening documentation to match temporary improper log usage"
     },
     {
      "login": "maflcko",
      "stance": "objection",
      "note": "NACK-ish: docs should guide what the final code should look like, weakening them increases confusion"
     },
     {
      "login": "l0rinc",
      "stance": "support",
      "note": "utACK: considers it a slight improvement"
     },
     {
      "login": "sedited",
      "stance": "objection",
      "note": "retracted initial ACK and recommended closing PR given the standing NACKs and progress toward guidelines"
     }
    ],
    "corrections": [],
    "summary": "Blocked: ajtowns Concept NACKs weakening doc standards to match bad code; author has not replied since 2024",
    "usage": {
     "input_tokens": 6717,
     "cache_creation_input_tokens": 0,
     "cache_read_input_tokens": 0,
     "output_tokens": 2349
    }
   },
   "first_read": {
    "state": "Blocked",
    "model_state": "Blocked",
    "objections": [
     {
      "reviewer": "ajtowns",
      "kind": "approach",
      "harm": "weakens documentation standards to match poor call-site practice and distracts from fixing log levels or consolidating them",
      "blocking": true,
      "author_replied": false,
      "fix_pushed": false,
      "status": "open",
      "evidence": "2026-03-04: 'Concept NACK... logging not-very-important errors as LogError (or even LogWarning) is not a desirable thing for our codebase'",
      "resolution_evidence": ""
     },
     {
      "reviewer": "maflcko",
      "kind": "approach",
      "harm": "increases developer confusion and weakens long-term code standards based on temporary improper log calls",
      "blocking": true,
      "author_replied": false,
      "fix_pushed": false,
      "status": "open",
      "evidence": "2024-09-18: 'I am NACK -ish on increasing confusion in the docs, motivated by code that will be removed or changed long-term anyway.'",
      "resolution_evidence": ""
     },
     {
      "reviewer": "sedited",
      "kind": "approach",
      "harm": "unnecessary change given progress toward realizing original log level guidelines",
      "blocking": true,
      "author_replied": false,
      "fix_pushed": false,
      "status": "open",
      "evidence": "2026-05-10: 'Retracting my A-C-K here... Given the two standing N-A-C-Ks, I think this should be closed.'",
      "resolution_evidence": ""
     }
    ],
    "support": [
     {
      "reviewer": "l0rinc",
      "reason": "Considers it a slight improvement over the status quo",
      "substantive": false
     }
    ]
   }
  },
  "dependencies": {
   "depends_on": [],
   "enables": []
  },
  "categories": [
   {
    "name": "docs",
    "member": true,
    "evidence": "Changes developer logging advice in doc/developer-notes.md",
    "band": "P4",
    "reason_tag": "cleanup",
    "score": 0.1,
    "factors": {
     "security_stability": 0,
     "bug_severity": 0,
     "performance": 0,
     "user_value": 0,
     "leverage": 0
    },
    "rationale": "P4 because this is an internal developer documentation change about logging conventions that provides no user-visible benefit. Reviewers have pointed out that adjusting guidelines to match past incorrect usages is counterproductive, with ongoing work (#34729, #34730) pursuing better solutions."
   }
  ],
  "confidence": "high",
  "uncertainties": [],
  "needs": [],
  "card": "This pull request modifies doc/developer-notes.md to drop the guideline that LogError must be fatal, adapting the documentation to existing codebase call sites. Reviewers including ajtowns and maflcko Concept NACKed the change, arguing developer documentation should set aspirational standards rather than weakening rules to match legacy misuse. The PR is blocked and stale, with the author silent for over eleven months."
 },
 "raw_text": null,
 "prompt_hash": "c1bd47c5",
 "second_read_cost_usd": 0.0138465
}