asepharyana
9f02edd646
perf+fix(ai-moderation): 11 pipeline optimizations from audit
...
Audit of the full AI analysis flow found 14 issues; 11 fixed, 3 deferred:
Fixed:
1. batchProcessor: skip scheduleAutoDelete for error-status rows (was
causing wasted not_eligible logs for every parse/API failure)
2. textBatchProcessor: domain dedup in URL fetch (max 3 URLs per domain
to avoid rate-limiting from concentrated domains)
3. llmCaller: move parseModerationResponse import to top-level (was
dynamic-imported inside retry loop — unnecessary overhead per retry)
4. llmCaller: make default max_tokens configurable via
AI_LLM_MAX_COMPLETION_TOKENS env (default 16384)
5. moderationOrchestrator: log cache write errors instead of silent
.catch(() => {}) — surface intermittent Redis failures
6. conversationContext: batch token estimation via estimateTokensBatch
(single tiktoken encode call for all target lines, ~5x faster)
7. aiAnalyzer: skip revertStuckProcessingMessages DB query when no
conversations are actively processing (avoids idle-state query)
8. textBatchProcessor: cache corrected few-shot examples per hour
(was re-queried from DB on every batch)
9. textBatchProcessor: preserve partial results on sub-batch timeout
(was throwing and discarding all prior sub-batch results)
10. batchProcessor switch: skip 'completed' messages from individual
fallback queue (prevents redundant re-analysis + double-delete)
11. autoDeleteManager: expand isAlreadyDeletedError to catch Discord
codes 10003/50001 + text fallback matching
Deferred (not regressions, larger refactors):
- #8 batchScheduler debounce race: not actually a race (JS single-threaded)
- #11 initCacheStore: already has idempotency guard
- #13 individual fallback batching: requires worker pool refactor
7 files changed, 73 insertions(+), 32 deletions(-)
2026-08-26 18:08:24 +07:00
asepharyana
5fc3cf86d5
perf(backend): parallelize getMessageById DB queries + drop unused indexes
...
- getMessageById: run findById and getEditHistory in parallel via
Promise.all instead of sequential awaits (halves latency for
message detail view)
- Drop 3 unused indexes on messages table: idx_messages_guild_ai_status_created
(0 scans), idx_messages_guild_ai_status_analyzed (97 scans),
idx_messages_guild_created_deleted (95 scans, superseded by covering index)
— saves ~5.9MB index space + reduces write amplification
- Add covering index idx_messages_guild_created_covering for the primary
findMany query pattern (guild_id + created_at DESC with INCLUDE columns)
2026-08-26 17:48:10 +07:00
asepharyana
e81391484b
feat(messages): enhance message rendering with metadata parsing and inline image support
2026-08-26 17:43:01 +07:00
asepharyana
3b8fe1b1c3
refactor(select): enhance dropdown positioning and implement portal for improved rendering
2026-08-26 17:37:20 +07:00
asepharyana
54e7220d06
fix(auto-delete): prevent double-processing + improve error classification
...
Two bugs causing 23 spurious 'error' logs after successful deletions:
1. batchProcessor switch missing 'completed' case: partitionBatchOutcome
returns 'completed' for successful messages, but the switch only handled
'upload_pending' and 'api_failed'. Successful messages fell through to
default → re-enqueued to individual fallback → re-analyzed → re-delete
attempt → error (message already gone from Discord). Now explicitly
skips 'completed' messages.
2. isAlreadyDeletedError only caught codes 10008/404. Discord also returns
10003 (Unknown Channel) and 50001 (Missing Access) when a message or
channel is gone. Added these codes plus text-based fallback matching
'Unknown Message'/'Unknown Channel'.
Impact: eliminates ~23 redundant error logs per day + stops wasted LLM
calls re-analyzing already-processed messages.
2026-08-26 17:31:37 +07:00
asepharyana
46d889271e
fix(auto-delete): accept 'warn' recommendedAction + delete flagged+medium
...
isEligibleForAutoDelete was rejecting messages where recommendedAction
was 'warn' or 'review' — only 'delete' and 'escalate' were accepted.
This caused 28+ medium-severity flagged messages to be logged as
'not_eligible' instead of being auto-deleted.
Changes:
- deriveRecommendedAction: return 'delete' for flagged+medium severity
(previously only critical/high triggered delete; medium got 'review')
- isEligibleForAutoDelete: accept 'warn' as valid recommendedAction
alongside 'delete' and 'escalate'
Impact: ~28 pending medium-severity flagged messages + all future
'warn'-action flagged messages will now be eligible for auto-deletion.
2026-08-26 17:16:30 +07:00
asepharyana
0c3a82ad77
refactor: update recordings handling with pagination support and improve infinite scroll functionality
2026-08-26 17:05:41 +07:00
asepharyana
b640079cb6
refactor: enhance message streaming and UI components; add SWR provider
2026-08-26 16:51:46 +07:00
asepharyana
37d15456dc
refactor: remove unnecessary PageTransition wrappers from dashboard pages
2026-08-26 15:49:58 +07:00
asepharyana
153e628aba
refactor: update component styles to use theme-aware colors and improve UI consistency
2026-08-26 15:43:43 +07:00
asepharyana
a5f908dc06
refactor: update UI components for consistency and improved styling
...
- Refactored ChannelCultureGlossary, LiveModerationFeed, TermGlossary, and Chatbot components to use new design tokens and styles.
- Updated button, badge, and section components to align with the new design system.
- Enhanced the visual hierarchy and accessibility of various UI elements.
- Improved responsiveness and hover states across components.
- Replaced hardcoded colors with design tokens for better maintainability.
2026-08-26 14:57:08 +07:00
asepharyana
7fc36170c8
chore: update @types/node version to 26.2.0 in package.json and pnpm-lock.yaml
2026-08-26 13:51:54 +07:00
asepharyana
ccfe769b2f
Refactor moderation and recordings views; enhance UI components and improve performance
...
- Cleaned up imports and removed unused hooks in ModerationView and RecordingsView.
- Updated UI elements for better visual consistency and accessibility.
- Improved performance by optimizing rendering logic and reducing unnecessary state updates.
- Added filtering functionality in ChannelCultureGlossary and TermGlossary components.
- Enhanced LiveModerationFeed with GSAP animations for smoother transitions.
- Updated chatbot component for better user experience and responsiveness.
- Refined NavRail component for cleaner code and improved navigation item rendering.
2026-08-26 10:39:00 +07:00
asepharyana
3b688e0d0f
Refactor code structure for improved readability and maintainability
2026-08-26 10:13:40 +07:00
asepharyana
29f59fd91f
feat(frontend): revamp UI to Linear Precision Clean Dark with GSAP micro-interactions
2026-08-26 10:12:42 +07:00
Asep Hariyana
613840e2d1
chore(discord-gateway): update and sync lockfile for bun
2026-08-26 09:51:26 +08:00
asepharyana
24336186dc
feat(frontend): add HUD header and GSAP accordion reveal to glossary route
2026-08-25 23:46:36 +07:00
asepharyana
6b66863897
feat(frontend): add HUD header, count-up gauge, and stagger reveal to analysis route
2026-08-25 23:41:39 +07:00
asepharyana
fc40609a3a
feat(frontend): add tactical HUD header and GSAP stagger deck to recordings route
2026-08-25 23:36:45 +07:00
asepharyana
e157ae3ce4
feat(frontend): add alert-priority HUD header with GSAP pulse to moderation route
2026-08-25 23:32:21 +07:00
asepharyana
3f4c05f5bb
feat(frontend): add tactical HUD header and scan-line reveal to messages feed
2026-08-25 23:28:11 +07:00
asepharyana
9c25e0887c
feat(frontend): add tactical HUD header and GSAP speaking-pulse loop to voice route
2026-08-25 23:23:19 +07:00
asepharyana
2aa12b9ec5
feat(frontend): revamp channels into signal-map roster with GSAP stagger
2026-08-25 23:17:39 +07:00
asepharyana
cab451f0e5
feat(frontend): revamp media frequency deck with GSAP animations and tactical visualizer
2026-08-25 23:05:05 +07:00
asepharyana
183a51003a
feat(frontend): revamp dashboard into tactical HUD and integrate GSAP reactive stages
2026-08-25 22:59:29 +07:00
asepharyana
2c30140ddd
feat(frontend): migrate animations to GSAP and update client socket types for Next 16.3
2026-08-25 22:47:25 +07:00
asepharyana
7e92de63d6
feat(frontend): migrate animations to GSAP and add useGSAP lifecycle hooks
2026-08-25 22:41:41 +07:00
mytheclipsebotreview[bot]
68be4352da
Auto-merge PR #18
...
build(deps-dev): bump tsx from 4.23.1 to 4.23.12 in /services/backend
2026-08-25 14:30:28 +00:00
mytheclipsebotreview[bot]
754ef78ff1
Auto-merge PR #20
...
build(deps-dev): bump tsx from 4.23.1 to 4.23.12 in /services/discord-gateway
2026-08-25 14:30:18 +00:00
dependabot[bot]
cffa72c21f
build(deps-dev): bump tsx in /services/discord-gateway
...
Bumps [tsx](https://github.com/privatenumber/tsx ) from 4.23.1 to 4.23.12.
- [Release notes](https://github.com/privatenumber/tsx/releases )
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs )
- [Commits](https://github.com/privatenumber/tsx/compare/v4.23.1...v4.23.12 )
---
updated-dependencies:
- dependency-name: tsx
dependency-version: 4.23.12
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-25 14:26:03 +00:00
dependabot[bot]
d64c5ba7b6
build(deps-dev): bump @types/three in /services/frontend
...
Bumps [@types/three](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/three ) from 0.180.0 to 0.185.4.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/three )
---
updated-dependencies:
- dependency-name: "@types/three"
dependency-version: 0.185.4
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-25 14:25:57 +00:00
dependabot[bot]
87851f7a71
build(deps-dev): bump tsx from 4.23.1 to 4.23.12 in /services/backend
...
Bumps [tsx](https://github.com/privatenumber/tsx ) from 4.23.1 to 4.23.12.
- [Release notes](https://github.com/privatenumber/tsx/releases )
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs )
- [Commits](https://github.com/privatenumber/tsx/compare/v4.23.1...v4.23.12 )
---
updated-dependencies:
- dependency-name: tsx
dependency-version: 4.23.12
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-25 14:25:55 +00:00
asepharyana
91de43a6c6
fix: switch GMW AI source from omniroute to 9router (model alias revert)
...
- Switch AI_LLM_BASE_URL from omniroute.imrnes.team to 9router.asepharyana.my.id
- Keep AI_LLM_MODEL as 'text' (9router uses alias-based routing, not bare names)
- Update .env.example comments to document 9router
- Per user: multimodal stays 'multimodal' alias
API verified: curl to 9router/v1/chat/completions with model 'text'
returns HTTP 200 (OpenAI-compatible format)
2026-08-25 20:36:24 +07:00
asepharyana
f8fc08de41
fix: switch GMW AI source from omniroute to 9router (model alias revert)
...
- Switch AI_LLM_BASE_URL from omniroute.imrnes.team to 9router.asepharyana.my.id
- Keep AI_LLM_MODEL as 'text' (9router uses alias-based routing, not bare names)
- Update .env.example comments to document 9router
- Per user: multimodal stays 'multimodal' alias
API verified: curl to 9router/v1/chat/completions with model 'text'
returns HTTP 200 (OpenAI-compatible format)
2026-08-25 20:36:08 +07:00
asepharyana
0bd4b4075e
Merge pull request #17 from asepharyana/feat/fe-error-handling-state
...
fix: switch GMW AI source from omniroute to 9router
2026-08-25 20:27:10 +07:00
asepharyana
588e750ede
fix: switch GMW AI source from omniroute to 9router
...
- Change AI_LLM_BASE_URL default from omniroute.imrnes.team to 9router.asepharyana.my.id
- Update AI_LLM_MODEL default from 'text' to 'claude-opus-5' (bare model name
compatible with 9router/OpenAI-compatible router)
- Update .env.example and inline comments to reflect 9router
- discord-gateway config now matches backend (which already uses 9router)
2026-08-25 20:22:40 +07:00
asepharyana
b679a02cb9
Merge pull request #16 from asepharyana/dependabot/npm_and_yarn/services/frontend/typescript-7.0.2
...
build(deps-dev): bump typescript from 5.9.3 to 7.0.2 in /services/frontend
2026-08-25 20:05:31 +07:00
dependabot[bot]
8dbcc2b527
build(deps-dev): bump typescript in /services/frontend
...
Bumps [typescript](https://github.com/microsoft/TypeScript ) from 5.9.3 to 7.0.2.
- [Release notes](https://github.com/microsoft/TypeScript/releases )
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.3...v7.0.2 )
---
updated-dependencies:
- dependency-name: typescript
dependency-version: 7.0.2
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-25 11:32:04 +00:00
dependabot[bot]
bda210475d
build(deps-dev): bump typescript in /services/backend
...
Bumps [typescript](https://github.com/microsoft/TypeScript ) from 5.9.3 to 7.0.2.
- [Release notes](https://github.com/microsoft/TypeScript/releases )
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.3...v7.0.2 )
---
updated-dependencies:
- dependency-name: typescript
dependency-version: 7.0.2
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-25 11:31:51 +00:00
mytheclipsebotreview[bot]
9b78abaf3d
Auto-merge PR #7
...
build(deps): bump the production group across 1 directory with 8 updates
2026-08-25 11:29:54 +00:00
mytheclipsebotreview[bot]
53c4158511
Auto-merge PR #10
...
build(deps-dev): bump @types/node from 20.19.43 to 26.2.0 in /services/frontend
2026-08-25 11:29:43 +00:00
mytheclipsebotreview[bot]
a2a8c824bf
Auto-merge PR #13
...
build(deps-dev): bump @biomejs/biome from 2.2.0 to 2.5.10 in /services/frontend
2026-08-25 11:29:26 +00:00
mytheclipsebotreview[bot]
dec548fa2f
Auto-merge PR #4
...
build(deps-dev): bump @types/node from 25.9.5 to 26.2.0 in /services/backend
2026-08-25 11:29:18 +00:00
dependabot[bot]
d06caa7e58
build(deps): bump the production group across 1 directory with 8 updates
...
Bumps the production group with 8 updates in the /services/discord-gateway directory:
| Package | From | To |
| --- | --- | --- |
| [ioredis](https://github.com/redis/ioredis ) | `5.11.1` | `6.0.0` |
| [openai](https://github.com/openai/openai-node ) | `6.49.0` | `7.5.0` |
| [opusscript](https://github.com/abalabahaha/opusscript ) | `0.0.8` | `0.1.1` |
| [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg ) | `8.22.0` | `8.23.0` |
| [pino](https://github.com/pinojs/pino ) | `9.14.0` | `10.3.1` |
| [piscina](https://github.com/piscinajs/piscina ) | `5.3.0` | `5.3.1` |
| [sharp](https://github.com/lovell/sharp ) | `0.34.5` | `0.35.3` |
| [ws](https://github.com/websockets/ws ) | `8.21.1` | `8.21.3` |
Updates `ioredis` from 5.11.1 to 6.0.0
- [Release notes](https://github.com/redis/ioredis/releases )
- [Changelog](https://github.com/redis/ioredis/blob/main/CHANGELOG.md )
- [Commits](https://github.com/redis/ioredis/compare/v5.11.1...v6.0.0 )
Updates `openai` from 6.49.0 to 7.5.0
- [Release notes](https://github.com/openai/openai-node/releases )
- [Changelog](https://github.com/openai/openai-node/blob/main/CHANGELOG.md )
- [Commits](https://github.com/openai/openai-node/compare/v6.49.0...v7.5.0 )
Updates `opusscript` from 0.0.8 to 0.1.1
- [Release notes](https://github.com/abalabahaha/opusscript/releases )
- [Commits](https://github.com/abalabahaha/opusscript/compare/0.0.8...0.1.1 )
Updates `pg` from 8.22.0 to 8.23.0
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md )
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.23.0/packages/pg )
Updates `pino` from 9.14.0 to 10.3.1
- [Release notes](https://github.com/pinojs/pino/releases )
- [Commits](https://github.com/pinojs/pino/compare/v9.14.0...v10.3.1 )
Updates `piscina` from 5.3.0 to 5.3.1
- [Release notes](https://github.com/piscinajs/piscina/releases )
- [Changelog](https://github.com/piscinajs/piscina/blob/v5.3.1/CHANGELOG.md )
- [Commits](https://github.com/piscinajs/piscina/compare/v5.3.0...v5.3.1 )
Updates `sharp` from 0.34.5 to 0.35.3
- [Release notes](https://github.com/lovell/sharp/releases )
- [Commits](https://github.com/lovell/sharp/compare/v0.34.5...v0.35.3 )
Updates `ws` from 8.21.1 to 8.21.3
- [Release notes](https://github.com/websockets/ws/releases )
- [Commits](https://github.com/websockets/ws/compare/8.21.1...8.21.3 )
---
updated-dependencies:
- dependency-name: ioredis
dependency-version: 6.0.0
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: production
- dependency-name: openai
dependency-version: 7.5.0
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: production
- dependency-name: opusscript
dependency-version: 0.1.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production
- dependency-name: pg
dependency-version: 8.23.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production
- dependency-name: pino
dependency-version: 10.3.1
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: production
- dependency-name: piscina
dependency-version: 5.3.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: production
- dependency-name: sharp
dependency-version: 0.35.3
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production
- dependency-name: ws
dependency-version: 8.21.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-25 11:24:34 +00:00
dependabot[bot]
173ae3c61c
build(deps-dev): bump @types/node in /services/frontend
...
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) from 20.19.43 to 26.2.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 26.2.0
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-25 11:23:30 +00:00
dependabot[bot]
2637bbc549
build(deps-dev): bump @biomejs/biome in /services/frontend
...
Bumps [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome ) from 2.2.0 to 2.5.10.
- [Release notes](https://github.com/biomejs/biome/releases )
- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md )
- [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.5.10/packages/@biomejs/biome )
---
updated-dependencies:
- dependency-name: "@biomejs/biome"
dependency-version: 2.5.10
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-25 11:23:19 +00:00
dependabot[bot]
6fc68126ac
build(deps-dev): bump @types/node in /services/backend
...
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) from 25.9.5 to 26.2.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 26.2.0
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-25 11:23:08 +00:00
dependabot[bot]
28d09a24c9
build(deps-dev): bump typescript in /services/discord-gateway
...
Bumps [typescript](https://github.com/microsoft/TypeScript ) from 5.9.3 to 7.0.2.
- [Release notes](https://github.com/microsoft/TypeScript/releases )
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.3...v7.0.2 )
---
updated-dependencies:
- dependency-name: typescript
dependency-version: 7.0.2
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-25 11:22:50 +00:00
mytheclipsebotreview[bot]
f2ec642a0e
Auto-merge PR #12
...
build(deps-dev): bump puppeteer-core from 25.7.0 to 25.8.0 in /services/frontend
2026-08-25 11:21:41 +00:00
mytheclipsebotreview[bot]
8a491b9ec2
Auto-merge PR #8
...
build(deps): bump the production group in /services/frontend with 7 updates
2026-08-25 11:20:56 +00:00