1
0
Fork 0
Commit graph

103 commits

Author SHA1 Message Date
92117374b7 feat(voiceover): add description and spoiler fields to voice scripts
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-07 00:34:32 -04:00
4f4e2b136f feat(missions): make campaign optional and track side-op creators
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 23:29:48 -04:00
f83301a923 feat(voiceover): add voice script and submission collections with profile XP
Add VoiceScripts and VoiceSubmissions collections, voiceover event types and event-log targets, the voice-submissions migration, and a voiceover XP group on Profiles counted toward total XP.

Ultraworked with [Sisyphus](https://github.com/code-yeongju/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 17:22:50 -04:00
ded5d4b341 feat(economy): add market-state collection with supply/demand baselines
Introduce the market-state ledger (one doc per tradeable resource/asset), GM baseline fields on Assets/Resources, global economy knobs on Game Rules, market-state RBAC permissions, and the market-state event target option.

Ultraworked with [Sisyphus](https://github.com/code-yeongju/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 17:22:17 -04:00
33174572cc docs: refresh AGENTS.md guides
Update root and per-directory AGENTS.md files to reflect the current
state of the codebase: collection inventory, RBAC registry, base
management, personnel pages, training minigames, Discord bot transfer
and evaluation-reminder flows, banking currency config, migration
wrapper, and Playwright/Vivaldi e2e details.
2026-09-06 05:32:53 -04:00
51f7c803e0 feat(wiki): add scoped template CSS and developer HTML templates
WikiTemplates gains two fields: an optional css code field injected on
pages that use the template (selectors auto-scoped to a hash-based
.ptf-tpl-* class so templates never collide with each other or the app
shell), and a developer-only html field rendered verbatim (sanitized)
in place of the markdown body when transcluded.

- templateCss.ts scopes/sanitizes CSS, incl. nested at-rules; pages
  and the editor live preview inject scoped styles and drop the Card
  chrome in favor of a full-width article
- templateHtml.ts sanitizes HTML and splits prepared markdown around
  expansion sentinels so raw HTML renders without rehype-raw
- templates.ts adds extractTemplateNames/extractPlaceholders/
  extractDirectiveNames; prepareMarkdown threads an htmlTemplates map
- markdown pipeline gains rehype-highlight for fenced code blocks
- styles.css adds wiki prose typography + infobox demo styling
- docs: demo article and Infobox template authoring guide
2026-09-06 05:32:48 -04:00
60da363a93 feat(profile): add rich-text dossier excerpt editors
Convert the dossier personal excerpt from a plain textarea to Lexical
rich text (matching the intel excerpt) with a 1000-character plain-text
limit, and replace the static read-only cards on the profile page with
inline DossierExcerptEditors: owners edit their personal excerpt,
profiles:intel_excerpt:update holders edit the intelligence record.
Changes are validated server-side (lexicalPlaintextLength) and emit
dossier:personal-excerpt-update / dossier:intel-excerpt-update events.
2026-09-06 05:32:23 -04:00
e3c4eada09 feat(bot): add post-mission evaluation reminder DMs
Sends one-shot DMs once a mission is evaluable asking members to rate their leadership (and leaders to rate subordinates), gated by a new evaluationRemindersSentAt marker on Missions with its migration. Adds the /remind-evaluations staff command (manual trigger/sweep) and DISCORD_EVALUATION_POLL_MS config; updates bot and root docs.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 01:24:17 -04:00
06dbf5b796 feat(admin): add collapsible group field
Wraps Payload's group field in a Collapsible so long groups (e.g. profile minigames) can start collapsed in the admin panel; refreshes the import map.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 01:24:11 -04:00
b2718b3633 feat(base): add npc staffing and labor classification collections
Adds the npc-staffing and labor-classifications collections, a shared staffing field factory applied to both structure blueprints (Staffing Defaults group) and game structure instances, blueprint-derived staffing defaults on game structure create, staff-hiring toggles on Game Rules, and their database migrations.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 01:24:08 -04:00
854c525b07 feat(events): add staffing, upkeep, and upgrade event types
Adds staff:hired/terminated/headcount-set, staff:salary-paid/unpaid, structure:upgraded/maintenance-paid/maintenance-unpaid/upkeep-short event types and registers npc-staffing as an event target collection.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 01:24:02 -04:00
8205c33768 feat(banking): add configurable currency display names
Adds a Universal Currency group to Game Rules (name, symbol, singular, plural, denomination) with a CurrencyConfig reader in the banking lib that pluralizes labels and prefixes symbols; registers the game_rules migration.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 01:23:53 -04:00
3c6a9c8a42 feat(wiki): add wiki server actions and event logging
Server actions for page create/update, revision restore, lockdown, and
delete (moderator-gated via intelligence qualification) plus wiki image
uploads. Adds wiki event types (wiki:page-create/edit/restore/lock/
unlock/delete) and registers wiki-pages/revisions/templates as valid event
log targets.
2026-09-05 00:02:04 -04:00
01b1a73158 feat(wiki): add wiki collections and database migration
Add WikiPages, WikiRevisions, and WikiTemplates collections (admin group
Wiki), register them in the Payload config, and add migration batch 28
creating the wiki_pages/_texts, wiki_revisions, and wiki_templates tables
plus the three wiki values on the game_event_logs target_collection enum.
Includes the regenerated payload-types for the new collections.
2026-09-05 00:01:58 -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
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
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
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
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
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
a8854034d3 feat(events): Add assignment transfer event types and emit functions
Add event logging constants for assignment transfer events:
- AssignmentTransferRequest: Request initiated by user
- AssignmentTransferApprove: Leader approved transfer
- AssignmentTransferReject: Leader rejected transfer with reason
- AssignmentTransferAppeal: User appealed a rejection
- AssignmentTransferResolve: Final resolution by superuser
- AssignmentTransferComplete: Transfer completed successfully
- AssignmentTransferCancel: Transfer cancelled

Add assignment-transfers to GameEventLogs TARGET_COLLECTIONS

Add emitGameEvent support for all transfer event types in src/utils/event-log/emit.ts

This provides audit trail and notification support for the transfer workflow.
2026-08-31 23:40:08 -04:00
be459cde0f feat(collections): Add AssignmentTransfers collection and migrations
Add new AssignmentTransfers collection with fields for managing assignment transfer requests:
- requestor, requestedAssignment, currentAssignment (relationships to users/assignments)
- status (pending/approved/rejected/appealed/escalated/completed/cancelled)
- rejectionReason, appealReason (for rejections and appeals)
- transferAt, approvedAt, appealedAt, completedAt (audit timestamps)
- transferLead (relationship to users, current and requested assignment leaders)
- requestMessage, appealMessage (optional context messages)

Add database migrations:
- 20260831_180233_assignment_transfers: Create the main collection table
- 20260901_014006_add_assignment_transfer_event_target: Add assignment-transfers to GameEventLogs target collections

The collection enables the assignment transfer workflow where users can request transfers,
leaders can approve/reject with reasons, and users can appeal rejections.
2026-08-31 23:40:02 -04:00
7f19b35b40 feat(awards): add grantConfig permissions to Awards collection with migration 2026-08-31 12:27:36 -04:00
66181ff51c feat(assignments): add AssignmentMembersField component for managing assignment members 2026-08-29 23:53:13 -04:00
b9999fceff Merge branch 'feat/tarkov-locker-ui'
# Conflicts:
#	TODO.md
#	src/components/frontend/eod/MinesweeperBoard.tsx
#	src/migrations/index.ts
2026-08-28 18:26:00 -04:00
1f2f7b6269 feat(preferences): add background texture toggle 2026-08-28 01:20:12 -04:00
ab86be05ae feat(awards): add commendation color field and update award sorting 2026-08-28 00:54:25 -04:00
64babe2608 feat(intelligence): track mission completion and campaign modes 2026-08-28 00:20:47 -04:00
c2a16120cc feat(auth): handle expiring sessions in frontend 2026-08-28 00:20:35 -04:00
21f61ca33f feat(evaluations): add permissions and event logging
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-08-27 18:36:04 -04:00
15145f613a feat(evaluations): add evaluations collection and migration
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-08-27 18:36:04 -04:00
9323a7ce08 feat(notifications): notify users when awards are granted via profile edit
Add a Profiles afterChange hook that diffs progression.awards against previousDoc (row id, falling back to award+date composite key) and sends an award:granted notification including the grant reason and issuer. Register award:granted as a muteable notification type.
2026-08-27 14:01:16 -04:00
a247e61fa9 feat(eod): add high-contrast toggle, improved leaderboard, new effects on bad-flag cells 2026-08-26 22:36:06 -04:00
3e82ef4ed9 feat(profiles): track EOD minesweeper progress 2026-08-26 22:04:48 -04:00
3112b72972 feat(profiles): adjust experience points calculation for kills 2026-08-26 18:12:34 -04:00
287a0f7db8 feat(server): add stale presence monitoring 2026-08-26 18:05:57 -04:00
3dfdc8916d feat(arma): track player kills from sync events 2026-08-26 18:05:51 -04:00
83f203d736 feat(shims): add targeted client-side injections 2026-08-26 00:53:31 -04:00
0771424446 feat(campaigns): let members create and own campaigns 2026-08-26 00:53:17 -04:00
824b03ec49 feat(missions): add redacted objective toggle
Mission objectives gain a redacted checkbox. Redacted objectives are
shown block-redacted to players; mission managers, authors, and Zeus
see the real text (via tooltip) and can toggle the flag from the
mission detail page. Toggles emit mission:objective-redacted-toggle
events. Also registers the mission:auto-complete event type used by
the upcoming mission-tick bin.
2026-08-25 12:27:52 -04:00
c0d00fc113 fix(auth): reject MCP API-key sessions in user auth paths
With the MCP plugin enabled, payload.auth() can return a
payload-mcp-api-keys doc instead of a User. Add an isPayloadUser
type guard and use it in every server action, page, and route that
treats the auth result as a real user, so API-key sessions can no
longer pass user auth checks. hasRoles now explicitly requires a
users-collection doc.
2026-08-25 12:27:35 -04:00
b581670e72 feat(preferences): add xpDisplayMini preference and update action
Add the xpDisplayMini checkbox to user display preferences, regenerate types, and accept it in updatePreferences.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-08-23 18:51:59 -04:00
a0c4eaabcf fix(banking): join parent transaction in account provisioning hooks
Thread the Payload request through createAccount/ensurePersonalAccount and the Users beforeChange hook writes so nested creates share the parent transaction instead of failing FK checks on a fresh connection.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-08-23 18:51:49 -04:00
347cbdf956 feat(server): add game-server sync collections
Add GameServers, ArmaSyncEvents and ArmaCommands collections plus registration in payload config and regenerated types.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-08-23 18:51:24 -04:00
91d1214a7b feat(profiles): add award metadata 2026-08-21 15:39:36 -04:00
9e91203330 fix(collections): correct asset filter callback 2026-08-21 02:27:57 -04:00
40b130c8d3 feat(attendance): implement real-time attendance change notifications for Discord 2026-08-21 02:12:01 -04:00
4ad49d3b95 fix(discord): send mission roll calls once 2026-08-21 01:56:12 -04:00
6d58451978 feat(projects): enforce permissions and improve search 2026-08-21 00:26:33 -04:00