e3e4760f49
feat(qualification): add qualification course page
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-03 23:36:22 -04:00
282e23edc2
feat(qualification): record aim trainer results
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-03 23:36:22 -04:00
a6a7a5639d
feat(profiles): add aim trainer statistics schema
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-03 23:36:22 -04:00
73d689a680
feat(qualification): add aim trainer rules
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-03 23:36:22 -04:00
72ef20a044
feat(radio): expose mode-specific stats
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-03 16:03:28 -04:00
9baf84ee32
feat(radio): improve mode gameplay and leaderboards
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-03 16:03:13 -04:00
0b012f07d8
feat(radio): record mode-specific traffic results
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-03 16:03:10 -04:00
4703a24dfe
chore(payload): regenerate radio traffic profile types
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-03 16:03:06 -04:00
29273131de
chore(payload): add radio traffic mode migrations
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-03 16:03:00 -04:00
fe45958a80
feat(profiles): track radio traffic mode statistics
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-03 16:02:55 -04:00
533ab4914c
feat(message-generator): update closing options with new phrase (easter egg)
2026-09-03 02:03:26 -04:00
d65573358f
chore(payload): add radio traffic sprint migration
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-03 02:00:44 -04:00
2bff75a6de
chore(payload): add radio traffic accuracy migration
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-03 02:00:41 -04:00
488fadd3dc
chore(payload): add radio traffic base migration
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-03 02:00:11 -04:00
02b073e494
feat(event-log): record radio traffic events
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-03 02:00:06 -04:00
30e94603fb
feat(navigation): add radio traffic menu link
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-03 02:00:03 -04:00
f98e9aaca5
feat(profiles): track radio traffic progression
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-03 01:59:57 -04:00
f71a10ce05
feat(radio): add arena and leaderboard
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-03 01:59:52 -04:00
0d58b54977
feat(radio): add radio traffic gameplay
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-03 01:59:49 -04:00
a11d310e8e
feat(radio): add radio traffic route and result action
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@syphuslabs.ai>
2026-09-03 01:59:44 -04:00
fe38054606
feat(roster): enhance member data with enlistment date and experience points, add seniority view
2026-09-02 23:32:57 -04:00
a1bdf4ffb1
feat(awards): add cleanupDuplicateAwards utility and CLI tool skeleton
2026-09-02 16:14:12 -04:00
2e1fbf8006
feat(awards): support bulk recipient selection in award grant flow
...
Refactors grantAward to accept an array of recipientUserIds, adds
duplicate-award and eligibility checks per recipient, and returns a
per-recipient result summary. GrantAwardDialog gains a third step
showing grant results when some recipients fail. RecipientPicker is
rewritten to support multi-select with chip-based selected state and
a maxSelections cap.
2026-09-02 16:14:07 -04:00
d952a33ee7
feat(awards): render backgroundImage as faded backdrop on medal cards
2026-09-02 16:14:03 -04:00
d8867a643a
feat(awards): add backgroundImage field and migration for medal cards
2026-09-02 16:14:00 -04:00
2a1c94072f
feat(auth): protect role management page
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 21:39:34 -04:00
9841fb3628
chore(payload): regenerate permission schema types
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 21:39:24 -04:00
8cd5d22a47
chore(payload): add admin page permission migration
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 21:39:19 -04:00
37d82fd711
chore(seed): grant admin page permissions to built-in roles
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 21:39:14 -04:00
822ac47c23
feat(auth): scope Payload admin pages by permissions
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@siisyphuslabs.ai>
2026-09-01 21:39:09 -04:00
e29b403d06
feat(permissions): add admin page permission definitions
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 21:39:06 -04:00
b4bb328acd
chore(payload): register ticket schema and migration
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 17:48:59 -04:00
ab5af479c7
feat(helpdesk): add ticket edit and vote controls
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 17:48:52 -04:00
32a8dfa89e
feat(helpdesk): add ticket card and detail controls
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 17:48:48 -04:00
f869f4e4cc
feat(helpdesk): load vote summaries on ticket pages
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 17:48:45 -04:00
0fa636439a
feat(helpdesk): add ticket controls actions and coverage
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 17:48:40 -04:00
4594ff3d7c
feat(tickets): add ticket mutation services
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 17:48:37 -04:00
dbf7a0f180
feat(tickets): add ticket collections and edit history
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 17:48:34 -04:00
f1ff0436dd
fix(locker): keep inventory workspace visible
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 17:18:08 -04:00
cba1475b33
fix(banking): add account tab spacing
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 17:18:04 -04:00
39e13da41b
feat(impersonation): open user picker from account menu
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 17:17:57 -04:00
7624327ab9
refactor(impersonation): replace page control with modal
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 17:17:54 -04:00
6efe23a9e4
refactor(impersonation): move user selection into action flow
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 17:17:48 -04:00
3d8655aa8a
fix(notifications): add per-row mark as read
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 17:17:41 -04:00
36ab2eba9b
fix(notifications): scope user notification reads
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-01 17:17:34 -04:00
de556ba370
feat(sidebar): Remove duplicate transfers entry from sidebar navigation
2026-09-01 02:19:57 -04:00
76e948fd59
feat: Add remaining transfer components and utilities
...
Add transfer workflow components and utilities:
1. Transfer types and core functions (src/lib/transfers/index.ts):
- Type-safe transfer request and decision creation
- Appeal, cancel, and resolve core functions
- Server action conventions with error handling
2. Transfer UI components (src/components/frontend/transfers/):
- TransferActionDialog.tsx: Handle approval/rejection appeals
- TransferApprovalCard.tsx: Display approval decisions
- TransferNoteDialog.tsx: Add notes for transfers/appeals
- TransferRequestCard.tsx: Show transfer request details
- TransferResolutionCard.tsx: Display superuser resolutions
- TransfersView.tsx: Main transfers list page
- transferTypes.ts: Shared TypeScript types
3. Notification types (src/lib/transfers/notificationTypes.ts):
- Define notification type constants for transfer events
- Include TRANSFER_NOTIFICATION_TYPES for bridge filtering
4. Integration tests (tests/int/):
- transfer-requests.int.spec.ts: Test bot request polling
- transfer-bot-delivery.int.spec.ts: Test Discord notification delivery
These components and utilities complete the transfer workflow
implementation including approvals, appeals, and delivery.
2026-08-31 23:41:29 -04:00
b9326cfc54
feat(account): Add assignment cards and current assignments display to account page
...
Add AssignmentCard component integration showing user's assignments with transfer button.
Add RequestTransferDialog integration for requesting transfers.
Display current assignments as badges with leader indication.
Include proper loading states and error handling.
2026-08-31 23:40:58 -04:00
6c71e003c9
feat(config): Update payload config, notifications, and migrations
...
Update Payload configuration:
- Import AssignmentTransfers collection in src/payload.config.ts
Update notification system:
- src/lib/notifications/index.ts: Add transfer notification types
- Update notification helper to support new notification types
Update migrations index:
- src/migrations/index.ts: Register new assignment transfer migrations
These changes integrate the AssignmentTransfers collection into the
existing Payload configuration and notification infrastructure.
2026-08-31 23:40:41 -04:00
6fb8dee3f6
feat(frontend): Add assignment transfer UI components
...
Add React components for assignment transfer user interface:
1. AssignmentCard.tsx: Display user's current assignment with transfer button.
Shows assignment details, current status, and allows initiating transfer requests.
2. RequestTransferDialog.tsx: Modal dialog for creating transfer requests.
- Selects target assignment from assignment list
- Optionally notes required for transfer
- Submits request to AssignmentTransfers collection
- Emits AssignmentTransferRequest event
3. Transfers page (src/app/(frontend)/transfers/): Transfer request list view.
- Requests card showing pending requests with requestor, target, current
- Approval cards for assignment leaders
- Appeal cards for rejected requests
- Completed/Cancelled status display
All components use shadcn/ui primitives, proper loading states, error handling,
and provide accessible keyboard navigation.
2026-08-31 23:40:37 -04:00