This website requires JavaScript.
5505983dbd
fix(goLive): retry VIDEO(op12)/SPEAKING(op5) opcodes until ws OPEN — broken shared-screen video
main
asepharyana
2026-08-13 01:44:40 +07:00
3d57e9c102
fix(goLive): retry VIDEO(op12)/SPEAKING(op5) opcodes until ws OPEN — broken shared screen video
asepharyana
2026-08-13 00:23:18 +07:00
d3cb5f6756
refactor: rombak cache AI analisis image — pakai CDN URL langsung, hapus phash+sha
asepharyana
2026-08-12 22:31:08 +07:00
37787cc4f0
fix: prevent false positive moderation on physics/tech discussions
asepharyana
2026-08-12 22:12:11 +07:00
f849a87f2f
fix: remove user history injection to prevent false positive moderation
asepharyana
2026-08-12 20:48:26 +07:00
deb5dedf2c
test(gateway): add regression test untuk makeImageCacheKey collision
asepharyana
2026-08-12 19:34:15 +07:00
3b221823e7
feat(gateway): add observability logging for vision cache hits/misses
asepharyana
2026-08-12 19:22:56 +07:00
9f7ce7dbd5
fix(gateway): hash full image data URL for cache key to prevent collision
asepharyana
2026-08-12 18:28:19 +07:00
bd292fdf3d
feat(gateway): Invidious fallback for YouTube 403 in screen share
asepharyana
2026-08-12 18:19:04 +07:00
7a7f433988
feat(gateway): read YouTube cookies from BWS env (gmw_yt_downloader_cookies) fallback to on-disk file
asepharyana
2026-08-12 17:50:07 +07:00
84c5c36672
feat(gateway): YouTube cookies support for yt-dlp screen share + music
asepharyana
2026-08-12 17:46:05 +07:00
c5898f7cf0
fix(gateway): crash safety on screen-share input timeout + proper error serialization
asepharyana
2026-08-12 16:59:41 +07:00
354e378e74
fix(gateway): output NUT (not raw h264) so Demuxer re-splits video+audio correctly
asepharyana
2026-08-12 16:09:34 +07:00
392bc35a0d
fix(gateway): output raw H264+Opus (not NUT) so Demuxer parses NAL keyframes correctly
asepharyana
2026-08-12 15:37:05 +07:00
196cb1d3af
fix(gateway): await audio stream line before demux resolve — audio RTP was dropped by metadata race
asepharyana
2026-08-12 14:45:06 +07:00
00fc852a32
feat(rtp-capture): add two-peer RTP capture test for H264 frame transmission
asepharyana
2026-08-12 14:26:54 +07:00
d9f5592e6e
feat(glossary): persist resolved definitions in Postgres + harden live SearXNG lookups
asepharyana
2026-08-12 14:22:22 +07:00
f1aa08cdf6
fix(gateway): deliver audio + per-IDR SPS/PPS in GoLive screen share
asepharyana
2026-08-12 14:20:29 +07:00
f70a92880e
feat(glossary): implement term glossary for LLM moderation with caching and extraction logic
asepharyana
2026-08-12 13:44:52 +07:00
88b13225cd
fix(gateway): stream screen-share input from yt-dlp stdout — no more raw-URL 403
asepharyana
2026-08-12 13:08:47 +07:00
67ab289caa
fix(gateway): fail-fast + retry on screen share merge failure (black tile zombie)
asepharyana
2026-08-12 12:17:43 +07:00
ef9e243609
fix(goLive): encode H264 baseline to match SDP profile-level-id (black tile)
asepharyana
2026-08-12 11:37:04 +07:00
42a503c206
fix(goLive): demux access-unit grouping + correct RTP timestamps (black tile)
asepharyana
2026-08-12 11:13:00 +07:00
652974e23a
fix(goLive): gateway crash on screenshare stop — unhandledRejection during teardown
asepharyana
2026-08-12 00:36:53 +07:00
407e003399
fix(goLive): black screen root cause — h264 muxer can't carry audio; disable self_video camera
asepharyana
2026-08-12 00:25:01 +07:00
968a43b0f4
debug(goLive): instrument frame pipeline — demux spawn/stderr/frames, playStream resolve, sendVideoFrame drop/send
asepharyana
2026-08-11 22:31:31 +07:00
91c7a67d2f
fix(goLive): stream demux directly instead of spool-to-file (empty screen share)
asepharyana
2026-08-11 21:43:16 +07:00
8615383829
fix(goLive): STREAM_CREATE handshake — self_video voice state + retry + send instrumentation
asepharyana
2026-08-11 20:45:00 +07:00
10d7ecd405
fix(gateway): EPIPE crash on media stop — stream error handlers + no shutdown on transient stream errors
asepharyana
2026-08-11 20:10:05 +07:00
ff554fcff2
fix(goLive): instrument voice/stream handshake + createStream timeout (12s)
asepharyana
2026-08-11 20:00:33 +07:00
f8b253ba5e
merge: libdatachannel-min GoLive stack (build -86pct, node_modules -1.09GB)
asepharyana
2026-08-11 19:07:57 +07:00
c8473b0610
build(nix): fix binding link path — LDC_LIB is full .so path
feat/libdatachannel-min-spike
asepharyana
2026-08-11 18:54:12 +07:00
3deca91ffe
build(nix): use nixpkgs libdatachannel (no cmake/fetchFromGitHub)
asepharyana
2026-08-11 18:45:51 +07:00
edec2edf82
build(nix): binding — NAPI_INCLUDE from pnpm store (depth 3), gyp env fallback
asepharyana
2026-08-11 18:35:49 +07:00
17013fe1e5
build(nix): gateway binding — gyp env-var paths, correct cwd, tolerant install
asepharyana
2026-08-11 18:32:09 +07:00
3acb03391a
build(nix): gateway flake — build libdatachannel-min binding, drop datachannel/node-av/zeromq
asepharyana
2026-08-11 17:53:47 +07:00
9109d3c898
perf(golive): drop @dank074/discord-video-stream — node_modules 1.5GB → 423MB
asepharyana
2026-08-11 17:49:33 +07:00
9139e225f4
perf(golive): ffmpeg-spawn demuxer (no node-av) + E2E pipeline tests
asepharyana
2026-08-11 17:38:06 +07:00
9ae230d047
perf(golive/spike): binding addTrack + TS port of @dank074 media stack
asepharyana
2026-08-11 16:16:52 +07:00
a1a6d8b418
spike: expose libdatachannel media packetizer chain via Track
asepharyana
2026-08-11 14:57:04 +07:00
4f06c30c05
spike: add addTrack + TrackWrap to libdatachannel-min binding
asepharyana
2026-08-11 14:51:56 +07:00
2203dd5771
spike: minimal N-API libdatachannel binding — WebRTC handshake proven
asepharyana
2026-08-11 14:23:31 +07:00
a53d7b71da
fix(voice): screen share GoLive died instantly — neutralize node-av custom ffmpeg filters
asepharyana
2026-08-11 10:56:49 +07:00
c18431bdbf
fix(ai-moderation): never cache vision outputs that claim 'no image seen'
asepharyana
2026-08-11 09:55:43 +07:00
4f4c43555f
fix(ai-moderation): attachment-upload race dropped images before vision
asepharyana
2026-08-11 09:44:34 +07:00
50371bd2d1
fix(ai-moderation): read delta.reasoning_content in stream aggregation — image vision never returned text
asepharyana
2026-08-11 08:06:28 +07:00
0792ff4dc0
perf(nix): prune devDependencies from shipped node_modules
asepharyana
2026-08-10 22:17:38 +07:00
eb89bb79ed
ci(deploy): fix attic push fallbacks - VPS-hop sudo, direct push retry, ssh URL
asepharyana
2026-08-10 21:18:25 +07:00
7d6c741bb2
ci(deploy): force narinfo write with --ignore-upstream-cache-filter; Traefik readTimeout=0 on imrnes
asepharyana
2026-08-10 20:18:56 +07:00
4cb4904517
ci(deploy): fix attic fast path - public cache, extra-substituters, self-hosted client bootstrap
asepharyana
2026-08-10 18:29:00 +07:00
4ee295bd29
ci(deploy): push to attic directly from runner, skip slow SSH closure copy
asepharyana
2026-08-10 17:28:28 +07:00
65c9c2cd9e
feat(ai-moderation): enrich analysis context with recency, repetition, user history and channel topic
asepharyana
2026-08-10 17:15:33 +07:00
0a5254bf20
feat(ai-moderation): enhance context handling with structured XML blocks and user profiles
asepharyana
2026-08-10 16:46:55 +07:00
4a51f3055c
ci(deploy): push builds to attic binary cache (attic.asepharyana.my.id)
asepharyana
2026-08-10 15:06:08 +07:00
185d81f0e0
feat(ai-moderation): reset offensive nickname instead of deleting message
asepharyana
2026-08-10 11:48:27 +07:00
ecbb538c9f
feat(ai-moderation): use per-server nickname (displayName) in analysis payload
asepharyana
2026-08-10 11:36:37 +07:00
4049ab4201
feat(ai-moderation): rich context + link media vision analysis
asepharyana
2026-08-10 11:26:26 +07:00
5d094829c4
fix(ui): fit select popup to content and wrap long items
asepharyana
2026-08-07 19:29:36 +07:00
abbd78f42b
fix(ui): theme popover/input tokens and open select below trigger
asepharyana
2026-08-07 18:18:14 +07:00
4f9d4a5c7d
refactor: remove unused UI components and replace GlassCard with Card in voice components
asepharyana
2026-08-07 17:33:12 +07:00
2c995b41d7
feat: add new UI components including RadioGroup, Resizable, Sidebar, Spinner, Table, Toast, and ToggleGroup
asepharyana
2026-08-07 16:11:33 +07:00
18dd6a56ba
feat(media): loop mode + high-quality OggOpus music playback
asepharyana
2026-08-07 14:53:37 +07:00
a690e5b63e
refactor(media): remove volume control from FE & BE
asepharyana
2026-08-07 14:27:33 +07:00
62ffb676f9
feat(media): default music volume 30% instead of 100%
asepharyana
2026-08-07 13:41:12 +07:00
4797aca20f
ci(deploy): poll service readiness instead of fixed 3s sleep
asepharyana
2026-08-07 11:22:29 +07:00
42b8afd412
fix(flake): purge dangling pnpm symlinks in standalone tree
asepharyana
2026-08-07 10:57:18 +07:00
7575a701bd
style(backend): biome format — organize imports + spacing (live-speaker/redis-bridge/voice.service)
asepharyana
2026-08-07 10:49:16 +07:00
9f91155944
ci(deploy): build+deploy frontend package (SSR standalone server)
asepharyana
2026-08-07 10:46:02 +07:00
f20889868d
feat(frontend): rebuild as SSR with server-authoritative shared state
asepharyana
2026-08-07 10:44:03 +07:00
aa440eda69
fix(gateway): music/screen playback heads — read yt-dlp headers from stderr, drop no-simulate
asepharyana
2026-08-06 21:26:50 +07:00
f251e69f51
fix(backend): force-exit failsafe so shutdown never hangs
asepharyana
2026-08-05 23:58:30 +07:00
9a2fa999bf
fix(voice): proper shadcn select dropdowns + top reactors leaderboard
asepharyana
2026-08-05 11:29:56 +07:00
f999be4fa0
feat(dashboard): add moderation log page + message edit history
asepharyana
2026-08-05 11:11:10 +07:00
a309570d29
feat(dashboard): expose trust reputation + reactions leaderboard
asepharyana
2026-08-05 10:20:12 +07:00
2f51f94610
fix(moderation): remove manual reanalyze triggers — auto-recovery only
asepharyana
2026-08-04 15:37:56 +07:00
88484f12a9
ci: add Nix GC cleanup job on VPS after deploy
asepharyana
2026-08-04 13:57:44 +07:00
a2542493cd
fix(voice): screen share now carries audio — merge DASH video+audio into single NUT input
asepharyana
2026-08-04 13:28:55 +07:00
f84bf723c5
ci: use free GHA Nix cache (disable FlakeHub cache, not subscribed)
aseph
2026-08-03 16:44:06 +07:00
24db0f19b1
ci: enable FlakeHub Cache (id-token: write + use-flakehub)
asepharyana
2026-08-03 16:20:15 +07:00
ce5db6aa3c
fix(media): normalize activeMode in backend MediaState (FE relies on it)
asepharyana
2026-08-03 10:09:19 +07:00
44a0358b0c
fix(voice): screen share restore is best-effort — Discord session teardown race
asepharyana
2026-08-03 09:33:29 +07:00
d36c8777fe
fix(voice): delay voice restore after screen share — avoid session teardown race
asepharyana
2026-08-03 09:21:10 +07:00
9fd4ded9c8
fix(voice): restore voice after screen share — pass pre-release status to callbacks
asepharyana
2026-08-03 09:07:57 +07:00
55d28dc928
style(voice): biome format media handler + screen controller
asepharyana
2026-08-03 08:49:59 +07:00
02e2243a98
fix(voice): screen share releases audio connection so Streamer owns voice session
asepharyana
2026-08-03 08:41:00 +07:00
8528f2c73d
fix(voice): screen share join timeout — Streamer join hangs with dual voice conn
asepharyana
2026-08-03 08:19:05 +07:00
53f26185bc
fix(voice): screen share crashed gateway — Streamer never joined voice + unhandledRejection
asepharyana
2026-08-03 08:05:02 +07:00
a57eeb2e22
fix(voice): media queue field mismatch, voice joinable filter, connect error toast
asepharyana
2026-08-03 07:48:50 +07:00
9abb09dd33
feat(frontend): add light mode with runtime theme toggle
asepharyana
2026-08-03 07:20:09 +07:00
831254bb71
fix(nix): filter build artifacts from frontend source
asepharyana
2026-08-03 06:53:46 +07:00
9718940258
fix(chatbot): FAB opens chat directly — remove extra toggle + UX polish
asepharyana
2026-08-03 06:44:23 +07:00
d1c1f3e4a7
feat(chatbot): per-user history via X-User-Id + agentic tools calling
asepharyana
2026-08-03 06:24:19 +07:00
7513681b4b
feat(frontend): remove ugly canvas placeholder from chatbot
asepharyana
2026-08-03 06:11:06 +07:00
2b815e156c
feat(frontend): rebuild chatbot UI to match backend — wider panel, guild context, Indonesian
asepharyana
2026-08-03 06:04:25 +07:00
03d59f0738
feat(frontend): lazy-load images, add lightbox viewer, polish AI panel
asepharyana
2026-08-03 05:08:08 +07:00
5cc0f8a243
docs: frontend README dev note
asepharyana
2026-08-02 16:46:22 +07:00
12c55ef486
docs: sync remaining md (AGENTS, ARCHITECTURE, READMEs to 4001/4009, Nix)
asepharyana
2026-08-02 16:42:57 +07:00
38c27eb5bb
chore: ARCHITECTURE.md DB pool example
asepharyana
2026-08-02 16:23:01 +07:00
bd044e95c3
chore: env.test.example and ARCHITECTURE pool 6432
asepharyana
2026-08-02 16:22:48 +07:00
ec64a078bf
chore: fix-missing-tables.sql imrnes IP
asepharyana
2026-08-02 16:22:30 +07:00