1
0
Fork 0
Commit graph

193 commits

Author SHA1 Message Date
2984c72d77 fix(notifications): harden bell dropdown against failed mark-read 2026-08-12 12:38:48 -04:00
bc1456db88 feat(notify): push banking move and shipment arrival owner notifications 2026-08-12 12:38:46 -04:00
2a457a5dd9 feat(notify): add finance and shipment-completed notification types 2026-08-12 12:38:45 -04:00
83879687ae feat(users): add discordId and Discord notification preferences 2026-08-12 12:38:43 -04:00
bbfbd5966c feat(version): expose build/commit metadata via /api/version and overlay 2026-08-12 12:38:33 -04:00
3b0d90ea62 chore: gitignore local tooling directories 2026-08-11 23:27:23 -04:00
8550d90a8f docs: replace template README with project documentation 2026-08-11 23:25:50 -04:00
b024bcf2da style(ui): add theme-matching scrollbars across the frontend 2026-08-11 23:25:47 -04:00
7f27b5e823 style(dashboard): polish quick stats and recent events feed
- Emphasize stat values and keep labels on one line
- Rework the recent events feed into a two-line layout with human-readable type labels and narrative highlighting
2026-08-11 23:25:44 -04:00
66816e2182 refactor(event-log): extract shared formatType helper and restyle ledger entries
- Move the event type formatter into its own util for reuse
- Reflow ledger rows into a stacked two-line layout with a type chip
2026-08-11 23:25:41 -04:00
9bf16980cc feat(roster): build org chart from explicit subassignment hierarchy
- Resolve parents via subAssignments instead of inferred member overlap
- Drop cyclic or dangling subassignment edges
- Render members only at their deepest unit; widen unit boxes and pluralize member counts
2026-08-11 23:25:38 -04:00
d4ff6ba1a1 feat(frontend): add account navigation, qualification-gated sidebar sections, and callsign display
- Add Account entry to the sidebar and user menu
- Hide Intelligence and Infrastructure sections unless the user is qualified
- Make the sidebar content area scrollable
- Support showing the callsign in the user menu via preferences
2026-08-11 23:25:33 -04:00
caae76e6b2 feat(intelligence): gate intelligence content behind the intelligence qualification
- Add hasIntelligenceQualification access helper
- Redirect non-qualified users away from /intelligence
- Hide mission and campaign widgets on the dashboard for non-qualified users
- Guard hasLogisticsQualification against a null user
2026-08-11 23:25:27 -04:00
c81036bd82 feat(account): add self-service account page with profile, password, Discord request, and preferences
- Add /account page backed by server actions
- Allow editing display name, changing password, and requesting a Discord username change
- Add notification muting and callsign display preferences UI
- Add shadcn card component and account event types
2026-08-11 23:25:21 -04:00
b8cbb85dc8 feat(notifications): add notification inbox page and preference-aware muting
- Add /notifications inbox with mark-read and mark-all-read actions
- Respect mutedAll/mutedTypes preferences when creating notifications
- Add View all link and Discord request label to the notifications bell
2026-08-11 23:25:16 -04:00
5ee98d61da feat(users): add trusted role, preferences, and profile/account auto-provisioning
- Add trusted role and isTrusted access helper
- Add notification muting and display preferences to the user schema
- Auto-create a profile and personal bank account when a user signs up
- Add idempotent backfillProfiles seed script for existing members
2026-08-11 23:25:09 -04:00
35e1354043 chore(frontend): remove stale dashboard redirect and sample API route 2026-08-11 23:25:03 -04:00
656d8de788 chore(deps): drop pnpm lockfile in favor of bun
Bun is the project's package manager; refresh the tracked lockfile backup.
2026-08-11 23:25:00 -04:00
b0fc432e2a docs: document marketplace, notifications, NPCs, and MVP roadmap
- AGENTS.md: Marketplace and Notifications sections, game-npcs and
  market target collections, market + npc event types, and the
  drizzle push / PostGIS ownership gotcha
- TODO.md: mark the core buy/sell marketplace done and add the MVP
  8/15 roadmap (auth, ACL, frontend, logistics)
