Skip to content

Organization fixes - #338

Merged
0xdevcollins merged 10 commits into
boundlessfi:mainfrom
Benjtalkshow:organization-fixes
Nov 8, 2025
Merged

Organization fixes#338
0xdevcollins merged 10 commits into
boundlessfi:mainfrom
Benjtalkshow:organization-fixes

Conversation

@Benjtalkshow

Copy link
Copy Markdown
Collaborator

No description provided.

@0xdevcollins
0xdevcollins merged commit 187ba1b into boundlessfi:main Nov 8, 2025
6 of 10 checks passed
Benjtalkshow added a commit to Benjtalkshow/boundless that referenced this pull request Jul 4, 2026
Add the per-bounty organizer management hub at
/organizations/[id]/bounties/[bountyId]: a tabbed shell (Overview,
mode-aware Applications, Submissions, Payout & Winners, Settings) with the
status + mode header, and an Overview tab that consumes the operate-reads
endpoint (boundlessfi#338) for intake stats, deadlines, and prize tiers. Non-overview
tabs are placeholders for the follow-up issues (boundlessfi#631-boundlessfi#634).
0xdevcollins added a commit that referenced this pull request Jul 5, 2026
* chore(bounty): refresh codegen for v2 organizer DTOs

Regenerate the OpenAPI schema against v2 to pull the new organizer DTOs
(BountyOperateOverviewDto, OrganizerBountySubmissionDto,
BountyAnnouncementDto, etc.). Drop applicationCreditCost from the bounty
publish request body; the backend removed it from PublishBountyEscrowDto
and now applies it server-side from the draft.

* feat(bounty): management dashboard shell + overview (#630)

Add the per-bounty organizer management hub at
/organizations/[id]/bounties/[bountyId]: a tabbed shell (Overview,
mode-aware Applications, Submissions, Payout & Winners, Settings) with the
status + mode header, and an Overview tab that consumes the operate-reads
endpoint (#338) for intake stats, deadlines, and prize tiers. Non-overview
tabs are placeholders for the follow-up issues (#631-#634).

* fix(bounty): review fixes for management dashboard (#630)

- link published bounty cards on the org list to the management hub
- wrap the manage route in AuthGuard and use the org-section container
- fetch the overview via apiClient/unwrapData instead of a local axios unwrap
- share bountyStatusClass between BountyCard and the dashboard
- lift ordinal() into lib/utils (dashboard, BountyDetail, RewardTab)
- type useParams and drop the redundant retry: false

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
0xdevcollins added a commit that referenced this pull request Jul 5, 2026
* chore(bounty): refresh codegen for v2 organizer DTOs

Regenerate the OpenAPI schema against v2 to pull the new organizer DTOs
(BountyOperateOverviewDto, OrganizerBountySubmissionDto,
BountyAnnouncementDto, etc.). Drop applicationCreditCost from the bounty
publish request body; the backend removed it from PublishBountyEscrowDto
and now applies it server-side from the draft.

* feat(bounty): management dashboard shell + overview (#630)

Add the per-bounty organizer management hub at
/organizations/[id]/bounties/[bountyId]: a tabbed shell (Overview,
mode-aware Applications, Submissions, Payout & Winners, Settings) with the
status + mode header, and an Overview tab that consumes the operate-reads
endpoint (#338) for intake stats, deadlines, and prize tiers. Non-overview
tabs are placeholders for the follow-up issues (#631-#634).

* feat(bounty): submissions review tab (#632)

Fill the management dashboard's Submissions tab: list submitted work from
the organizer submissions endpoint (#337) with submitter identity, status,
the content link plus documentation/tweet/demo/media, and submitted-at.
Respect submissionVisibility — competition work stays sealed (and unfetched)
until the deadline. Adds a client-side 'stage for payout' selection that
feeds winner selection (#633).

* feat(bounty): winner selection + payout tab (#633)

Fill the management dashboard's Payout & Winners tab: assign anchored
submissions to prize tiers (one winner per tier, single-claim = 1,
competition = 1-N), then drive the single select-winners escrow op
(useBountyPayout, organizer scope; MANAGED signs server-side, EXTERNAL via
wallet kit) with progress + payout tx link. On settle the bounty flips to
COMPLETED; already-completed bounties show recorded winners. Consumes the
submissions review (#632) staging.

* fix(bounty): review fixes for winner selection + payout (#633)

- require every prize tier to have a winner before payout: the on-chain
  select_winners op is one-shot and completion strands unpaid tiers' escrow
- add a review + confirm dialog before the irreversible payout (winner,
  address, amount per tier, total), matching publish/treasury precedent
- fetch the COMPLETE submission pool for winner selection
  (listAllBountySubmissions pages the capped endpoint) so late entrants are
  never invisible; the completed-state winner list uses it too
- exclude rejected and disputed submissions from eligibility, show review
  status in the picker, and hide submissions whose payout address is already
  assigned to another tier (backend rejects duplicate addresses)
- derive summary, request body, and total from one resolved-selections
  source so the footer can never promise more than the request sends
- build the tx link via getTransactionExplorerUrl (network-aware) instead of
  a hardcoded testnet URL
- share the sealed-until-deadline card + 30s deadline recheck
  (SealedUntilDeadline, useDeadlinePassed) with the submissions tab, so the
  payout gate opens live and a null deadline does not seal forever
- surface staged submissions from the Submissions tab first in each picker
- share ESCROW_PHASE_LABEL from features/bounties (submit form + payout)
- drop dead payoutResponse/hasStarted state in useBountyPayout and document
  the owner-address limitation (treasury-funded bounties need backend work)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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.

2 participants