Skip to content

Link bounty list action surfaces#920

Merged
ramimbo merged 2 commits into
ramimbo:mainfrom
catcherintheroad-hub:codex/bounty-list-action-links-845
Jun 5, 2026
Merged

Link bounty list action surfaces#920
ramimbo merged 2 commits into
ramimbo:mainfrom
catcherintheroad-hub:codex/bounty-list-action-links-845

Conversation

@catcherintheroad-hub
Copy link
Copy Markdown

@catcherintheroad-hub catcherintheroad-hub commented Jun 5, 2026

Bounty #845

Summary

  • Adds contributor-flow action links to each public bounty list card.
  • Exposes direct card-level links to the bounty detail page, JSON detail row, and active attempt list.
  • Keeps existing source issue, search, sorting, availability, and capacity display behavior unchanged.

Why this fits #845

The bounty list already shows source issue and capacity context, while the detail page exposes JSON details and active attempt checks. This PR brings those same low-risk routing actions onto the list cards so contributors and agents can move directly from discovery to preflight/duplicate checking without opening each detail page first.

Duplicate / scope check

  • Open PR searches for bounty list action links attempts JSON details, bounties page attempts link, and Check active attempts found no open PR adding card-level list actions.
  • PR Show bounty submission requirements on detail page #890 covers contributor next steps on the bounty detail page; this PR is the list-page counterpart and does not change Show bounty submission requirements on detail page #890's detail-page content.
  • Scope is public page routing only. No bounty API shape, attempt creation, payout execution, treasury mutation, wallet behavior, ledger mutation, admin-token behavior, private data, exchange, bridge, cash-out, or MRWK price behavior changed.

Validation

  • uv run --python 3.12 --extra dev python -m pytest tests/test_bounty_pages.py -q -> 18 passed, 1 existing Starlette/httpx warning.
  • uv run --python 3.12 --extra dev ruff check tests/test_bounty_pages.py -> passed.
  • uv run --python 3.12 --extra dev ruff format --check tests/test_bounty_pages.py -> 1 file already formatted.
  • uv run --python 3.12 --extra dev python scripts/docs_smoke.py -> docs smoke ok.
  • git diff --check origin/main...HEAD -> clean.
  • git merge-tree --write-tree origin/main HEAD -> clean tree abda6f4c7b8cc6d19c1ef4bc0fd2711b121cfce1.

Summary by CodeRabbit

  • New Features

    • Bounty cards show a "next steps" actions block with links: "View details", "JSON details", and "Active attempts". The action group includes an ARIA label scoped to the bounty ID for improved accessibility.
  • Tests

    • Updated tests to verify the bounty action links render correctly, include the ARIA-scoped action group, and point to the expected detail and attempts endpoints.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jun 5, 2026

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 007d6579-d067-4746-8077-c942ce07751b

📥 Commits

Reviewing files that changed from the base of the PR and between 7e579e1 and 1e18cf7.

📒 Files selected for processing (1)
  • tests/test_bounty_pages.py

📝 Walkthrough

Walkthrough

The bounties list template now renders a per-bounty "next-steps-actions" block with links to the details page, JSON details, and active attempts endpoints. Tests assert the action group's ARIA label and that the JSON and attempts links use the open bounty's ID.

Changes

Bounty action links UI and tests

Layer / File(s) Summary
Bounty action links UI and tests
app/templates/bounties.html, tests/test_bounty_pages.py
Adds a next-steps-actions section per bounty with links to the details page, the bounty JSON endpoint (/api/v1/bounties/{id}), and the active attempts endpoint (/api/v1/bounties/{id}/attempts), wrapped in an ARIA-labeled action group. Tests assert the action group's aria-label and the two API links for the open bounty ID.

Possibly related PRs

  • ramimbo/mergework#836: Adds "Active attempts" links to bounty pages; overlaps with this PR's addition of attempts/JSON action links and corresponding tests.
