Changelog

v0.4.37

0.4.30

  • Guardrail G1: classifyTargetEnv + heuristik URL/host (dev-* vs prod)
  • Guardrail G2: unit test per kanal + wire otomasi runner (channel=automation)
  • Guardrail G3: /prod-ops audit [n] + Docs AI gate (jika belum)

0.4.29

  • Guardrail G0: assertChatGuardrail di External, web chat, Live, Codespace, Telegram
  • CRP develop + trigger deploy Optima/Sangga: steward-only (bukan allowlist TTL)
  • Steward baru: [email protected]

0.4.27

Fixes

  • Chat Telegram web → bot: pesan dari /chat-telegram di-mirror ke DM Telegram (sebelumnya hanya DB bersama; balasan agent tidak muncul di bot).

Features

  • Kirim file dari Chat Telegram web: tombol lampiran (PDF/DOCX/XLSX/gambar/teks); file di-upload, diekstrak untuk agent, disimpan ke workspace, dan dikirim ke Telegram.

Tests

  • web-sync.test.ts — format body notifikasi sync web→Telegram.

0.4.25

Features

  • Optima Curated API (STG): CLI optima-curated.mjs + client optima/curated.ts; broker hint agar agent query data Optima lewat curated (capability-gated), bukan SQL mentah.
  • Codespace browse URL: /codespace list/status/new + broker hint menampilkan URL vibe-proxy prototype.
  • Telegram HTML tags: perluas sanitize/parse (blockquote, tg-spoiler, tg-emoji, span) untuk progress live + bubble web.

Tests

  • run-progress.test.ts, code-vibe-browse.test.ts, perluasan format.test.ts.

0.4.24

Fixes

  • Codespace mobile: parent shell pakai flex-col di layar sempit (sebelumnya flex-row — nav dan IDE berjejer, layout berantakan).
  • Strip nav IDE fixed height ~2.75rem di atas; admin links disembunyikan di strip mobile; IDE isi h-full.

0.4.23

Codespace IDE mobile

  • Layout tab Files / Editor / Agent di layar sempit
  • Shell IDE: nav strip ikon + tanpa footer/padding di detail codespace
  • Agent panel full-width di mode mobile

0.4.22

Improvements

  • Sangga Live UX (staging): chatbox lebih lebar & responsive; render markdown via renderChatHtml; mic continuous ala Jarwo (silence submit); TTS browser + tombol henti / auto-stop 45 dtk.

0.4.19

Fixes

  • Chat transcript HTML: parse tag Telegram (b/i/code/a/…) di live thinking + bubble Chat Telegram/Workspace; escape tag asing.
  • Codespace browse URL: /codespace list/status/new menampilkan URL vibe-proxy; broker hint prototype URL.

0.4.18

Features

  • Codespace Web IDE (staging): panel Agent (column2) bisa di-resize drag; preview Markdown show/hide saat edit .md/.mdx.

0.4.17

Features

  • Codespace Web IDE — Fase D (staging): diff pasca-agent (snapshot → daftar file A/M/D + unified diff) dan drag-drop upload ke file tree (maks 5 MB/file).

0.4.16

Features

  • Codespace Web IDE — panel agent (staging): kirim instruksi vibe dari side panel; job masuk antrean yang sama dengan Telegram; poll status di web.

0.4.15

Features

  • Codespace Web IDE (staging): menu /codespaces, file tree, CodeMirror 6, save/autosave, Quick Open, FS jail.

0.4.14

  • ProdOps: steward bootstrap + steward-add; whitelist TTL default 7 hari; gate broker + /prod-ops
  • Shared allowlist DB: /data/vibe-code/.sangga-shared/prod-ops.db (prod & STG)

0.4.12

  • Fase 4a/P0: mode unified — inject Workspace + Codespace bersamaan; /assistant bukan saklar mode lagi

0.4.11

  • Sembunyikan thread Chat Telegram dari history workspace; deep-link ?conv= redirect ke /chat-telegram

0.4.10

  • Chat Telegram: tombol menu perintah bot (daftar BotFather) di input, mirip apps Telegram

0.4.9

  • Chat Telegram sebagai menu sidebar + laman sendiri (/chat-telegram), bukan hanya thread di dalam workspace

0.4.8

  • External API: GET /conversations + /conversations/:id/messages (pull history Telegram/Optima)

Changelog

Format mengikuti Keep a Changelog. Versi mengikuti Semantic Versioning.

[Unreleased]

[0.4.11] - 2026-08-05

