a6b06569da
feat(locker): refine inventory workspace
2026-08-28 01:19:48 -04:00
3e99a7f47d
chore(docker): disable HEALTHCHECK for easier management with Coolify
2026-08-28 00:54:37 -04:00
ab86be05ae
feat(awards): add commendation color field and update award sorting
2026-08-28 00:54:25 -04:00
53d053b3b2
chore(db): refresh generated schema
2026-08-28 00:20:58 -04:00
450697416b
test(auth): cover session token expiry parsing
2026-08-28 00:20:58 -04:00
64babe2608
feat(intelligence): track mission completion and campaign modes
2026-08-28 00:20:47 -04:00
d94da34af2
feat(intelligence): add mission feedback reminders
2026-08-28 00:20:41 -04:00
c2a16120cc
feat(auth): handle expiring sessions in frontend
2026-08-28 00:20:35 -04:00
f6d42399d4
fix(bot): refresh roll-call date changes
2026-08-28 00:20:24 -04:00
055db8d0f0
docs(todo): refresh application roadmap
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-08-27 18:36:11 -04:00
ddca600f04
docs(deploy): document Coolify deployment flow
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-08-27 18:36:11 -04:00
a82ab415af
build(deploy): remove legacy deploy hook
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-08-27 18:36:11 -04:00
7ca8cd8551
feat(version): expose build metadata
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-08-27 18:36:11 -04:00
7490f34267
feat(version): add build metadata fields
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-08-27 18:36:11 -04:00
d518b13f36
feat(xp): show experience descriptions
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-08-27 18:36:11 -04:00
523b19ee52
feat(xp): expose experience descriptions
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-08-27 18:36:11 -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
22b7343fa8
feat(evaluations): register collection and generated types
...
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
6bbafc7c5a
feat(profile): integrate evaluations into profile pages
...
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
b8ba036965
feat(profile): add leadership evaluation controls
...
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
959f65b51e
feat(evaluations): add profile evaluation actions
...
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
a21770e54e
feat(evaluations): add evaluation service
...
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
9955c376f9
feat(evaluations): define performance levels
...
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
2be1081e92
test(int): fix pre-existing tickets and market spec failures
...
tickets: makeUser now assigns roleDocs because getStaffUserIds queries the RBAC relationship and the legacy roles select field is not synced at runtime. Both specs: teardown deletes profiles (and user-notifications in market) before users, since those relationships are NOT NULL.
2026-08-27 14:01:16 -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
503e7a35f9
feat(import): add Arma library importer with PBO icon extraction
...
- importArmaLibrary: upsert Arma export catalog into assets/vehicles via
Payload, materialize .paa thumbnails (convertPaaToPng) and link uploads,
resolve Fuel resource for vehicle fuel defaults
- extractArmaIcons: ref-driven PBO .paa extraction into a --paa-root tree
shaped like inventory icon ref paths
- package.json: add import:arma script
2026-08-27 11:25:28 -04:00
d740d43800
feat(eod): update difficulty selection in EOD components and bump version to 0.2.0
2026-08-26 23:55:03 -04:00
7a34c3901e
feat(eod): add best times tracking for training, perimeter, and supply road games
2026-08-26 23:24:24 -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
b99520bc64
feat(version): add version bump script for CI deployments
2026-08-26 22:13:24 -04:00
2922df23dd
chore(db): add EOD profile migration
2026-08-26 22:04:48 -04:00
3e82ef4ed9
feat(profiles): track EOD minesweeper progress
2026-08-26 22:04:48 -04:00
512cdd62ad
feat(eod): add minesweeper clearance game
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
d4060c06f0
feat(campaigns): include cover images in frontend queries
2026-08-26 18:05:41 -04:00
413a677306
chore(.gitignore): add development environment files to ignore list
2026-08-26 00:55:49 -04:00
b22a1836e4
chore(migrations): track schema snapshots and require explicit apply
2026-08-26 00:53:57 -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
d6b2ffa5d2
chore(access-control): scaffold empty isAuthor helper stub
2026-08-25 13:27:48 -04:00
f1dd3c67ce
feat(campaigns): add Zeus campaign-creation CTA to campaigns header
2026-08-25 13:27:48 -04:00
802873c7fa
feat(structures): hero image header on structure detail page
...
When the structure type has an image, render it as a full-bleed
cover behind the page header with vertical and horizontal gradient
overlays; text shifts to white for contrast. Headers without an
image keep the previous plain layout.
2026-08-25 12:34:35 -04:00
fff9e82d62
feat(tools): scaffold reset-password CLI
...
Add src/tools/cli with a CliFlow helper (boxed headers, labeled log
lines) and a reset-password command stub wired to the prompt package.
Runnable via 'bun run u:reset-password'; interactive flow to follow.
2026-08-25 12:32:03 -04:00
41b9d62e15
feat(sidebar): add sparkle accent to mini XP display
...
Show a sparkle icon next to the XP number in the collapsed sidebar
XP strip; inline the level-name/XP spans per prettier.
2026-08-25 12:31:54 -04:00
3348466f3b
fix(roster): tighten tab icon spacing and allow org chart scroll
...
Add gap-1.5 to the roster tab triggers so icons and labels are not
glued together, and let the org chart tab scroll horizontally instead
of overflowing the page.
2026-08-25 12:31:53 -04:00
7cfb650095
style(bot): capitalize attendance embed field labels
...
Title-case 'Operation Type' and 'Max Players' in the RSVP embed and
apply prettier formatting to the listener error log call.
2026-08-25 12:31:20 -04:00
9b909e85e6
refactor(arma-bridge): extract shared server guard and json coercion
...
requireArmaServer (src/lib/arma-bridge/server.ts) wraps the shared
bridge auth + game-servers lookup that every v1 route repeated;
asJson (json.ts) narrows untrusted request values to what Payload's
json field validation accepts (strings normalize to the fallback
instead of failing the write). All four v1 routes now use both.
Also document the ARMA_BRIDGE_API_KEY env var missed when the bridge
routes landed.
2026-08-25 12:30:50 -04:00