Skip to content

Surface contributor starting points on the hub#941

Merged
ramimbo merged 1 commit into
ramimbo:mainfrom
DENGXUELIN:codex/hub-contributor-starting-points-845
Jun 5, 2026
Merged

Surface contributor starting points on the hub#941
ramimbo merged 1 commit into
ramimbo:mainfrom
DENGXUELIN:codex/hub-contributor-starting-points-845

Conversation

@DENGXUELIN
Copy link
Copy Markdown
Contributor

@DENGXUELIN DENGXUELIN commented Jun 5, 2026

Bounty #845

Summary

  • Adds a focused "Contributor starting points" section to the MergeWork hub page.
  • Links contributors directly to effectively open bounties, accepted-work activity, and the current open-bounty JSON feed.
  • Keeps the distinction between live/effectively open work, proof-backed paid work, pending payout queues, and already-paid rows visible before contributors start or claim work.

Why this fits #845

This is a small contributor-routing improvement on the first public MergeWork page. It points contributors and agents to existing public surfaces that confirm whether a bounty is live, effectively open, pending, or already paid before they start work.

Duplicate / current check

Validation

  • uv run --python 3.12 --extra dev python -m pytest tests/test_hub.py -q -> 5 passed, 1 existing Starlette/httpx warning.
  • uv run --python 3.12 --extra dev ruff check app/hub.py tests/test_hub.py -> passed.
  • uv run --python 3.12 --extra dev ruff format --check app/hub.py tests/test_hub.py -> 2 files already formatted.
  • uv run --python 3.12 --extra dev mypy app/hub.py -> success.
  • uv run --python 3.12 --extra dev python scripts/docs_smoke.py -> docs smoke ok.
  • Open PR duplicate file check -> no open PR touching the hub files.

Scope

Public hub-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.

Summary by CodeRabbit

  • New Features

    • Added "Contributor starting points" section to the hub page displaying a curated list of entry links with titles and descriptions in a styled card layout.
  • Tests

    • Added tests to verify the contributor starting points section renders correctly with proper link handling and HTML escaping.

@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: 4c8caec7-cea6-4262-800c-671f9d7bf385

📥 Commits

Reviewing files that changed from the base of the PR and between 8d648a2 and 69f6d3d.

📒 Files selected for processing (3)
  • app/hub.py
  • app/templates/hub.html
  • tests/test_hub.py

📝 Walkthrough

Walkthrough

This PR adds a "Contributor starting points" feature to the Mergework hub. It introduces a new data constant, extends the hub context function to transform and expose that data, renders a new template section with styled entry cards, and adds both unit and integration tests to verify the context transformation and final HTML output.

Changes

Contributor starting points feature

Layer / File(s) Summary
Contributor entry points data and context function
app/hub.py
MERGEWORK_CONTRIBUTOR_STARTING_POINTS tuple stores link and description metadata; mergework_hub_context() transforms the constant into a list of dicts and includes contributor_starting_points in the returned context.
Hub template contributor section
app/templates/hub.html
New "Contributor starting points" page section renders each entry as a ledger-style card, displaying href, title, and description.
Test assertions and integration test
tests/test_hub.py
Imports reorganized to include TestClient. Context function assertions now validate object identity, public_base_url, full contributor_starting_points list structure, and mutation isolation. New integration test verifies rendered HTML contains expected entries and properly escaped link HREFs.

Possibly related PRs

  • ramimbo/mergework#379: Initial extraction of mergework_hub_context() in app/hub.py and its test coverage, which this PR extends with the new contributor_starting_points field.
🚥 Pre-merge checks | ✅ 6
✅ Passed checks (6 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Surface contributor starting points on the hub' clearly names the changed surface and accurately summarizes the main change.
Description check ✅ Passed The description covers all required template sections: Summary, Evidence (with specific bounty/PR references), Test Evidence (all checks listed and passed), MRWK (bounty #845 referenced), and scope boundaries.
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 contributor links to hub page with no investment, price, cash-out, off-ramp, fabricated payout, or security claims. MRWK correctly described as native project coin.
Bounty Pr Focus ✅ Passed PR matches stated bounty #845 scope: 3 files modified, 5 passing tests, links to public endpoints only, no API shape or payout changes.

✏️ 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

@catcherintheroad-hub catcherintheroad-hub 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 69f6d3d40e5ef2f757803fe07dd87e107e798d09 for #838.

This is a narrow public hub-page routing change. I inspected app/hub.py, app/templates/hub.html, and tests/test_hub.py: the new MERGEWORK_CONTRIBUTOR_STARTING_POINTS entries point only to existing public read-only surfaces for effectively open bounties, accepted-work activity, and the open-bounty JSON feed. mergework_hub_context() returns fresh dict copies for the starting-point list, and the template renders those links with normal Jinja escaping.

Validation on this exact head:

  • uv run --python 3.12 --extra dev python -m pytest tests/test_hub.py -q -> 5 passed, 1 existing Starlette/httpx warning.
  • uv run --python 3.12 --extra dev ruff check app/hub.py tests/test_hub.py -> passed.
  • uv run --python 3.12 --extra dev ruff format --check app/hub.py tests/test_hub.py -> 2 files already formatted.
  • uv run --python 3.12 --extra dev mypy app/hub.py -> success.
  • 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 cb246f3bc4bcce158d2d0a907cd97e342f9932c2.

GitHub state checked before review: PR open, non-draft, mergeStateStatus=CLEAN, hosted Quality/readiness/docs/image check successful, CodeRabbit successful, and no human reviews visible on this head.

Scope stays limited to public hub-page contributor navigation and tests. No bounty API response shape, attempt creation, payout execution, treasury/proposal execution, ledger mutation, wallet behavior, admin-token behavior, private data, credentials, bridge/exchange/cash-out behavior, or MRWK price behavior changed or claimed.

@ramimbo ramimbo merged commit e188fa8 into ramimbo:main Jun 5, 2026
2 checks passed
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.

3 participants