Changed

  • Thread Chat Telegram tidak lagi muncul di history chat workspace (akses lewat menu )
  • Deep-link redirect ke

[0.4.10] - 2026-08-05

Added

  • Laman /chat-telegram: tombol menu perintah bot (list BotFather) di samping input, seperti menu command di apps Telegram
  • Modul telegram-bot-commands.ts sebagai sumber daftar perintah

[0.4.9] - 2026-08-05

Added

  • Menu sidebar Chat Telegram dan laman /chat-telegram (thread sync Telegram↔web sebagai fitur top-level)
  • Helper ensureChatTelegramThread di chat-context

[0.4.8] - 2026-08-05

Added

  • External API: GET /conversations + /conversations/:id/messages (pull history Telegram/Optima)

[0.4.7] - 2026-08-05

Added

  • External API sync ke Telegram/web: body opsional sync pada POST /api/v1/external/chat
  • Persist turn ke workspace bernama (default Optima) tanpa mengubah pointer DM Telegram
  • Notify DM bot (satu bubble final) bila telegram_links approved
  • Response job done menyertakan conversationId + telegramNotified

Changed

  • Client tanpa sync tetap perilaku lama (backward compatible)

[0.4.6] - 2026-07-22

Fixed

  • Overlap konten halaman (mis. Settings/Profil) dengan footer versi: wrapper konten tidak lagi min-h-0, sehingga scroll di <main> dan footer tidak tertimpa.

[0.4.5] - 2026-07-22

Fixed

  • Timestamp workspace di list web yang tampil jauh ke masa depan (nilai ms legacy dinormalisasi ke detik untuk Drizzle mode: 'timestamp').

Added

  • OnlyOffice multi-tipe: edit DOCX / XLSX / PPTX (documentType word/cell/slide).
  • Menu New document (Word / Excel / PowerPoint) + upload OOXML ke Documents.
  • Kolom workspace_docs.file_type; upload Files .docx/.xlsx/.pptx juga jadi dokumen editable.

Changed

  • Plugin Workassist AI hanya untuk DOCX (cell/slide tanpa plugin AI).

[0.4.4] - 2026-07-21

Changed

  • /codespace share|unshare wajib sebutkan <slug> — share per project saja (bukan semua Codespace).
  • Tolak keyword all / semua / * pada share/unshare.

[0.4.3] - 2026-07-21

Added

  • Sharing Codespace antar user Telegram (ACL Editor): /codespace share|unshare|members.
  • Kolom active_code_project_id + tabel telegram_code_project_members; agent/editor memakai path folder owner.

Changed

  • /codespace list menampilkan owned ∪ shared (label ◀ shared · owner@…).
  • Upload .zip/.html dan resolve workspace agent mengikuti Codespace aktif (termasuk shared).

[0.4.2] - 2026-07-20

Fixed

  • Telegram foto + caption perintah kembali diproses (regresi sejak skill system): message.photo tidak lagi diabaikan diam-diam.
  • Dokumen PDF/DOCX/XLSX/gambar ke agent via ekstraksi teks + caption (bukan hanya key/code upload).
  • Grup: media + caption/caption_entities atau reply ke bot ikut diarahkan ke agent.

[0.4.1] - 2026-07-19

Fixed

  • Cursor NDJSON terakhir tetap diproses walau tidak diakhiri newline.
  • Respons Cursor kosong tidak lagi disimpan sebagai (no response): Sangga mengambil ringkasan hasil sekali, lalu menandai job gagal bila tetap kosong.
  • Diagnostik respons kosong mencatat exit code, jumlah event, session ID, dan potongan stderr.

[0.4.0] - 2026-07-19

Added

  • Telegram dapat membuat Workspace web melalui /workspace new <nama> atau permintaan natural seperti “buat workspace baru bernama …”.

Changed

  • Pembuatan Workspace web dan API web memakai helper yang sama; permintaan “code workspace” tetap diarahkan ke Codespace.

[0.3.1] - 2026-07-19

Added

  • Tombol inline pada /codespace dan /codespace list untuk berpindah Codespace langsung dari Telegram.

Fixed

  • URL staging dipatok ke dev-sangga.cartenz.co.id agar tidak mewarisi URL production dari environment Docker Compose.

[0.3.0] - 2026-07-19

Added

  • Tiga job agent paralel dengan child process, runtime Cursor/MCP, dan identitas sudo per job.
  • Istilah dan perintah /codespace untuk proyek vibe code; /code tetap menjadi alias.
  • Codespace production/staging bersama dan adopsi otomatis proyek lama dari filesystem.
  • Manual Workspace/Codespace di docs/user-manual-workspace-codespace.md.

Changed

  • Snapshot progress Telegram private maupun grup dibatasi satu update per 10 detik.
  • Telegram 429 mengikuti retry_after; kegagalan delivery tidak menahan status terminal job.
  • Workspace berarti ruang dokumen/KB/OnlyOffice; Codespace berarti ruang source code.

Fixed

  • Migrasi execution_duration_ms dan update terminal job atomik.
  • Lock Codespace mencegah dua job paralel menulis direktori yang sama.
  • Key snippet proxy memakai kombinasi direktori email dan slug.

[0.2.22] - 2026-07-17

Added

  • Triple-track agent queue: hingga 3 job paralel via AGENT_MAX_CONCURRENT (default 1, staging=3)
  • claimNextJobs() — claim multi-slot FIFO dengan skip workspace bentrok
  • Cancel job per jobIdkillActiveAgentChild(jobId) tidak menghentikan job lain
  • /status menampilkan N queued | M running (max K)

[0.2.21] - 2026-07-16

Fixed

  • Workspace code (serve.mjs): perbaiki find depth di start-vibe-code-servers.sh agar user/project/start.sh terdeteksi — auto-start saat boot/deploy tidak lagi skip semua proyek
  • ensure-vibe-code-proxy.sh: nginx snippet ke 127.0.0.1:312x (bukan IP container) + hot-deploy panggil ulang setelah restart

[0.2.20] - 2026-07-16

Added

  • Telegram: terima source .zip / .html di mode /code — ekstrak ke proyek vibe code aktif (workspace code)
  • Bantuan /help dan status /code menyebut unggah ZIP/HTML

[0.2.19] - 2026-07-16

Added

  • Sync chat Telegram ↔ web: workspace default + thread bersama (conversations), pointer activeConversationId
  • Perintah /workspace, /thread, /new (Telegram & slash di web chat) memakai konteks yang sama
  • Migrasi sekali riwayat telegram_chat_messages → thread Chat Telegram
  • API /api/chat-context (GET/PATCH) untuk pointer aktif
  • Home = daftar workspace; /workspaces redirect ke / (nav Workspaces dihapus)

Fixed

  • Telegram ATTACH: laporkan nama file yang disebut tapi tidak ketemu (dari hotpatch 0.2.18)
  • Prompt sistem file Telegram dikembalikan ke process-job

[0.2.18] - 2026-07-14

Fixed

  • Telegram ATTACH: laporkan unresolved + telegramFileSystemPrompt di process-job (hotpatch production)

[0.2.17] - 2026-07-14

Fixed

  • Telegram: wiring ulang ATTACH: di process-job (parseOutboundAttachments + sendDocument/sendPhoto) — sebelumnya outbound.ts ada tapi tidak dipanggil, jadi file PDF/dokumen tidak terkirim ke chat/grup

[0.2.16] - 2026-07-12

Added

  • Telegram: terima dan simpan file VPN .ovpn / .vpn / .wg (selain .pem / .ppk) per user untuk perintah berikutnya

[0.2.15] - 2026-07-12

Added

  • Telegram: terima dan simpan file kunci .pem / .ppk per user (untuk perintah berikutnya)
  • Perintah /key (alias /keys, /kunci) — daftar / hapus file kunci tersimpan

[0.2.13] - 2026-07-08

Changed

  • Grup Telegram: progress blob di-update maksimal tiap 10 detik (anti flood limit)
  • Grup Telegram: balasan final di-edit ke pesan status yang sama (bukan kirim banyak pesan baru)
  • DM tetap update progress tiap 2 detik seperti sebelumnya

[0.2.12] - 2026-07-08

Added

  • Perintah dan instruksi agent di grup Telegram (mention bot) — user approved bisa /status, /antrian, instruksi coding, dll. langsung di grup

Changed

  • User belum aktivasi yang mention bot di grup tetap diarahkan registrasi lewat DM
  • Sambutan join grup diperbarui

[0.2.11] - 2026-07-08

Changed

  • Bot Telegram tetap di grup/supergroup (hanya keluar dari channel)
  • Sambutan otomatis saat bot ditambahkan ke grup

[0.2.10] - 2026-07-08

Fixed

  • Voice note Telegram: kirim Authorization: Bearer ke Whisper (WHISPER_API_KEY)
  • Script sync-whisper-api-key.sh — salin token dari container whisper ke env prod/staging

[0.2.9] - 2026-07-08

Added

  • Perintah Telegram /antrianglobal (alias /globalqueue, /antrian global) — lihat antrian job semua user dengan pemilik, channel, dan mode

