feat: bounty board, task lifecycle, AI work performer flow, notifications (phase 8)
- whitelist HTML sanitizer (stdlib tokenizer) with XSS vector tests - developer board: pool-scoped visibility, customer/search/minBounty/sort filters, stale-task age badges, competing-claims visibility setting, saved filters in profile extras - claims: request/withdraw (developer), approve/decline (consultant) with notifications to winners and losers; unassign/abandon back to board - work tracking: start, sanitized comments with @mention notifications, time logging, submit for review - review queue + review with per-AC checklist stored on the timeline; approve writes the immutable bountyAwards row (human assignees only) - assign-to-AI: §5.2 job submission, HMAC-verified callback endpoint, idempotent by jobId, artifacts downloaded into GridFS, failure path keeps the task assigned with timeline + notification - notifications API + bell with unread badge, dropdown, page, WS toasts - pages: bounty board, my-tasks kanban, task detail (role-driven actions, review dialog, AI dialog), review queue, developer pool Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
{{define "content"}}
|
||||
<h1>Developer Pool</h1>
|
||||
<p class="hint">Developers in your pool see your published tasks on their bounty board.</p>
|
||||
<div class="error-box" id="error" role="alert"></div>
|
||||
<div class="spread mt">
|
||||
<input type="search" id="pool-search" placeholder="Filter developers…" style="max-width:280px" aria-label="Filter developers">
|
||||
</div>
|
||||
<table class="list mt" id="pool-table">
|
||||
<thead><tr><th></th><th>Name</th><th>Email</th><th>Bio</th><th></th></tr></thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
{{end}}
|
||||
Reference in New Issue
Block a user