🚥 Pre-merge checks | ✅ 6
✅ Passed checks (6 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Link bounty list action surfaces' directly and concretely names the changed surface—adding action links to bounty list cards—matching the PR's core change.
Description check ✅ Passed The description covers all required sections: Summary, Evidence (duplicate/scope check and validation), and test evidence (all checks listed and passing). Structure and required information are complete.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Mergework Public Artifact Hygiene ✅ Passed PR adds bounty action links to template and test. No investment, price, cash-out, or payout claims found. PR scope explicitly disclaims payout/cash-out/price behavior changes.
Bounty Pr Focus ✅ Passed PR adds action links to bounty list cards (5 lines in bounties.html, 3 test assertions). All linked endpoints pre-exist. Changes are scoped to public page only, matching PR objectives.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 77e21059-04ae-416c-891f-e0f92036b32d

📥 Commits

Reviewing files that changed from the base of the PR and between d4d0e48 and 7e579e1.

📒 Files selected for processing (2)
  • app/templates/bounties.html
  • tests/test_bounty_pages.py

Comment thread tests/test_bounty_pages.py Outdated
@catcherintheroad-hub
Copy link
Copy Markdown
Author

Follow-up for the CodeRabbit test-strength note.

Updated head: 1e18cf7 Assert bounty action label ids.

Change:

  • Tightened the list-page assertion from checking only the aria-label prefix to checking the full Bounty action links for {open_bounty.id} label.

Validation rerun:

  • uv run --python 3.12 --extra dev python -m pytest tests/test_bounty_pages.py -q
  • uv run --python 3.12 --extra dev ruff check tests/test_bounty_pages.py
  • uv run --python 3.12 --extra dev ruff format --check tests/test_bounty_pages.py
  • uv run --python 3.12 --extra dev python scripts/docs_smoke.py
  • git diff --check origin/main...HEAD
  • git merge-tree --write-tree origin/main HEAD

Copy link
Copy Markdown
Contributor

@pqmfei pqmfei left a comment

Choose a reason for hiding this comment

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

Reviewed PR #920 at current head 1e18cf7f36ed22d6f808fb31c44c0eccc03364d8 as a non-author.

Evidence checked:

  • inspected app/templates/bounties.html and tests/test_bounty_pages.py;
  • confirmed the bounty list cards now expose only existing internal navigation surfaces: /bounties/{id}, /api/v1/bounties/{id}, and /api/v1/bounties/{id}/attempts;
  • verified the new action group is scoped by bounty id through aria-label="Bounty action links for {id}" and the regression asserts the exact label plus JSON and active-attempt links for the open bounty;
  • checked GitHub state before review: PR open, mergeStateStatus=CLEAN, hosted Quality, readiness, docs, and image checks successful, CodeRabbit successful/no actionable comments on the current head, and no current-head human review visible;
  • checked scripts/review_bounty_candidates.py --repo ramimbo/mergework --reviewer pqmfei --format text reported PR #920 as candidate_for_fresh_review.

Validation on this exact head:

  • .\.venv\Scripts\python.exe -m pytest tests\test_bounty_pages.py -q -> 18 passed, 1 existing Starlette/httpx warning.
  • .\.venv\Scripts\python.exe -m ruff check tests\test_bounty_pages.py -> passed.
  • .\.venv\Scripts\python.exe -m ruff format --check tests\test_bounty_pages.py -> 1 file already formatted.
  • .\.venv\Scripts\python.exe scripts\docs_smoke.py -> docs smoke ok.
  • git diff --check origin/main...HEAD -> clean.
  • git merge-tree --write-tree origin/main HEAD -> clean tree 31df8d17f33d2b324c00463980c581559a05a907.

Scope: read-only review of public bounty-list card navigation links and focused tests. No bounty API shape, attempt creation, payout execution, treasury mutation, ledger mutation, wallet behavior, admin-token behavior, private data, credentials, exchange, bridge, cash-out, or MRWK price behavior was used or changed.

Copy link
Copy Markdown
Contributor

@akmhatey-ai akmhatey-ai left a comment

Choose a reason for hiding this comment

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

Reviewed current head 1e18cf7f36ed22d6f808fb31c44c0eccc03364d8.

Verdict: approved from the public bounty-list routing and regression coverage angle.

What I checked:

  • #845 is live, labeled mrwk:bounty, and reserved on the public MRWK bounty row.
  • The diff is limited to app/templates/bounties.html and tests/test_bounty_pages.py.
  • The new list-card actions point to existing public routes: /bounties/{id}, /api/v1/bounties/{id}, and /api/v1/bounties/{id}/attempts.
  • Existing source issue, status/search/sort, availability, capacity, lifecycle, and payout-related behavior is not changed by this patch.
  • Same-surface duplicate check: #643 had no visible pull/920, #920, or PR #920 review-bounty claim before this review; #845's visible earlier claims cover different surfaces such as docs/API preflight, bounty-detail routing, submission requirements, source-filter clearing, summary counters, and detail lifecycle display.

Validation I ran locally on a clean PR worktree:

  • uv run --python 3.12 --extra dev python -m pytest tests/test_bounty_pages.py -q -> 18 passed, 1 existing Starlette/httpx warning.
  • uv run --python 3.12 --extra dev ruff check tests/test_bounty_pages.py -> passed.
  • uv run --python 3.12 --extra dev ruff format --check tests/test_bounty_pages.py -> 1 file already formatted.
  • uv run --python 3.12 --extra dev python scripts/docs_smoke.py -> docs smoke ok.
  • git diff --check origin/main...HEAD -> clean.
  • git merge-tree --write-tree origin/main HEAD -> clean tree 31df8d17f33d2b324c00463980c581559a05a907.
  • gitleaks detect --source . --no-banner --redact --log-level warn -> no findings.

Limitation: I did not run a browser screenshot; this review is route/template/test based.

No private data, credentials, wallet material, production mutation, payout execution, treasury execution, ledger mutation, exchange, bridge, cash-out, price behavior, or fabricated payout claims were used.

@ramimbo ramimbo merged commit 4e55e6c into ramimbo:main Jun 5, 2026
2 checks passed
@ramimbo ramimbo added mrwk:accepted Maintainer accepted for payout mrwk:paid Ledger payment recorded labels Jun 5, 2026 — with ChatGPT Codex Connector
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

mrwk:accepted Maintainer accepted for payout mrwk:paid Ledger payment recorded

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants