feat(bounties): add lifecycle watcher signals - #29
Conversation
4ec0677 to
981d000
Compare
JSONbored
left a comment
There was a problem hiding this comment.
PR #29 - feat: Add bounty lifecycle checks across core signals and MCP flows
Signal: REQUEST CHANGES
Required changes:
- Fix changelog freshness: CI fails at changelog:check.
- Rename PR title to conventional style, e.g. feat(bounties): add lifecycle watcher signals.
- Remove or regenerate the incorrect packages/gittensory-mcp/CHANGELOG.md edits unless this PR actually changes the npm package.
- Re-check broad listAllIssues/listAllPullRequests use in decision-pack building; acceptable only if queue/job-only, not request-path.
- Add explicit tests proving completed/cancelled/stale bounties do not become strong “good” opportunities.
- Add performance/bounded-work coverage for large bounty + issue sets.
981d000 to
1296124
Compare
1296124 to
4bbed12
Compare
|
@JSONbored I've updated all. |
Please fix merge conflicts |
0eb9b3c to
11399eb
Compare
|
@JSONbored Fixed conflicts. |
219f78f to
d75a095
Compare
JSONbored
left a comment
There was a problem hiding this comment.
@bittoby this is much closer. The old changelog feedback should be treated as artifact cleanup, not a product blocker, but the PR still needs cleanup before merge.
Required:
- Remove the accidental
CHANGELOG.mdandpackages/gittensory-mcp/CHANGELOG.mdedits. (test suite should no longer generate changes when run). - Tighten bounty lifecycle status parsing so broad terms like
reward/awarddo not accidentally mark active bounty-like states as completed. - Keep the decision-pack/shared-input optimization; that addresses the earlier repeated full-scan concern for batch jobs.
- Re-run
npm run test:ciafter the changelog cleanup.
af5e017 to
979c52d
Compare
|
@JSONbored I've fixed all. |
3217f2d to
4478916
Compare
|
Hi @JSONbored, I’ve resolved several conflicts after updating this pr based on your feedback but I haven’t got any updates from you yet. |
There were underlying improvements, a massive new frontend overhaul, and other backend changes that needed improvement - i'll get to reviewing this shortly, please be patient. |
1a7533e to
f946f2f
Compare
|
All CI passed. |
There was a problem hiding this comment.
@bittoby this is a strong feature pass overall, but I still would like one correctness refinement before landing.
A few notes:
- Expanding bounty lifecycle beyond
active/historical/unknownis the right direction. - Filtering completed, cancelled, and historical bounty work out of contributor opportunities is important and should stay.
- Wiring bounty state into issue quality and preflight warnings is also the right product behavior.
- The remaining concern is linked PR interpretation. We do want to factor in open, merged, and closed PRs, but they should not all mean the same thing:
- Open linked PRs are active overlap/collision risk.
- Merged linked PRs are possible resolution/completion risk.
- Closed-unmerged linked PRs are historical caution or ambiguity, not necessarily active competing work.
- Right now
consensusRiskis still based mostly on raw linked PR count, which can make historical/closed PRs look like the same risk as multiple active open PRs.
Required changes:
- Compute bounty/issue risk from linked PR state, not just raw linked PR count.
- Treat open linked PRs as active overlap risk.
- Treat merged linked PRs as possible solved/completed work.
- Treat closed-unmerged linked PRs as caution/ambiguity, especially when there are several.
- Keep the public wording specific to the actual risk class so contributors know whether they are avoiding duplicate active work, verifying a possibly solved bounty, or reviewing historical attempts.
Validation expected:
- Add regression coverage for multiple open linked PRs producing elevated overlap risk.
- Add regression coverage for a merged linked PR producing a solved/resolution warning.
- Add regression coverage for only closed-unmerged PRs producing caution/ambiguous history, not the same active-overlap wording.
- Keep
npm run test:coverageandnpm run ui:openapi:checkgreen.
|
@JSONbored I've updated all.
|
@bittoby this looks ready from my side now.
A few notes:
- The bounty lifecycle expansion is the right shape: active, completed, cancelled, historical, stale, ambiguous, and unknown each carry different contributor guidance.
- Filtering completed/cancelled/historical bounty work out of contributor opportunities is important and should stay.
- The latest update addresses the linked-PR risk concern: open PRs now mean active overlap, merged PRs mean possible resolution, closed-unmerged PRs mean historical caution, and unknown PRs stay ambiguous.
- The tests now cover the cases I cared about: multiple open linked PRs, merged linked PRs, only closed-unmerged linked PRs, issue-quality warnings, preflight warnings, and opportunity ranking behavior.
No code changes requested from me.
Summary
Close: #23
Validation
npm run test:cinpm run changelog:checkSafety