안명현
b9d509a9e8
fix(fishing): clear stale sessions for deleted threads
2026-04-09 13:48:33 +09:00
안명현
55fc7b46fc
fix(fishing): avoid stale no-session response on session end
2026-04-09 13:12:24 +09:00
안명현
7022900eff
fix(fishing): use editReply for deferred slash responses
2026-04-09 12:52:29 +09:00
안명현
233615e6d0
Merge branch 'main' into myong_dev
2026-04-09 12:46:45 +09:00
안명현
9f903f676f
chore: remove BOM from fishing-related files
2026-04-09 12:39:07 +09:00
안명현
1432e0d090
fix(commands): re-sync global commands when definitions change
2026-04-09 12:25:04 +09:00
안명현
c80bcffb08
Implement fishing progression features
2026-04-09 12:02:54 +09:00
mineseo-kim
dbadd936ca
feat(logging): wire LOG_DIR through env and align systemd helper
...
- logger uses config/env for LOG_DIR and LOG_LEVEL (single source of truth)
- Document absolute LOG_DIR for wipe/redeploy (Jenkins) in env and .env.example
- setup-kord-user-log-file.sh reads LOG_DIR from KORD_HOME/.env and syncs
StandardOutput/StandardError/ExecStartPre mkdir to the same path
Made-with: Cursor
2026-04-09 10:00:58 +09:00
mineseo-kim
ca9413e665
fix(db): honor DATABASE_URL schema for pg Pool and PrismaPg
...
node-postgres ignores Prisma's ?schema= query param, so connections
defaulted to public. Parse the schema from the URL, set search_path on
the pool, and pass schema to PrismaPg (see prisma/prisma#28611 ).
Made-with: Cursor
2026-04-09 09:45:10 +09:00
mineseo-kim
f317be9eab
fix(logging): clarify LOG_DIR creation and bootstrap errors
...
- Wrap mkdir in ensureLogDir with stderr message on failure.
- Trim LOG_DIR; note in .env.example that the directory is created at startup.
Made-with: Cursor
2026-04-09 09:38:59 +09:00
mineseo-kim
f2ffdb64a8
feat(logging): switch to log4js with file output and env-driven level
...
- Replace console logger with log4js dateFile under LOG_DIR (default logs).
- No console appender; daily rotation with 7-day retention (numBackups).
- Add LOG_LEVEL and LOG_DIR to env and .env.example; document in env.ts.
Made-with: Cursor
2026-04-09 09:34:15 +09:00
mineseo-kim
f5f597d73d
fix(i18n): restore ko locale and remove UTF-8 BOM
...
- Replace mojibake in ko.ts with proper Korean aligned to en.ts.
- Strip UTF-8 BOM from the 9 other text files (docs, commands, services, tests, en.ts).
Made-with: Cursor
2026-04-09 09:23:14 +09:00
mineseo-kim
586f516d4a
Respect DOTENV_CONFIG_PATH for dotenv load path
...
Matches systemd Environment=DOTENV_CONFIG_PATH=/home/psa/.env so keys are not reported as 0 when only ~/.env exists.
Made-with: Cursor
2026-04-09 09:14:57 +09:00
mineseo-kim
1a4652c185
Fix slash command timeouts: defer before locale DB reads
...
- interactionCreate: deferReply(ephemeral) immediately for chat commands, then getInteractionLocale.
- All slash handlers use editReply; remove redundant deferReply in audit/fishing/music.
- localeHelper: parallelize user/guild Prisma lookups for getInteractionLocale and getContextLocale.
Note: deferred replies are ephemeral; public-only responses (e.g. music queue) are now user-visible only.
Made-with: Cursor
2026-04-09 09:09:32 +09:00
mineseo-kim
a2e755b708
Remove Redis and replace with in-memory caches
...
- Drop ioredis, docker-compose redis service, and REDIS_* env vars.
- Remove src/cache; use Map-based invite and webhook caching in services.
- Run global command registration and voice boot sync without distributed locks.
- Update README, agent rules, and docs to match the new stack.
Made-with: Cursor
2026-04-09 08:50:53 +09:00
안명현
9876a331c1
Add fishing rarity rewards and result art
2026-04-01 17:19:23 +09:00
안명현
45d2b22978
Complete fishing minigame phase 1
2026-03-31 18:46:00 +09:00
이정수
ba253a8ad3
Merge branch 'feautre/minigame'
2026-03-31 10:16:01 +09:00
안명현
85f5057fd7
Implement YouTube music playback workflow
2026-03-31 02:12:27 +09:00
안명현
c459dfff02
Merge origin/main into myong_dev
2026-03-30 18:28:02 +09:00
이정수
49a2855f2b
feat: externalize refinement and battle balance configurations to database with runtime caching
2026-03-30 18:00:46 +09:00
이정수
2762801fbd
feat: implement daily battle limits, refine win rate logic, and update weapon sell pricing
2026-03-30 17:54:57 +09:00
이정수
cc26613377
feat: increase max refinement level to 25 and rebalance success rates and PvP rewards
2026-03-30 17:46:05 +09:00
이정수
793bba5a6a
feat: refactor refinement cost logic and update success rates and combat reward formulas
2026-03-30 17:41:20 +09:00
안명현
6eb3826737
Implement event scheduling workflow
2026-03-30 17:37:32 +09:00
이정수
0c7a562b00
feat: update weapon refinement cost formula and add durability and destruction mechanics
2026-03-30 17:30:29 +09:00
이정수
f504024bd5
feat: implement minigame refinement system with weapon upgrading, battle mechanics, and fever activity tracking
2026-03-30 17:24:53 +09:00
이정수
4cc14d8153
refactor: flatten command structures by replacing subcommand groups with action-based string options
2026-03-30 10:27:11 +09:00
이정수
5e41bea74e
feat: Add instance ID and implement Redis lock for global command registration to support multi-instance deployments.
2026-03-27 18:29:46 +09:00
이정수
031a8b3146
refactor: Consolidate voice-related commands into `voice.ts` and audit-related commands into `audit.ts`.
2026-03-27 17:54:55 +09:00
이정수
0ccbbf9d31
feat: Introduce and separate `BOOT` audit log category from `SYSTEM`, defaulting both to disabled.
2026-03-27 17:53:00 +09:00
이정수
90064491d6
refactor: Relocate `config` translation keys and types under the `commands` namespace.
2026-03-27 17:24:03 +09:00
이정수
4246eb90a5
feat: Implement `/config` command for managing bot features, refactor Big Emoji into a dedicated service, and update guild configuration schema with new defaults.
2026-03-27 17:16:15 +09:00
이정수
b81bc6b146
feat: Add an audit log category selection step to the setup wizard, shifting subsequent steps and updating related logic and translations.
2026-03-27 16:56:37 +09:00
이정수
bdd91f6737
feat: Implement a multi-step setup wizard with i18n support and dedicated interaction handlers.
2026-03-27 15:57:50 +09:00
이정수
9f891112d9
feat: Introduce guild-specific configuration for temporary voice channels with a new command, updated service logic, and corresponding database schema changes.
2026-03-27 15:41:27 +09:00
이정수
234a0e96fe
feat: Implement an audit log system with a new `AuditChannel` model, `/audit-channel` command, and `AuditLogService` to log various application events.
2026-03-27 15:30:03 +09:00
이정수
b785a276f8
feat: Implement a permission audit system including a new service, command, i18n strings, and documentation.
2026-03-27 15:14:05 +09:00
이정수
220dd81440
feat: Implement dynamic bot presence with i18n, guild count display, and rotation.
2026-03-27 14:58:41 +09:00
이정수
cb80d9dffe
fix: Enhance temporary voice channel management with improved Discord API error handling for ghost channels and detailed logging.
2026-03-27 14:39:38 +09:00
이정수
b93255a2be
feat: Implement internationalization (i18n) with locale support, localized error messages, and a new language command.
2026-03-27 14:24:59 +09:00
이정수
6851fe2333
feat: implement a structured error handling system with custom error types and a dedicated reporter.
2026-03-27 14:03:12 +09:00
이정수
2eedde7611
feat: Implement voice channel synchronization on startup to prevent ghost channels and refine empty channel detection by excluding bots.
2026-03-27 13:30:58 +09:00
이정수
b5b6405d0c
feat: Refactor voice channel controls to a select menu, enhance `voice-setup` with subcommands, and improve voice channel creation with permission error handling.
2026-03-27 13:23:34 +09:00
이정수
efe6a10762
feat: Implement temporary voice channel ownership transfer with UI, automatic transfer logic, and permission management.
2026-03-27 13:02:16 +09:00
이정수
f5c8bdb85b
feat: Implement dynamic voice channels with new database models, service logic, interaction handling, and supporting documentation.
2026-03-27 10:38:46 +09:00
이정수
da47c4b140
feat: Initialize Discord bot project with core client, event handlers, services, database, caching, and infrastructure.
2026-03-27 09:40:50 +09:00