asepharyana
ef7708bf7d
feat(gmw): route all LLM traffic through 9router
...
GMW moves off omniroute (100.121.180.82:20128) and off the direct NVIDIA
vision endpoint onto 9router, which runs on the same host as both services
(127.0.0.1:4014) — loopback avoids the TLS/proxy hop and localhost calls
bypass 9router's remote-key guard.
- gateway + backend: AI_LLM_BASE_URL default -> http://127.0.0.1:4014/v1
- drop stale 'omniroute' router references from comments/docs now that the
active router is 9router (llmClient, llmCaller, ARCHITECTURE, AGENTS)
Verified against 9router before wiring: model 'text' -> gemini-3.5-flash-lite
(SSE, as the pipeline expects), 'multimodal' -> nemotron-3-nano-omni answers
image input, and gemini/gemini-embedding-001 returns 3072 dims — matching the
existing Qdrant collections (no reindex needed). The GMW key is already
registered in 9router's apiKeys table.
typecheck + lint + tests green (gateway 138, backend 37 excluding e2e).
2026-09-24 16:05:36 +07:00
asepharyana
f9fecfc144
chore: clean up dead barrels, duplicate config, and orphaned frontend components
...
Gateway:
- Remove dead barrels (ai-moderation/index, attachment-upload/index, message-capture/index) — all consumers import files directly
- Remove orphaned schema/ split dir (analytics/cache/messages/meta) — schema.ts is monolithic
- Merge duplicate config singleton: delete shared/config/config.ts, point all 44 imports at shared/config/index
Backend:
- Remove dead commandHelper.ts (voice-era fallback), ws/index.ts barrel, health.schema.ts, moderationMetrics.ts, analysis.schema.ts (0 importers; metrics/handlers route directly)
Frontend:
- Remove orphaned CategoryDrilldown/CoverageTiles/TopicTrends, primitives/slot, use-mobile, use-mounted
- Remove unused charts donut/sparkline (TopicTrends was only consumer)
Kept (verified active): shared/database/index.ts facade (11 importers), hooks/index + lib/api/index barrels (10 importers), orpc/ws.ts, charts/index.ts barrel.
Verified: tsc + biome + vitest per service (backend e2e 3 failures pre-existing on main); frontend next build 8 routes.
2026-09-24 13:23:38 +07:00
asepharyana
401155b501
fix: auto-fix code quality [skip ci]
2026-09-23 22:11:00 +07:00
dependabot[bot]
771783d991
build(deps-dev): bump tsx in /services/backend in the development group
...
Bumps the development group in /services/backend with 1 update: [tsx](https://github.com/privatenumber/tsx ).
Updates `tsx` from 4.23.13 to 4.23.15
- [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.13...v4.23.15 )
---
updated-dependencies:
- dependency-name: tsx
dependency-version: 4.23.15
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: development
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-23 22:11:00 +07:00
asepharyana
a13884d80f
docs: remove voice/recording/media references from AGENTS/ARCHITECTURE/README
2026-09-23 21:25:03 +07:00
asepharyana
2c69c51fba
chore: drop pnpm-install-generated junk pnpm-workspace.yaml (backend)
2026-09-23 19:45:25 +07:00
asepharyana
ce784f8305
refactor: remove voice/recording/media features from frontend + prune lockfiles
...
- Delete pages: (dashboard)/{recordings,voice,media}/ incl. view.tsx
- Delete components/{voice,media}, hooks/{use-voice,use-recordings,use-media},
lib/audio/ (mic-transmit, pcm-player, wav), api/{voice,recordings,media},
types/{voice,recording,media}, lib/hash.ts
- Cut nav tiles (Active Voice Stages, Voice Recording Archive) from dashboard,
MiniPlayer from ambient-app, hooks/types barrel exports, WS voice/media events
- Re-home guilds + textChannels to messages oRPC router (DB-derived) so the
messages page picker keeps working; guild-picker simplified to text-only
- Clean Channel/AppConfig types of voice remnants
- Delete infra/docker/recordings/ + 11 voice/recording/video spec docs
- pnpm install: prune direct voice deps from gateway + backend lockfiles
(prism-media/opusscript remain only as transitive discord.js deps)
2026-09-23 19:45:14 +07:00
asepharyana
33013697e0
refactor: remove voice, recording, and music/media features (gateway + backend)
...
- Gateway: delete voice-recording/, voice-pcm-ws/, voice/video/media handlers,
vendor/discord-voice-fork/, voice DB repos, 2 voice migrations
- Gateway: cut voice wiring from bootstrap/shutdown/commandHandler/handler-registry,
eventBroadcaster/eventTypes, redis-channels, moderation-types, message-capture,
config keys, and deps (@discordjs/voice, opus, libsodium, prism-media, davey)
- Backend: delete voice/, recordings/, media/ modules + @discordjs/voice dep
- Backend: cut voice/media/recordings oRPC routers, WS gateway-PCM auth + voice
handlers, Redis bridge voice aggregation, redis-channels voice/media constants,
config keys, moderation-types voice items, e2e voice/recordings suites
- Keep voice DB tables (destructive migration avoided); chatbot voiceRecordings
tool + dashboard count remain as read-only historical data access
2026-09-23 19:31:06 +07:00
mytheclipsebotreview[bot]
c2d6e37ac4
Auto-merge PR #76
...
build(deps): bump the production group in /services/backend with 2 updates
2026-09-22 15:10:44 +00:00
dependabot[bot]
e6cb514c3a
build(deps-dev): bump @types/node
...
Bumps the development group in /services/backend with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ).
Updates `@types/node` from 26.6.1 to 26.6.2
- [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.6.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: development
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-22 14:25:37 +00:00
dependabot[bot]
bbf40774ef
build(deps): bump the production group
...
Bumps the production group in /services/backend with 2 updates: [@orpc/server](https://github.com/middleapi/orpc/tree/HEAD/packages/server ) and [dotenv](https://github.com/motdotla/dotenv ).
Updates `@orpc/server` from 1.15.1 to 1.15.2
- [Release notes](https://github.com/middleapi/orpc/releases )
- [Commits](https://github.com/middleapi/orpc/commits/v1.15.2/packages/server )
Updates `dotenv` from 18.0.0 to 18.0.1
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md )
- [Commits](https://github.com/motdotla/dotenv/compare/v18.0.0...v18.0.1 )
---
updated-dependencies:
- dependency-name: "@orpc/server"
dependency-version: 1.15.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: production
- dependency-name: dotenv
dependency-version: 18.0.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-22 14:25:17 +00:00
dependabot[bot]
2ccb5c07ce
build(deps-dev): bump the development group across 1 directory with 2 updates
...
Bumps the development group with 2 updates in the /services/backend directory: [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome ) and [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ).
Updates `@biomejs/biome` from 2.5.13 to 2.5.14
- [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.14/packages/@biomejs/biome )
Updates `@types/node` from 26.5.1 to 26.6.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
---
updated-dependencies:
- dependency-name: "@biomejs/biome"
dependency-version: 2.5.14
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: development
- dependency-name: "@types/node"
dependency-version: 26.6.1
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: development
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-21 14:50:59 +00:00
dependabot[bot]
47d49e3395
build(deps): bump dotenv from 17.4.2 to 18.0.0 in /services/backend
...
Bumps [dotenv](https://github.com/motdotla/dotenv ) from 17.4.2 to 18.0.0.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md )
- [Commits](https://github.com/motdotla/dotenv/compare/v17.4.2...v18.0.0 )
---
updated-dependencies:
- dependency-name: dotenv
dependency-version: 18.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-21 14:26:39 +00:00
mytheclipsebotreview[bot]
ae3b22df93
Auto-merge PR #68
...
build(deps-dev): bump vitest from 5.0.0 to 5.0.1 in /services/backend in the development group
2026-09-18 17:21:44 +00:00
dependabot[bot]
c18b2c42c2
build(deps-dev): bump vitest
...
Bumps the development group in /services/backend with 1 update: [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest ).
Updates `vitest` from 5.0.0 to 5.0.1
- [Release notes](https://github.com/vitest-dev/vitest/releases )
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md )
- [Commits](https://github.com/vitest-dev/vitest/commits/v5.0.1/packages/vitest )
---
updated-dependencies:
- dependency-name: vitest
dependency-version: 5.0.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: development
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-18 14:25:34 +00:00
dependabot[bot]
bfed04f449
build(deps): bump @orpc/server
...
Bumps the production group in /services/backend with 1 update: [@orpc/server](https://github.com/middleapi/orpc/tree/HEAD/packages/server ).
Updates `@orpc/server` from 1.15.0 to 1.15.1
- [Release notes](https://github.com/middleapi/orpc/releases )
- [Commits](https://github.com/middleapi/orpc/commits/v1.15.1/packages/server )
---
updated-dependencies:
- dependency-name: "@orpc/server"
dependency-version: 1.15.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-18 14:25:14 +00:00
dependabot[bot]
13d140f82a
build(deps): bump zod in /services/backend in the production group
...
Bumps the production group in /services/backend with 1 update: [zod](https://github.com/colinhacks/zod ).
Updates `zod` from 4.6.4 to 4.6.5
- [Release notes](https://github.com/colinhacks/zod/releases )
- [Commits](https://github.com/colinhacks/zod/compare/v4.6.4...v4.6.5 )
---
updated-dependencies:
- dependency-name: zod
dependency-version: 4.6.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-17 14:24:50 +00:00
dependabot[bot]
517441546d
build(deps): bump zod in /services/backend in the production group
...
Bumps the production group in /services/backend with 1 update: [zod](https://github.com/colinhacks/zod ).
Updates `zod` from 4.6.2 to 4.6.4
- [Release notes](https://github.com/colinhacks/zod/releases )
- [Commits](https://github.com/colinhacks/zod/compare/v4.6.2...v4.6.4 )
---
updated-dependencies:
- dependency-name: zod
dependency-version: 4.6.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-16 14:24:53 +00:00
dependabot[bot]
b76ae57cf6
build(deps-dev): bump the development group across 1 directory with 2 updates
...
Bumps the development group with 2 updates in the /services/backend directory: [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome ) and [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ).
Updates `@biomejs/biome` from 2.5.12 to 2.5.13
- [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.13/packages/@biomejs/biome )
Updates `@types/node` from 26.5.0 to 26.5.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
---
updated-dependencies:
- dependency-name: "@biomejs/biome"
dependency-version: 2.5.13
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: development
- dependency-name: "@types/node"
dependency-version: 26.5.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: development
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-14 14:52:13 +00:00
dependabot[bot]
a74a9ceb2e
build(deps): bump zod in /services/backend in the production group
...
Bumps the production group in /services/backend with 1 update: [zod](https://github.com/colinhacks/zod ).
Updates `zod` from 4.5.4 to 4.6.2
- [Release notes](https://github.com/colinhacks/zod/releases )
- [Commits](https://github.com/colinhacks/zod/compare/v4.5.4...v4.6.2 )
---
updated-dependencies:
- dependency-name: zod
dependency-version: 4.6.2
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-14 14:26:16 +00:00
asepharyana
43f2f8449d
feat(docs): Add comprehensive agent guides and templates for spec-driven development
2026-09-11 18:56:28 +07:00
dependabot[bot]
250f043e4a
build(deps-dev): bump @types/node
...
Bumps the development group in /services/backend with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ).
Updates `@types/node` from 26.4.1 to 26.5.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.5.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: development
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-10 14:25:20 +00:00
mytheclipsebotreview
fbee943eba
fix: auto-fix code quality [skip ci]
2026-09-08 16:08:29 +07:00
dependabot[bot]
68f6fdef57
build(deps-dev): bump the development group
...
Bumps the development group in /services/backend with 3 updates: [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome ), [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest ).
Updates `@biomejs/biome` from 2.5.11 to 2.5.12
- [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.12/packages/@biomejs/biome )
Updates `@types/node` from 26.4.0 to 26.4.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `vitest` from 4.1.11 to 5.0.0
- [Release notes](https://github.com/vitest-dev/vitest/releases )
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md )
- [Commits](https://github.com/vitest-dev/vitest/commits/v5.0.0/packages/vitest )
---
updated-dependencies:
- dependency-name: "@biomejs/biome"
dependency-version: 2.5.12
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: development
- dependency-name: "@types/node"
dependency-version: 26.4.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: development
- dependency-name: vitest
dependency-version: 5.0.0
dependency-type: direct:development
update-type: version-update:semver-major
dependency-group: development
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-07 14:28:37 +00:00
asepharyana
276062fdd4
feat(ai): scope persistence, parallel tools, Prometheus token/cache counters
...
C2 full scope persistence:
- getRecentConversationContext now returns per-turn guildId/channelId
- processMessage merges historical scope when current request is unscoped
- chatbot remembers server context across all 8 history exchanges (not just 3)
A4+Metrics:
- Add incrementCounterBy(name, delta, labels) to gateway-metrics
- Token-usage counters: llm_tokens_total{model, type, label} per batch
- Cache hit counters: moderation_cache_hits{type} exact/semantic-qdrant/semantic-pg
- Cache miss counters: moderation_cache_misses per batch
- Prometheus /metrics now exposes cost + cache hit-rate for dashboards
Performance:
- Parallel tool execution within each chatbot round (Promise.all)
- All tool results collected before sending to model (ordering preserved)
- Tool failure now logged with structured warning (chatbot.tools.ts)
Verified: backend tsc+biome 37/37, discord-gateway tsc+biome 210/210
2026-09-04 15:32:03 +07:00
asepharyana
9682abef82
fix(chatbot): proper system role, tool catalog prompt, more rounds/history, tool failure observability
...
- Send system prompt as role:system instead of merging into the user message
(models treat system messages as authoritative -> better tool selection)
- Add full 14-tool catalog + multi-hop instruction to the system prompt
- Raise MAX_TOOL_ROUNDS 4->6 so multi-hop queries complete
- Raise conversation history 3->8 exchanges (less repeat questioning)
- Append guild/channel scope hint to each user turn
- Add saturating toolErrors counter + structured warn log per tool failure
so chatbot tool failures are observable instead of silently absorbed
2026-09-04 13:36:51 +07:00
mytheclipsebotreview
3bf172b692
Merge remote-tracking branch 'origin/main' into dependabot/npm_and_yarn/services/backend/production-7257b05964
2026-09-02 21:35:28 +07:00
dependabot[bot]
43e48c1f26
build(deps-dev): bump tsx in /services/backend in the development group
...
Bumps the development group in /services/backend with 1 update: [tsx](https://github.com/privatenumber/tsx ).
Updates `tsx` from 4.23.12 to 4.23.13
- [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.12...v4.23.13 )
---
updated-dependencies:
- dependency-name: tsx
dependency-version: 4.23.13
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: development
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-02 14:26:04 +00:00
dependabot[bot]
2f02196864
build(deps): bump zod in /services/backend in the production group
...
Bumps the production group in /services/backend with 1 update: [zod](https://github.com/colinhacks/zod ).
Updates `zod` from 4.5.2 to 4.5.4
- [Release notes](https://github.com/colinhacks/zod/releases )
- [Commits](https://github.com/colinhacks/zod/compare/v4.5.2...v4.5.4 )
---
updated-dependencies:
- dependency-name: zod
dependency-version: 4.5.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-02 14:25:50 +00:00
asepharyana
43594af3c8
fix: CI biome errors + enhanced GUILD_CREATE/READY voice_states diagnostic
...
- live-speaker.ts: unused var [id] in clearAllSpeakers → [_]
- migrate.ts: useTemplate string concat → template literal
- streamWatchReceiver: remove unused watchKey param from closeCurrentSegment
- videoRecorder: log all raw WS event types + READY sessions.voice + broadcaster_user_ids
2026-09-02 02:31:32 +07:00
asepharyana
7e50c000dc
fix(backend): remove dead user_reputations schema (table + type aliases)
...
Follow-up to d0453881 : the pgUserReputationsTable definition and the
UserReputation/UserReputationInsert type aliases were the only remaining
references to the removed user reputation feature. Nothing imports them
(verified via grep across src/ + tests/), so they're pure dead code that
could mislead future devs into re-joining a dropped table. Railed out to
close the 42P01 failure class completely.
2026-09-02 00:17:54 +07:00
asepharyana
d0453881b8
fix(users): drop dead user_reputations JOIN that broke Members page + audit
...
Root cause: gateway migration 0016 removed the per-user reputation feature
(DROP TABLE user_reputations), but the backend still LEFT JOINed
pgUserReputationsTable in dashboard listUsers/getUserDetail and the chatbot
get_user_reputation tool. Against the live DB these queries raised 42P01
(undefined_table) -> the new /users page could never load (oRPC WS error).
Fix:
- dashboard.repository.ts: remove reputation columns/join from listUsers and
getUserDetail (data sourced only from messages + user_profiles).
- chatbot.tools.ts: get_user_reputation now returns honest 'unavailable'
(feature removed) instead of querying the dropped table.
- chatbot.toolDefs.ts: update tool description so the LLM doesn't advertise
a dead feature.
- frontend types/users view: drop trust_score/clean_message_streak/
total_infractions/last_infraction_at; derive risk label from real flagged%
and add warn_count to the inspector (real available data).
Verified: backend+frontend tsc clean, biome clean, 37 unit tests pass,
query tested against live DB (returns real members), build green.
2026-09-02 00:12:52 +07:00
asepharyana
30d640ca5b
feat(fe): add Member Intelligence (/users) page wired to full reputation data
...
- New /users route: member roster (trust score, clean/flagged counts, message volume)
+ inspector detail (trust breakdown, clean streak, infractions, AI profile,
recent messages) with live search
- Backend dashboard.listUsers/getUserDetail now JOIN user_reputations to expose
trust_score, clean_message_streak, total_infractions, last_infraction_at +
warn_count/clean_count breakdowns
- Frontend types updated to match; useUsers refactored to PaginatedUsers shape,
added useUserSearch for the old search behavior
- Nav rail + mobile nav: add Users entry
2026-09-02 00:01:12 +07:00
dependabot[bot]
49d27a8a1c
build(deps): bump zod in /services/backend in the production group
...
Bumps the production group in /services/backend with 1 update: [zod](https://github.com/colinhacks/zod ).
Updates `zod` from 4.4.3 to 4.5.2
- [Release notes](https://github.com/colinhacks/zod/releases )
- [Commits](https://github.com/colinhacks/zod/compare/v4.4.3...v4.5.2 )
---
updated-dependencies:
- dependency-name: zod
dependency-version: 4.5.2
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-01 14:33:26 +00:00
asepharyana
fa72fe03cd
feat(archive): show real channel/thread names in semantic search UI
...
Gateway archive embedder now parses metadata.channel.{channelName,threadName}
from each message and stores channel_name/thread_name in the Qdrant payload.
Backend exposes them; the semantic results card renders the thread name (or
channel name) instead of a raw #snowflake, with the ID as a last-resort
fallback for legacy points. Matches the message feed's channel-label logic
(getMessageChannelLabel).
2026-09-01 19:27:56 +07:00
asepharyana
26a690943d
feat(archive): rich metadata in semantic search — username/channel/guild context + guild filter
...
Archive payload now stores username, channel_id, guild_id, thread_id and the
real message created_at (not embed time). Backend searchArray accepts an
optional guildId and applies a Qdrant payload filter so results can be scoped
to the guild being viewed. API/frontend expose the new fields and the
semantic results card shows who said it, in which channel, and when —
turning bare text blobs into contextual results. Old points fall back to
analyzed_at and omit the new fields gracefully.
2026-09-01 18:56:14 +07:00
asepharyana
7ef86c81ca
feat(ai): audit + harden embedding pipeline
...
- Normalize text before embedding (strip mentions/URLs/emoji/markdown/control chars, lowercase, truncate) on both write and query sides so vectors aren't diluted and tokens aren't wasted
- embeddingClient: retry embeddings (maxRetries 2), validate batch dimension consistency, preserve index alignment for empty-normalized texts
- archiveEmbedder: store normalized text in archive payload, skip empty-normalized content
- backend: normalize search queries, make archive search similarity threshold configurable (AI_LLM_EMBEDDING_ARCHIVE_MIN_SIMILARITY, default 0.6)
2026-09-01 18:01:47 +07:00
asepharyana
12cc956329
feat(gateway): implement separate Piscina pools for text and media analysis to optimize processing
2026-08-31 22:59:27 +07:00
mytheclipsebotreview
62fe25e5c1
Merge remote-tracking branch 'origin/main' into dependabot/npm_and_yarn/services/backend/development-f6fa283631
2026-08-31 21:36:38 +07:00
dependabot[bot]
04ab117044
build(deps-dev): bump the development group
...
Bumps the development group in /services/backend with 2 updates: [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome ) and [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ).
Updates `@biomejs/biome` from 2.5.10 to 2.5.11
- [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.11/packages/@biomejs/biome )
Updates `@types/node` from 26.3.0 to 26.4.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
---
updated-dependencies:
- dependency-name: "@biomejs/biome"
dependency-version: 2.5.11
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: development
- dependency-name: "@types/node"
dependency-version: 26.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: development
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-31 14:29:15 +00:00
dependabot[bot]
2ae3c06c4a
build(deps): bump axios in /services/backend in the production group
...
Bumps the production group in /services/backend with 1 update: [axios](https://github.com/axios/axios ).
Updates `axios` from 1.19.0 to 1.20.0
- [Release notes](https://github.com/axios/axios/releases )
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md )
- [Commits](https://github.com/axios/axios/compare/v1.19.0...v1.20.0 )
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.20.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-31 14:28:43 +00:00
asepharyana
22c09ecd28
feat(backend): recordings — expose transcription, keyword search, date range, speaker summary
...
- getRecent now returns transcription; new filters q (ILIKE on transcription
+ username) and startDate/endDate (created_at range, epoch ms)
- new recordings.summary: per-speaker leaderboard (clips, est_duration_s from
128kbps bytes, transcribed words, last activity)
- oRPC list input + summary procedure wired
2026-08-30 13:31:39 +07:00
dependabot[bot]
8bd7f5a98f
build(deps-dev): bump @types/node
...
Bumps the development group in /services/backend with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ).
Updates `@types/node` from 26.2.0 to 26.3.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.3.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: development
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-28 14:25:12 +00:00
asepharyana
ffbe9959ab
chore: migrate AI LLM router from 9router to omniroute
...
Switch GMW's AI LLM base URL from 9router (https://9router.asepharyana.my.id/v1 )
to omniroute on imrnes (http://100.121.180.82:20128/api/v1 ).
- Update default AI_LLM_BASE_URL in discord-gateway + backend config schemas
- Update .env.example documentation
- Update all 9router references in comments/docs/tests to omniroute
- Production BWS secret gmw_ai_llm_base_url already updated
Omniroute uses /api/v1 prefix (not /v1 like 9router), so the base URL
now correctly points at the right API path for the OpenAI SDK.
2026-08-28 20:18:48 +07:00
asepharyana
5196cb0221
fix: edit history 'after' showed original content, not edited content
...
getRecentEdits SELECT ... m.content AS new_content returned the message's
ORIGINAL content (never updated on edit) instead of the post-edit content.
messages.content stores the original body; the current/last-edited body lives
in messages.edited_content. So before===after in the Message Edits diff.
Fix: COALESCE(m.edited_content, m.content) AS new_content so 'After' shows the
edited text and diffs against the captured before-content are meaningful.
2026-08-27 17:28:24 +07:00
asepharyana
8049b70738
fix: render server nick per user in messages tab and analysis
...
Extract server_nick from metadata.member.displayName in backend messageMapper,
add server_nick to frontend MessageRecord type, and update messages view +
analysis view to display the member's server-specific nickname (with @username
as secondary context) instead of the global username.
2026-08-27 14:38:05 +07:00
asepharyana
ea23c405fa
fix: capture server nickname (member displayName) per action
...
Rename server_name (guild name) to server_nick and populate it from
the member's server-specific display name (metadata.member.displayName)
at write time. This is what the moderation dashboard should show as
TARGET — e.g. server nick 'Bandar Togel「✔ ᵛᵉʳᶦᶠᶦᵉᵈ 」' for global
username '.nichiyobi'. Backfilled 210 existing actions from messages
metadata (reset_nickname rows now show 'Sarjana .jav', 'Penindas
Minoritas', etc). Frontend TARGET shows server nick with global
username as secondary context.
2026-08-27 13:50:37 +07:00
asepharyana
0de393625f
fix: add server_name to moderation_actions for full context retention
...
Denormalize guild name alongside username so the moderation dashboard
shows both TARGET and server even after message table purges.
Migration 0018. Frontend displays 'username · server_name' in TARGET.
2026-08-27 12:32:12 +07:00
asepharyana
cccfd89266
fix: store username on moderation_actions for retention safety
...
Add denormalized column to moderation_actions so the
dashboard TARGET field survives message table purges. Backfills all
existing 217 rows. Changes: schema + autoDeleteManager + backend
repository query + migration 0017.
2026-08-27 12:15:06 +07:00
asepharyana
17aad2cc39
chore: biome lint cleanup — formatting, unused imports, exhaustive-deps fixes
...
- Backend: fix redis-bridge.ts import formatting
- Frontend: fix formatting in messages/view, recordings/view, ambient-canvas, voice-stage
- Frontend: remove unused imports/vars in EditHistory, ambient-canvas
- Frontend: fix import sorting in LiveModerationFeed
- Frontend: suppress caller-controlled exhaustive-deps in use-gsap-animation
- All services: lint clean, typecheck pass, build pass
- Backend e2e tests excluded (require live server, expected 404s)
2026-08-27 09:39:33 +07:00