2026-08-10 16:06:05 -04:00
89b8474e23 feat(market): add trading marketplace with listings, haggling, and NPC vendors
Tarkov-style flea market where users list locker items at a fixed price
and buyers pay through the banking system; items transfer directly
into the buyer's locker.

- market-listings + market-negotiations collections and the market page
  with search/rarity filters and a Countdown timer on each card
- service lib (buyListing with partial-quantity + negotiated-price
  support, clean-stock rule, creditLockerQuantity, auto pricing)
- negotiation flow: make/accept/reject/counter/withdraw, strictly-
  increasing buyer offers, NPC vendor auto-resolution
- NPC vendors: game-npcs attribution, patience meter, dialogue, chat
  bubbles, historical threads dialog
- 30d user / 7d auto listing durations, market-tick bin for expiry +
  vendor restock, SSE notify on tick
- market event types + game-npcs/market target collections in the
  event log; sidebar Market entry under Logistics
- partial-quantity purchases (buyListing/buyMarketListing/makeMarketOffer)
  with full int test coverage (25 tests)
2026-08-10 16:05:57 -04:00
3a46d4e5be feat(npcs): add game-npcs collection for vendors
Developer-gated collection for NPC characters, including the vendor
fields (enabled, priceModifier, sells[]) used by the marketplace to
attribute auto-generated listings to background merchants.
2026-08-10 16:03:52 -04:00
9c15117b9b feat(notifications): add in-app player notification center
- user-notifications collection (per-user inbox, owner-scoped read)
- notifyUser() fire-and-forget helper + notification label mapping
- NotificationsBell in the site header with 30s polling, unread badge,
  mark-read on click, and "Mark all read"
- markNotificationsRead / markAllNotificationsRead server actions
2026-08-10 16:02:55 -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
6b94686de4 style(dashboard): drop obsolete text-shadow utilities
Remove the text-shadow-orange classes from the WIP alert now that the
dark theme renders the title/description legibly without them.
2026-08-10 16:01:56 -04:00
f312b7b8f4 test(e2e): refresh frontend login and landing smoke tests
Enable baseURL in playwright config and replace the placeholder
homepage check with a landing-page test and a dev-user login flow.
2026-08-10 16:01:51 -04:00
0b6e00b99c chore(ui): add shadcn badge, checkbox, sonner toaster, and useNow hook
- badge, checkbox, sonner shadcn primitives
- useNow hook for client-side now() with re-render
- mount <Toaster /> in the frontend root layout
2026-08-10 16:01:43 -04:00
fc27f11ab8 fix(locker): revert to onClick and add error feedback to slot picker
- Revert onPointerDown back to onClick for item selection
- Add error state to display server action failures to user
- Add pending state to disable buttons during submission
- Update onPick to return ActionResult for error handling
2026-08-02 19:00:05 -04:00
bf6b29690f fix(locker): use onPointerDown for slot picker item selection
- Change onClick to onPointerDown with preventDefault on item buttons
- Also update Cancel and Clear Slot buttons for consistency
- Fixes item selection not working inside the dialog
2026-08-02 18:58:28 -04:00
11e9bfef24 fix(locker): use onPointerDown for wardrobe slot clicks
- Change onClick to onPointerDown with preventDefault
- Prevents Tooltip from intercepting the click event
- Slot picker dialog now opens reliably when clicking hotspots
2026-08-02 18:56:57 -04:00
58b70fc154 fix(locker): match tooltip arrow color to dark popover background
- Add arrowClassName prop to TooltipContent component
- Pass bg-popover fill-popover to wardrobe tooltip arrow
- Arrow now matches the dark tooltip body instead of being white
2026-08-02 18:54:42 -04:00
775b61e1f4 style(locker): increase wardrobe tooltip text size and use dark theme
- Change tooltip background from bg-foreground to bg-popover (dark)
- Increase text size from text-xs to text-sm
- Add border border-border for subtle definition
- Use font-semibold for slot name label
2026-08-02 18:53:47 -04:00
be8e537385 feat(locker): add hover tooltip to wardrobe slot hotspots
- Wrap each wardrobe slot button with shadcn Tooltip component
- Show slot name and current item name on hover
- Use smooth fade-in/zoom-in animation from shadcn tooltip
- Position tooltip to the right of each hotspot with 8px offset
2026-08-02 18:52:45 -04:00
f2de832ea4 chore: update TODO.md and add soldier wardrobe images
- Mark wardrobe and equipment editor as completed in TODO.md
- Add soldier-pose-alpha.png for wardrobe character visualization
- Add soldier-pose.png reference image
2026-08-02 18:50:31 -04:00
4ae2b3137c feat(locker): add drag-drop attachment in grid
- Add attachItemFromGrid server action for drag-drop attachment
- Add attach drop detection in LockerGrid handleDragEnd
- Add attach drop styling with amber highlight on weapon footprint
- Add isAttachDrop prop to GridCell for attach-specific feedback
- Add dragError state with 5s auto-clear for attach failures
- Reuse setItemAttachment/removeItemAttachment semantics
- Handle slot replacement with no-room fallback for old attachments
2026-08-02 18:50:19 -04:00
a466ed54ed feat(locker): add command palette search
- Add LockerSearch component with Search button and ⌘K shortcut
- Add search.ts with buildSearchEntries, buildAssetStats, resolveAssetRef
- Add command.tsx shadcn component (cmdk dependency)
- Group search results by asset type with quantities and location chips
- Show stats: slot, capacity, ammo, weight, NVG generation, rarity
- Support navigation: weapon → customize, attachment → parent customize
- Add locker-search-highlight animation for 3s amber pulse feedback
- Add cmdk@^1.1.1 dependency
2026-08-02 18:50:07 -04:00
6e717684fb feat(locker): add equipment editor and wardrobe tab
- Add EquipmentEditorDialog for per-category attachments, skins, and custom names
- Add Wardrobe component with soldier image and clickable equipment slots
- Add WardrobePanel with loadout selector and current equipment display
- Add WardrobeSlotPicker dialog for equipping items from locker
- Add equip/unequip loadout functionality with equipped badge
- Add equipment schema to LockerStorages (attachments, skin, customName)
- Add wardrobe slot layout with hotspot positions for each equipment type
- Add locker:item-attach, locker:item-detach, locker:item-skin event types
- Update LoadoutCard to show equipped status and equipment list
- Update LoadoutsPanel to pass ownedItems for equipment display
2026-08-02 18:49:59 -04:00
c0f8d7080d docs: add feature roadmap 2026-08-02 14:32:55 -04:00
d50f114a75 docs: add dev server testing protocol to AGENTS.md 2026-08-02 14:32:55 -04:00
6b2778751b refactor(flappy): use obstacle terminology instead of pipes 2026-08-02 14:32:53 -04:00
e5f544f103 feat(flappy): rework obstacles as lit buildings with day-night cycle 2026-08-02 14:32:51 -04:00
126d5b6dae feat(locker): add personal locker page and UI 2026-08-02 14:32:49 -04:00
d32f36a39c feat(locker): add locker and loadout server actions 2026-08-02 14:32:47 -04:00
0fc898d227 feat(locker): add locker grid and loadout helpers 2026-08-02 14:32:45 -04:00
9a565986e9 feat(locker): add event logging for locker and loadout actions 2026-08-02 14:32:42 -04:00
7f4df6597a feat(locker): add locker-storages and loadouts collections 2026-08-02 14:32:40 -04:00
9d990d2965 feat(flappy): rebrand references to "definitely not Flappy Bird" 2026-08-02 12:56:41 -04:00
f81b7ecce6 feat(flappy): add top-10 leaderboard beneath the game 2026-08-02 12:56:26 -04:00
d754b2954a feat(flappy): add flight simulator minigame with per-run XP rewards 2026-08-02 12:55:54 -04:00
0a2a8a87b9 docs: note banking event targets and currency label preference in AGENTS.md 2026-08-02 04:11:13 -04:00
d7fafbd883 chore: update AGENTS.md with banking system documentation 2026-08-02 04:10:43 -04:00