[0.2.7] - 2026-07-08

Fixed

  • Timestamp agent_jobs konsisten (detik) — timeout & urutan antrean benar
  • Progress Telegram: fallback plain text, log error, ticker waktu sementara 5 detik, flush final

[0.2.6] - 2026-07-08

Added

  • scripts/host-deploy.sh — deploy staging/production dari host (background), aman dipanggil agent via sudo
  • scripts/ensure-staging-up.sh + ensure-compose-app.sh — watchdog & health-check post-deploy
  • Requeue otomatis job running saat container restart + notifikasi Telegram

Changed

  • Progress Telegram: waktu eksekusi sementara di setiap update pesan progress
  • Agent diinstruksikan pakai host-deploy.sh, bukan docker compose down/stop

[0.2.5] - 2026-07-08

Changed

  • Permintaan hubung Telegram dikirim ke semua user Administrator (role admin) yang sudah terhubung ke bot — bukan hanya TELEGRAM_APPROVER_IDS.
  • Approver Telegram: user dengan role Administrator + link Telegram approved, plus fallback env TELEGRAM_APPROVER_IDS.
  • Halaman Admin → Telegram (/admin/telegram) untuk setujui/tolak permintaan dari web.

[0.2.4] - 2026-07-07

Added

  • Agent skills system (playbook procedural memory, /skill, auto-draft setelah task kompleks)
  • Footer waktu eksekusi di setiap balasan agent Telegram

Changed

  • Audit log untuk perintah SSH via host

[0.2.3] - 2026-07-07

Added

  • PDF workflow: pdf-workflow.ts, scripts/render_pdf.py, render_diagram.py, fix_mermaid_svg.py
  • Dokumentasi docs/PDF-WORKFLOW.md + pinned @mermaid-js/mermaid-cli di root package.json

Changed

  • Telegram outbound prompt: dukungan SVG, instruksi pipeline PDF/Mermaid, tanpa branding default

[0.2.2] - 2026-07-07

Added

  • Vibe-proxy: reverse-proxy subpath vibe apps lewat Sangga (/muhammad_fajar_cartenz_co_id/...)
  • Env VIBE_PROXY_ROUTES untuk override upstream (prefix=origin, comma-separated)

[0.2.1] - 2026-07-07

Added

  • Telegram: terima file PDF, DOCX, XLSX, gambar (+ caption) — ekstrak teks otomatis
  • Telegram: kirim balik file via ATTACH: nama.ext (sendDocument / sendPhoto)
  • Ekstrak konten spreadsheet XLSX (SheetJS)

Changed

  • Help /help dan prompt agent menyertakan instruksi file Telegram

[0.2.0] - 2026-07-06

Added

  • Telegram /antrian — lihat antrian job agent tanpa cursor-agent
  • Sudo gate Telegram + progress live saat agent jalan
  • Notifikasi user saat agent job timeout

Changed

  • Parse output agent markdown → Telegram HTML (bold, code, link, tabel)
  • Timeout agent job dinaikkan ke 15 menit (prod & staging)

Fixed

  • Agent job macet dengan timeout & stale recovery
  • Bootstrap DB staging yang tidak lengkap
  • version.ts aman di bundle browser

[0.1.0] - 2026-06-29

Added

  • Label versi di footer web (semua halaman) + sidebar navigasi
  • Telegram: /version, pertanyaan natural ("versi berapa?"), dan baris versi di /status
  • Build metadata: commit git + tanggal build (via VITE_APP_GIT_SHA saat deploy)

Changed

  • Versi aplikasi naik ke 0.1.0 (sinkron package.json)

[0.0.1] - 2026-06-26

Rilis awal WorkAssist yang ditandai untuk production & staging.

Added

  • Real-time streaming chat workspace (SSE) dengan UI mirip Cursor
  • Agent tools: KB search, baca PDF/DOCX, buat/edit dokumen
  • OnlyOffice editor + plugin AI sidebar
  • Admin: pengguna, role, API clients, penyimpanan, AI provider global
  • Google OAuth (@cartenz.co.id), external API v1
  • Sidebar collapsible, changelog & label versi di navigasi

Changed

  • Staging memakai production build (bukan Vite dev) agar perilaku UI sama dengan production
  • AI provider dikelola global di Admin (bukan per-user)

Fixed

  • blocks is not iterable saat bot membuat dokumen dari ringkasan PDF
  • FOUC / loncatan font di staging
  • OnlyOffice JWT secret selaras antara app dan container
  • Navigasi admin & hydration layout