Skip to content

fix(store): source_issue "none" clears it (move a split's closing edge) - #491

Merged
mabry1985 merged 1 commit into
mainfrom
fix/clear-source-issue
Sep 28, 2026
Merged

mabry1985 merged 1 commit into
mainfrom
fix/clear-source-issue

Conversation

@mabry1985

Copy link
Copy Markdown
Member

There was no way to clear a card's source_issue. An empty value means "leave it", and "none" failed validation. So when a split gains a new last slice, the old last slice keeps Fixes #N and closes the issue early. Live case: the ADR 0115 split gained a docs card (bd-negi) after C6 (bd-83sh), and C6 still carried source_issue=#3760.

"none" / "clear" / "-" now clears it, the same convention as waits_for. It's in store.update_feature, so both board_update_feature and PATCH /features/{fid} get it. Files and the requirement ledger in the shared notes field are carried forward. The docstrings say how to clear.

Test: parametrized clear, keeping files_to_modify. Full suite: 2649 passed, 36 skipped. ruff clean.

🤖 Generated with Claude Code

…osing edge to the last slice

update_feature treated an empty/whitespace source_issue as 'leave it', and there was no
way to clear one. When a split grew a new last slice (ADR 0115 gained a docs card after
C6), C6 kept 'Fixes #3760' next to the new last card, so C6's merge would close the issue
before the docs landed. "none" / "clear" / "-" now clears it (the waits_for convention),
through board_update_feature and PATCH /features/{fid}.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

@protoreview protoreview Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

QA panel review — PASS

code-review-structural · head 78429b3712e7 · formal

Low-risk, well-scoped change: adds sentinel values ("none", "clear", "-") to source_issue in update_feature to clear the stored source-issue line, with docstring updates and a parametrized test. All four LLM finders confirm the logic is sound and consistent across call sites. The protoPatch engine produced 16 findings, all targeting pre-existing code outside this diff's scope — dropped. The single surviving finding is a naming nit on the new set_source variable, confirmed by the verifier. No panel disagreements; no coverage gaps.

Findings

Severity Location Finding Verified
⚪ nit store.py:2229 The local variable set_source now evaluates True when the source issue is being CLEARED, so its name no longer matches its meaning. confirmed
findings JSON (machine-readable)
[
  {
    "file": "store.py",
    "line": 2229,
    "severity": "nit",
    "category": "conventions",
    "claim": "The local variable `set_source` now evaluates True when the source issue is being CLEARED, so its name no longer matches its meaning.",
    "evidence": "set_source = (source_issue is not None and str(source_issue).strip()) or clear_source",
    "verdict": "confirmed",
    "note": "Code verified verbatim at head SHA; when clear_source is True, set_source is True, so the name misleads \u2014 a name like `touch_source` would be more accurate."
  }
]

@protoreview protoreview Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Promoting the PASS verdict for head 78429b3712e7: all checks terminal-green, zero unresolved review threads. (approve-on-green)

Open findings carried by this approval — non-blocking, but they did not go away:

  • nit store.py:2229 — The local variable set_source now evaluates True when the source issue is being CLEARED, so its name no longer matches its meaning.

Approving a WARN does not resolve its findings (issue #22).

@mabry1985
mabry1985 merged commit 5a6823f into main Sep 28, 2026
6 checks passed
@mabry1985
mabry1985 deleted the fix/clear-source-issue branch September 28, 2026 07:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant