syntaxbullet
aca5538d57
chore: improve DX scripts, fix test suite, and harden tooling
...
Scripts:
- remote.sh: remove unused open_browser() function
- deploy-remote.sh: add DB backup before deploy, --skip-backup flag, step numbering
- db-backup.sh: fix macOS compat (xargs -r is GNU-only), use portable approach
- db-restore.sh: add safety backup before restore, SQL file validation, file size display
- logs.sh: default to no-follow with --tail=100, order-independent arg parsing
- docker-cleanup.sh: add Docker health check, colored output
- test-sequential.sh: exclude *.integration.test.ts by default, add --integration flag
- simulate-ci.sh: pass --integration flag (has real DB)
Tests:
- db.test.ts: fix mock path from ./DrizzleClient to @shared/db/DrizzleClient
- server.settings.test.ts: rewrite mocks for gameSettingsService (old config/saveConfig removed)
- server.test.ts: add missing config.lootdrop and BotClient mocks, complete DrizzleClient chain
- indexes.test.ts: rename to indexes.integration.test.ts (requires live DB)
Config:
- package.json: test script uses sequential runner, add test:ci and db:restore aliases
- deploy.yml: use --integration flag in CI (has Postgres service)
2026-02-13 14:39:02 +01:00
syntaxbullet
0c67a8754f
refactor: Implement Zod schema validation for inventory effect payloads and enhance item route DTO type safety.
2026-02-13 14:12:46 +01:00
syntaxbullet
099601ce6d
refactor: convert ModerationService and PruneService from classes to singleton objects
...
- Convert ModerationService class to moderationService singleton
- Convert PruneService class to pruneService singleton
- Update all command files to use new singleton imports
- Update web routes to use new singleton imports
- Update tests for singleton pattern
- Remove getNextCaseId from tests (now private module function)
2026-02-13 13:33:58 +01:00
syntaxbullet
6eb4a32a12
refactor: consolidate config types and remove file-based config
...
Tickets: #2 , #3
- Remove duplicate type definitions from shared/lib/config.ts
- Import types from schema files (game-settings.ts, guild-settings.ts)
- Add GuildConfig interface to guild-settings.ts schema
- Rename ModerationConfig to ModerationCaseConfig in moderation.service.ts
- Delete shared/config/config.json and shared/scripts/migrate-config-to-db.ts
- Update settings API to use gameSettingsService exclusively
- Return DB format (strings) from API instead of runtime BigInts
- Fix moderation service tests to pass config as parameter
Breaking Changes:
- Removes legacy file-based configuration system
- API now returns database format with string values for BigInt fields
2026-02-13 13:24:02 +01:00
syntaxbullet
43d32918ab
feat(api): add guild settings API endpoints
...
Add REST endpoints for managing per-guild configuration:
- GET /api/guilds/:guildId/settings
- PUT/PATCH /api/guilds/:guildId/settings
- DELETE /api/guilds/:guildId/settings
2026-02-12 15:09:29 +01:00
syntaxbullet
553b9b4952
feat: Implement a new API routing system by adding dedicated route files for users, transactions, assets, items, quests, and other game entities, and integrating them into the server.
2026-02-08 18:57:42 +01:00
syntaxbullet
073348fa55
feat: implement lootdrop management endpoints and fix class api types
2026-02-08 16:56:34 +01:00
syntaxbullet
4232674494
feat: implement user inventory management and class update endpoints
2026-02-08 16:55:04 +01:00
syntaxbullet
fbf1e52c28
test: add deepMerge mock to fix test isolation
...
Add deepMerge to @shared/lib/utils mocks in both test files to ensure
consistent behavior when tests run together.
2026-02-08 16:42:02 +01:00
syntaxbullet
36f9c76fa9
refactor(web): convert server to API-only mode
...
- Remove build process spawning for frontend bundler
- Remove SPA fallback and static file serving
- Return 404 for unknown routes instead of serving index.html
- Keep all REST API endpoints and WebSocket functionality
2026-02-08 16:41:47 +01:00
syntaxbullet
46e95ce7b3
refactor(web): remove frontend dashboard files
...
Delete all React components, pages, hooks, contexts, styles, and build scripts.
The web module now serves as an API-only server.
2026-02-08 16:41:40 +01:00
syntaxbullet
5e8683a19f
feat: Implement structured lootbox results with image support and display referenced items in shop listings.
2026-02-08 16:07:13 +01:00
syntaxbullet
ee088ad84b
feat: Increase maximum image upload size from 2MB to 15MB.
2026-02-06 13:48:43 +01:00
syntaxbullet
b18b5fab62
feat: Allow direct icon upload when updating an item in the item form.
2026-02-06 13:37:19 +01:00
syntaxbullet
1929f0dd1f
refactor: Abbreviate item rarity values from full names to single-letter codes across the application.
2026-02-06 13:00:41 +01:00
syntaxbullet
1ffe397fbb
feat: Add image cropping functionality with a new component, dialog, and canvas utilities.
2026-02-06 12:45:09 +01:00
syntaxbullet
34958aa220
feat: implement comprehensive item management system with admin UI, API, and asset handling utilities.
2026-02-06 12:19:14 +01:00
syntaxbullet
c2d67d7435
fix: Explicitly bind web server to 127.0.0.1 in tests and prevent the development build process from running in the test environment.
2026-01-31 14:30:44 +01:00
syntaxbullet
e252d6e00a
fix: Install web subdirectory dependencies, set NODE_ENV for tests, and standardize hostname in server tests.
2026-01-30 16:46:16 +01:00
syntaxbullet
d7543d9f48
feat: (web) add item route
2026-01-17 13:11:50 +01:00
syntaxbullet
3c1334b30e
fix: update sub-navigation item colors for active, hover, and default states
2026-01-16 16:27:23 +01:00
syntaxbullet
58f261562a
feat: Implement an admin quest management table, enhance toast notifications with descriptions, and add new agent documentation.
2026-01-16 15:58:48 +01:00
syntaxbullet
4ecbffd617
refactor: replace hardcoded SVGs with lucide-react icons in quest-table
2026-01-16 15:27:15 +01:00
syntaxbullet
5491551544
fix: (web) prevent flickering during refresh
...
- Track isInitialLoading separately from isRefreshing
- Only show skeleton on initial page load (when quests is empty)
- During refresh, keep existing content visible
- Spinning refresh icon indicates refresh in progress without clearing table
2026-01-16 15:22:28 +01:00
syntaxbullet
7d658bbef9
fix: (web) fix refresh icon spinning indefinitely
...
- Remove redundant isRefreshing state
- Icon spin is controlled by isLoading prop from parent
- Parent correctly manages loading state during fetch
2026-01-16 15:20:36 +01:00
syntaxbullet
d117bcb697
fix: (web) restore quest table loading logic
...
- Simplify component by removing complex state management
- Show skeleton only during initial load, content otherwise
- Keep refresh icon spin during manual refresh
2026-01-16 15:18:51 +01:00
syntaxbullet
94e332ba57
fix: (web) improve quest table refresh UX
...
- Keep card visible during refresh to prevent flicker
- Add smooth animations when content loads
- Spin refresh icon independently from skeleton
- Show skeleton in place without replacing entire card
2026-01-16 15:16:48 +01:00
syntaxbullet
3ef9773990
feat: (web) add quest table component for admin quests page
...
- Add getAllQuests() method to quest.service.ts
- Add GET /api/quests endpoint to server.ts
- Create QuestTable component with data display, formatting, and states
- Update AdminQuests.tsx to fetch and display quests above the form
- Add onSuccess callback to QuestForm for refresh handling
2026-01-16 15:12:41 +01:00
syntaxbullet
f2caa1a3ee
chore: replace tw-gradient classes with canonical shortened -linear classnames
2026-01-16 12:59:32 +01:00
syntaxbullet
2a72beb0ef
feat: Implement new settings pages and refactor application layout and navigation with new components and hooks.
2026-01-16 12:49:17 +01:00
syntaxbullet
2f73f38877
feat: Add web admin page for quest management and refactor Discord bot's quest UI to use new components.
2026-01-15 17:21:49 +01:00
syntaxbullet
c7730b9355
refactor: migrate web server to centralized logger
2026-01-14 17:58:28 +01:00
syntaxbullet
35bd1f58dd
feat: trivia command!
2026-01-11 14:37:17 +01:00
syntaxbullet
0d923491b5
feat: (ui) settings drawers
2026-01-09 19:28:14 +01:00
syntaxbullet
d870ef69d5
feat: (ui) leaderboards
2026-01-09 16:45:36 +01:00
syntaxbullet
682e9d208e
feat: more stat components
2026-01-09 16:18:52 +01:00
syntaxbullet
4a691ac71d
feat: (ui) first dynamic data
2026-01-09 15:22:13 +01:00
syntaxbullet
1b84dbd36d
feat: (ui) new design
2026-01-09 15:12:35 +01:00
syntaxbullet
a5b8d922e3
feat(web): implement full activity page with charts and logs
2026-01-08 23:20:00 +01:00
syntaxbullet
238d9a8803
refactor(web): enhance ui visual polish and ux
...
- Replace native selects with Shadcn UI Select in Settings
- Increase ActivityChart height for better visibility
- specific Economy Overview card height to fill column
- Add hover/active scale animations to sidebar items
2026-01-08 23:10:14 +01:00
syntaxbullet
713ea07040
feat(ui): use shadcn switch for toggles and remove sidebar user footer
2026-01-08 23:00:44 +01:00
syntaxbullet
bea6c33024
feat(settings): group commands by category in system tab
2026-01-08 22:55:40 +01:00
syntaxbullet
8fe300c8a2
feat(web): add toast notifications for settings save status
2026-01-08 22:47:31 +01:00
syntaxbullet
9caa95a0d8
feat(settings): support toggling disabled commands and auto-reload bot on save
2026-01-08 22:44:48 +01:00
syntaxbullet
c6fd23b5fa
feat(dashboard): implement bot settings page with partial updates and serialization fixes
2026-01-08 22:35:46 +01:00
syntaxbullet
d46434de18
feat(dashboard): expand stats & remove admin token auth
2026-01-08 22:14:13 +01:00
syntaxbullet
cf4c28e1df
fix : 404 error fix
2026-01-08 21:45:53 +01:00
syntaxbullet
39e405afde
chore: polish analytics API logging and typing
2026-01-08 21:39:53 +01:00
syntaxbullet
6763e3c543
fix: address code review findings for analytics and security
2026-01-08 21:39:01 +01:00
syntaxbullet
11e07a0068
feat: implement visual analytics and activity charts
2026-01-08 21:36:19 +01:00