fix(miner): reject blank acceptance hints as an objective success signal (#6766) - #6848
Conversation
…nal (JSONbored#6766) deriveIdeaIssueStatus counted acceptanceHints by ARRAY LENGTH, so a whitespace-only hint like [" "] passed as issueStatus "ready" — directly contradicting the module's own contract that an idea with no objective success signal is invalid and rejected before compute. Count non-blank content instead, and reject a whitespace-only --hint in the CLI with the same error a missing value already gets. Closes JSONbored#6766
|
🚨 Contributor flagged. Click here for more info: Superagent Dashboard |
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #6848 +/- ##
=======================================
Coverage 93.63% 93.63%
=======================================
Files 683 683
Lines 68163 68164 +1
Branches 18706 18706
=======================================
+ Hits 63827 63828 +1
Misses 3350 3350
Partials 986 986
Flags with carried forward coverage won't be shown. Click here to find out more.
|
|
Warning ⏸️ LoopOver review result - manual review recommendedReview updated: 2026-07-17 08:25:15 UTC
Review summary Nits — 3 non-blocking
Flagged checks (non-blocking)
Decision drivers
Context & advisory signals — never blocks the verdict
Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver 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://loopover.ai/docs/loopover-commands 🧪 Experimental — new and may change. 🟩 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
idea-feasibility.js'sderiveIdeaIssueStatuscomputedobjectiveSignalsfromacceptanceHints?.length— array length only, never content. So{ acceptanceHints: [" "] }sailed through asissueStatus: "ready", directly contradicting the module's own stated contract: "An idea with no objective success signal is invalid... and is rejected before compute."deriveIdeaIssueStatusnow counts only non-blank (trimmed, non-empty string) hints towardobjectiveSignals— a slot is not a signal.idea-feasibility-cli.js's--hintparsing now rejects a whitespace-only value with the same"--hint requires a value."error a missing value already gets."ready", and themissing/absent-hints paths are untouched.Closes #6766
Test plan
acceptanceHints: [" "]and["", "\t", "\n "]now return"invalid"."ready"(no over-rejection).--hint " "/"\t"/" \n "return the--hint requires a value.parse error; the existing missing-value and flag-like-value rejections still pass.npm run typecheckclean.