1
0
Fork 0
Commit graph

22 commits

Author SHA1 Message Date
1f230c0868 feat(missions): add a per-mission planning map with Arma markers
- New mission-map-markers collection (permission-gated, removed with its
  mission via a Missions beforeDelete hook) plus an opt-in
  classification.planningMapEnabled flag on missions.
- The mission page gains a planning section: place and edit Arma markers
  (icons, ellipses, rectangles, polylines) with debounced saves, an SQF copy
  export, and an Arma grid readout. Everyone who can read the mission sees the
  plan once enabled; editing requires missions:update or mission ownership.
- Base layers come from GET /api/map-features?layers=base, which skips the
  structure, node and shipment queries; marker icons render tinted by color
  exactly like in-game.
- Includes the hand-written migration, the missionMap service lib, server
  actions emitting mission:map-marker-* events, and integration plus e2e
  coverage.
2026-10-04 02:53:21 -04:00
d9253e6725 chore(payload): regenerate types and schema, harden sequence reset
- Regenerate payload-types and the drizzle schema for the new collections and
  fields (promotion nominations, leadership transfers, the accessory asset
  type, the Ornith model settings) and register the new migrations.
- Fix the reset-sequences SQL function to skip empty tables, and update the
  prod sync script to match.
2026-10-03 03:30:43 -04:00
15f2d0c573 feat(tech-tree): add tech-categories collection, permissions, and treePosition
Add the tech-categories collection that gives technologies a home off the
flat uncategorized pool, plus the schema support the admin editor needs.

- New `tech-categories` collection (unique name, timeline `position`,
  optional hex `color`) with a `Technologies.category` FK (ON DELETE set
  null) so deleting a category just unfiles its technologies.
- Add `Technologies.treePosition {x,y}` so the canvas can pin a node's
  manual position; clearing it uses `{x:null,y:null}`.
- Register the two hand-written migrations (tech-categories + treePosition)
  and regenerate payload-types, the drizzle schema, and the admin importMap.
- Register the `tech-categories:*` permission group and grant Intelligence
  division members admin-panel access, mirroring technologies.
2026-10-01 10:03:49 -04:00
c9a3d23f96 feat(wiki): add Documentation category restricted to admins and developers
New in-depth, non-developer guides for the core systems: logistics and storage rules, banking, market and negotiation, shipments, base management, and the map. Read stays open to any logged-in user; create and edit require admin or developer roles (enforced in the collection access functions and the wiki server actions, since the service layer runs with overrideAccess). Category escalation via update is blocked too. Ships the enum migration, regenerated schema/types, and the idempotent seed script with its markdown sources.
2026-09-30 18:41:07 -04:00
4224096b62 chore(db): register migrations and regenerate schema/types 2026-09-30 14:50:40 -04:00
8c95c1ee82 feat(announcements): add announcements system with roleDocs targeting and richText
- announcements collection: info/success/warning/error variants, banner/modal/dialog/toast display types, up to 3 action buttons, dismissible flag, activeFrom/activeUntil windows, audience targeting (all/users/roles) and path include/exclude matching copied from the Shims pattern
- pure client-safe evaluation lib (enabled, time window, audience via roleDoc IDs, path match) plus per-browser localStorage dismissals
- AnnouncementHost mounted in the (frontend) layout: banners render inline, toasts via sonner custom markup, modals and confirmation dialogs queue one at a time
- permissions announcements:create/read/update/delete + admin:announcements:manage
- description is Lexical richText rendered via RichText/lexical-content on all surfaces; role targeting uses the dynamic Roles collection
- hand-written migrations with snapshot sidecars (collection, roleDocs targeting, description richtext conversion) + integration tests (12 passing)
2026-09-22 21:08:46 -04:00
9bbe44d38d feat(map): world map picker entry, intel fields, node icons, generic markers
- Maps gain worldMap flag, description, freeform weather, latitude/longitude,
  easeOfAccess and factionControl; picker cards render them as stat tags
- resource-nodes gain a shared icon set and may exist with no resources as
  plain marker nodes (placement ignores marker-only nodes)
- sidebar gains the World Map entry; Infrastructure section gets defaultOpen
- migrations 20260921_120000/123000/130500/134000; includes the generated
  types/schema sweep (currency emblem fields land in the next commit)
2026-09-21 20:47:46 -04:00
c0563dae30 chore(generated): regenerate types and schema, register operation migrations
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-20 02:45:00 -04:00
35769ea0f6 feat(bot): add imminent-op reminder thread with attendee pings
15 minutes before a posted op starts, the bot opens a thread on the
roll-call message and pings everyone who RSVP'd yes, as a last-call
nudge that the op is imminent. One-shot per mission via a new
imminentReminderSentAt marker on Missions (migration included); the
cancel flow clears it so a rescheduled op re-reminds for its new start
time. Poll cadence via DISCORD_IMMINENT_POLL_MS (default 60s).
2026-09-18 13:09:35 -04:00
cc0a7facd0 feat(map): political zone types, road label tri-state, authoring snapping lib
- map-zones type gains territory and country border (informational political
  boundaries that never gate placement, default fills amber 0.1 / violet 0.06)
- map-roads labelVisible is tri-state: unset means auto, where paved roads
  always label and dirt/trail only label at 4 m/px or finer (roadLabelShown)
- migration clears the old implicit label default on non-paved roads
- new pure snapping lib: findSnap (vertices own their neighborhood, edges must
  be twice as close), closestPointOnSegment, segmentMidpoints
- tests for label angles, tri-state rule, snapping, political zones
2026-09-17 16:27:55 -04:00
b5925b7633 chore(generated): regenerate types and schema, register map migrations
Regenerated payload types and db schema; register the game map system, construction timestamp, map labels, and node/zone resources migrations.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-16 23:14:24 -04:00
f0af778713 feat(dashboard): customizable dashboard with personal widgets
- Drag-and-drop widget arrangement (main two-column zone + sidebar) with
  per-widget span resize, persisted to Users.preferences.dashboard.layout
  via saveDashboardLayout (migration included)
- New personal widgets: Wallet, Open Negotiations, My Tickets (View all),
  Recent Notifications (per-row mark as read)
- Widgets that are empty or not visible to the viewer are omitted so they
  never render as empty drag targets
- Registers both pending migrations and regenerates payload types/schema
2026-09-10 20:03:27 -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
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
53d053b3b2 chore(db): refresh generated schema 2026-08-28 00:20:58 -04:00
287a0f7db8 feat(server): add stale presence monitoring 2026-08-26 18:05:57 -04:00
9f4faa948b style(config): format generated payload schema 2026-08-16 23:27:51 -04:00
2dff16a291 fix(logistics): normalize Structure minFrequency defaultValue as string 2026-08-12 23:11:45 -04:00
4a76b54426 chore(types): regenerate payload types and schema
Regenerate payload-types.ts and payload-generated-schema.ts to cover
the forthcoming user-notifications, game-npcs, and market collections
(including the quantity column on market-negotiations).
2026-08-10 16:02:04 -04:00
a440623d93 feat(banking): add bank accounts, transactions, and ledger entries collections 2026-08-02 04:10:28 -04:00
2e65ab08d8 chore(types): regenerate payload types and database schema 2026-08-02 02:04:48 -04:00
Z8MB1E
2e695bd43f feat: application staging deployment (ensure better commits after this) 2025-12-15 01:14:30 -05:00