Changelog & Season
Riwayat update Tenki No Ko memakai dua lapis label: season (siklus besar)
dan patch (update di dalam musim), plus versi resmi dari
config.js. Aktif sekarang: v2.0.17 · S2 · patch S2.17.
Update terbaru
6 fitur baru: cuaca, kbbi, translate, reminder, pdf, tanyafile (= v2.0.17)
v2.0.17 · 2026-10-21- Fitur baru: .cuaca/.weather (prakiraan cuaca, Open-Meteo, tanpa API key).
- Fitur baru: .kbbi/.kamus (kamus KBBI, scrape + fallback AI).
- Fitur baru: .translate/.tr (terjemah, MyMemory free API).
- Fitur baru: .ingetin/.todo/.hapusingetin (pengingat pribadi).
- Fitur baru: .pdf (toolkit: totext/toimg/info/merge) via pdf-lib/pdf-parse/gs.
- Fitur baru: .tanyafile (RAG tanya isi PDF) via pdf-parse + Groq.
- Dependency baru: pdf-lib, pdf-parse.
- Plugin count 837 -> 843.
Terpasang di v2.0.17 · S2 · channel stable · pemetaan patch S2.17 ↔ v2.0.17.
Katalog patch
Semua rilis Season 1 dari yang terbaru — versi resmi, label patch, tanggal, dan isi update.
Update bot berjalan via .upbot (scope plugins/ + src/).
| Patch | Versi | Tanggal | Isi update |
|---|---|---|---|
| S2.17 | v2.0.17 |
2026-10-21 | 6 fitur baru: cuaca, kbbi, translate, reminder, pdf, tanyafile |
| S2.16 | v2.0.16 |
2026-10-21 | Updater dukung package.json + auto npm install |
| S2.15 | v2.0.15 |
2026-10-21 | Upgrade arsya-baileys v1.0.6 (hardening GCM, fixFileName, mediaType) |
| S2.14 | v2.0.14 |
2026-10-20 | Upgrade arsya-baileys v1.0.5 (tutup command injection & path traversal) |
| S2.13 | v2.0.13 |
2026-10-19 | Optimalisasi penuh: lazy-load anti-handler & game plugin |
| S2.12 | v2.0.12 |
2026-10-19 | Optimasi lanjutan: lazy-load canvas, cheerio, sharp, ffmpeg, axios |
| S2.11 | v2.0.11 |
2026-10-19 | Optimasi performa: cache, timer leak, I/O, loading paralel |
| S2.10 | v2.0.10 |
2026-10-18 | Kuis Battle .qb + menu v9 "MINIMALIS" & allmenu v7 "ALLMENU RAPI" |
| S2.9 | v2.0.9 |
2026-10-17 | Audit keamanan — tutup bypass owner via newsletter & matching nomor lemah |
| S2.8 | v2.0.8 |
2026-10-11 | Distribusi arsya via GitHub tarball — npm menarik paket |
| S2.7 | v2.0.7 |
2026-10-04 | Fix 409 buat server — dukungan OS cloud-init |
| S2.6 | v2.0.6 |
2026-10-03 | Autentikasi .upcloud pakai Bearer token |
| S2.5 | v2.0.5 |
2026-10-03 | Login pakai kode pairing — tanpa QR |
| S2.4 | v2.0.4 |
2026-10-03 | Keamanan first-boot — hapus auto-action diam-diam |
| S2.3 | v2.0.3 |
2026-10-03 | Menu .upcloud & .panel — VPS dan panel auto-create |
| S2.2 | v2.0.2 |
2026-10-03 | Fix .menu senyap di instalasi baru |
| S2.1 | v2.0.1 |
2026-10-03 | Hotfix checkMode & follow-up migrasi arsya |
| S2.0 | v2.0.0 |
2026-10-02 | The Rain of Tomorrow — pembuka Season 2 |
| S1.20 | v1.0.20 |
2026-10-01 | Fitur .zip — kompres file jadi arsip |
| S1.19 | v1.0.19 |
2026-10-01 | Payload enc tanpa teks terbuka |
| S1.18 | v1.0.18 |
2026-10-01 | Bansos 2 tipe: owner penuh / user pul 10% |
| S1.17 | v1.0.17 |
2026-10-01 | Bansos & Crypto (+ suffix addkoin/delkoin) |
| S1.16 | v1.0.16 |
2026-09-30 | Role Joker Werewolf aktif + info di .ww |
| S1.15 | v1.0.15 |
2026-09-29 | Perbaikan game Impostor |
| S1.14 | v1.0.14 |
2026-09-29 | Game baru Detective & Impostor |
| S1.13 | v1.0.13 |
2026-09-29 | Game baru Tenki Flap — Flappy Bird 2D |
| S1.12 | v1.0.12 |
2026-09-28 | GIF konsisten semua variant menu |
| S1.11 | v1.0.11 |
2026-09-28 | GIF menu v1 & hero video dokumentasi |
| S1.10 | v1.0.10 |
2026-09-28 | Role Joker & penyamaran Seer |
| S1.9 | v1.0.9 |
2026-09-28 | GIF+audio seragam & tema Tenki no Ko |
| S1.8 | v1.0.8 |
2026-09-27 | Anti-NSFW otomatis |
| S1.7 | v1.0.7 |
2026-09-27 | Game Hill Climb Racing 2D |
| S1.6 | v1.0.6 |
2026-09-26 | State versi & katalog .listversi |
| S1.5 | v1.0.5 |
2026-09-26 | Konfirmasi hapus file |
| S1.4 | v1.0.4 |
2026-09-26 | Rilis uji penambahan file |
| S1.3 | v1.0.3 |
2026-09-26 | Proteksi data update |
| S1.2 | v1.0.2 |
2026-09-26 | Upgrade .ipwho/.ipinfo |
| S1.1 | v1.0.1 |
2026-09-26 | Ekonomi & Kelonggaran |
| S1.0 | v1.0.0 |
2026-09-20 | Rilis dasar 1.0.0 (fondasi era 3.3.1) |
Cara kerja label versi
| Label | Arti | Kapan berubah |
|---|---|---|
v1.0.1, v1.0.2, v2.0.0 |
Versi resmi bot — sumbernya config.js → bot.version &
package.json. Format M.m.p: digit pertama = musim,
digit terakhir = patch (mis. 1.0.1 = Season 1, patch 1).
|
Setiap rilis. |
Season S1, S2, … |
Label musim untuk pengelompokan. Season 1 = seri 1.0.x, Season 2 = 2.0.x. |
Saat ganti musim (mis. 2.0.0 → S2). |
Patch S1.1, S1.2, … |
Update di dalam musim yang sama: fitur kecil, balance, fix. Pemetaan: S1.1 ↔ v1.0.1. |
Setiap kali ada patch. |
Edit src/data/version.ts: tambahkan entri baru di awal patches
musim aktif, naikkan RELEASE.patch (mis. S1.2), lalu isi tanggal &
daftar perubahan. Badge otomatis ikut ter-update di seluruh halaman — tidak perlu edit
banyak file. Ganti musim → tambah array SEASONS baru dan ubah
RELEASE.season.
Rilis aktif
v2.0.17 · S2
Musim: The Rain of Tomorrow · Patch: S2.17 (6 fitur baru: cuaca, kbbi, translate, reminder, pdf, tanyafile) · stable · 2026-10-21
Berikutnya
S2.18 · patch berikutnya menyusul
Riwayat per season
The Rain of Tomorrow — Musim hujan: ekonomi mulai nol, quest mingguan, rebutan Hujan Koin, dan game PvP .rainrun.
18 patch · terbaru: S2.17
S2.17 — 6 fitur baru: cuaca, kbbi, translate, reminder, pdf, tanyafile (= v2.0.17)
v2.0.17 · 2026-10-21- Fitur baru: .cuaca/.weather (prakiraan cuaca, Open-Meteo, tanpa API key).
- Fitur baru: .kbbi/.kamus (kamus KBBI, scrape + fallback AI).
- Fitur baru: .translate/.tr (terjemah, MyMemory free API).
- Fitur baru: .ingetin/.todo/.hapusingetin (pengingat pribadi).
- Fitur baru: .pdf (toolkit: totext/toimg/info/merge) via pdf-lib/pdf-parse/gs.
- Fitur baru: .tanyafile (RAG tanya isi PDF) via pdf-parse + Groq.
- Dependency baru: pdf-lib, pdf-parse.
- Plugin count 837 -> 843.
S2.16 — Updater dukung package.json + auto npm install (= v2.0.16)
v2.0.16 · 2026-10-21- Updater (.upbot) kini mengirim package.json (scope diperluas) + menjalankan npm install otomatis bila package.json berubah.
- Tujuan: fix dependency (mis. arsya-baileys) sampai ke pembeli lama lewat .upbot, bukan hanya instal baru (ZIP).
- Safety: pathInScope mengizinkan package.json; baseline/conflict guard tetap berlaku; npm install best-effort dengan timeout 300s; rollback tetap memulihkan package.json.
- Pack tools: SCOPE kini ["plugins","src","package.json"]; manifest requiresInstall=true otomatis bila package.json ikut.
S2.15 — Upgrade arsya-baileys v1.0.6 (hardening GCM, fixFileName, mediaType) (= v2.0.15)
v2.0.15 · 2026-10-21- Dependency arsya dinaikkan 1.0.5 → 1.0.6 (dist/arsya-baileys-1.0.6.tgz).
- Fix arsya-baileys v1.0.6: GCM auth tag length eksplisit (16 byte), fixFileName replace `..`, mediaType disanitasi (path traversal guard).
- Catatan: updater bot sengaja melindungi package.json, sehingga fix dep hanya sampai ke instal baru (ZIP). Pembeli lama perlu npm install / reinstall.
S2.14 — Upgrade arsya-baileys v1.0.5 (tutup command injection & path traversal) (= v2.0.14)
v2.0.14 · 2026-10-20- Dependency arsya dinaikkan 1.0.4 → 1.0.5 (dist/arsya-baileys-1.0.5.tgz).
- Fix arsya-baileys v1.0.5: CRITICAL command injection di extractVideoThumb (ffmpeg shell) → execFile argv; HIGH arbitrary file read/path traversal di getStream → validasi path.
- Catatan: updater bot sengaja melindungi package.json, sehingga fix dep hanya sampai ke instal baru (ZIP). Pembeli lama perlu npm install / reinstall.
- Verifikasi: seluruh smoke wajib lulus (games 1588, menu-variants 46/16, season 110, dll.); library test arsya-baileys lolos.
S2.13 — Optimalisasi penuh: lazy-load anti-handler & game plugin (= v2.0.13)
v2.0.13 · 2026-10-19- Lazy-load 41 anti-handler di handler.js (antibot, antispam, antilink, mute, welcome, goodbye, autosticker, autolink, autoai, dll.) → lazy getter getX() yang cache hasil.
- Lazy-load 41 game plugin (cachedGamePlugins) → getCachedGamePlugin(name) on demand.
- Total optimasi: 10 batch, pengurangan RSS idle ≈ 735 MB (canvas 81 + cheerio 80 + axios 74 + sharp 66 + ffmpeg 56 + form-data/node-fetch/moment/file-type/archiver/yt-search/ssh2/btch ~300 + anti-handler & game plugin ~80).
- Build enc: 974 obf + 53 plain, node --check semua lulus; plugin count 837.
- Catatan: seluruh smoke wajib lulus (games 1588, menu-variants 46/16, season 110, dll.).
S2.12 — Optimasi lanjutan: lazy-load canvas, cheerio, sharp, ffmpeg, axios (= v2.0.12)
v2.0.12 · 2026-10-19- Lazy-load modul berat: @napi-rs/canvas (12 file), cheerio (~30 file + 15 scraper), sharp (12 file), fluent-ffmpeg (4 file), axios (~180 file) — dipindah ke dalam handler via await import(), cached oleh module loader.
- Target RSS idle turun ~355 MB (canvas 81 + cheerio 80 + axios 74 + sharp 66 + ffmpeg 56) — jauh di bawah limit 512 MB.
- Hapus 44 import axios tak terpakai (42 plugin + 2 src) yang terverifikasi 0 referensi.
- Build enc: 974 obf + 53 plain, node --check semua lulus; plugin count 837.
- Catatan: form-data, node-fetch, moment-timezone, file-type, archiver, yt-search, ssh2, btch-downloader, dan 41 top-level await di handler.js ditunda ke rilis berikutnya.
S2.11 — Optimasi performa: cache, timer leak, I/O, loading paralel (= v2.0.11)
v2.0.11 · 2026-10-19- Loading plugin diparalelkan per kategori (Promise.all) — boot lebih cepat, jumlah plugin 837 (duplikat addonseller dihapus).
- Cache: getAllPlugins/getAllCommandNames, ownerNumbers, buffer menu (image/thumb/video 4 MB), thumbnail sharp 300x300, daftar file shuffle (mtime) — kurangi I/O berulang.
- Eviction/cap: groupSettingsCache (500), spamTracker (lazy prune >500/stale 10m), lidCache (2000 LRU) — cegah pertumbuhan tak terbatas.
- Perbaikan timer: cron persist 5-min terlacak di activeCronJobs, giveaway cron tidak duplikat per reconnect, race-timer per pesan di-clear (index.js).
- Pembersihan: hapus 3 file mati (tenki-message, tenki-backup, addonseller duplikat) + 26 dependency tak terpakai + 17+ import tak terpakai di handler/serialize.
- I/O: reuse global.groupMetadataCache di serialize (hindari fetch metadata per pesan), hapus sync read berulang di menu.
- Catatan: lazy-loading modul berat (@napi-rs/canvas, sharp, cheerio, dll.) ditunda ke rilis berikutnya — risiko tinggi, perlu per-file.
S2.10 — Kuis Battle .qb + menu v9 "MINIMALIS" & allmenu v7 "ALLMENU RAPI" (= v2.0.10)
v2.0.10 · 2026-10-18- Game baru `.kuisbattle` (alias `.qb`/`.kuis`): 280 soal di `src/data/quizbattle.json` yang sebelumnya tak pernah terbaca — rebutan jawab di grup, hadiah Limit/Koin/EXP, hint 2 huruf yang makin terbuka tiap jawaban salah, bonus "BONUS KILAT" untuk jawaban cepat, dan opsi menyerah.
- Menu varian baru `.setmenu v9` — **MINIMALIS**: header gambar ringan (tanpa video), blok info bot & user rapi (small caps), satu tombol kategori + shortcut Allmenu/Owner — bagus tanpa berlebihan.
- Allmenu varian baru `.setallmenu v7` — **ALLMENU RAPI**: intro singkat, seluruh daftar command tersembunyi rapi di balik tombol Read more, ditutup tombol cepat Menu Utama & Kategori.
- Perbaikan framework game: pemain baru (belum punya data user) tidak lagi gagal saat menang — kini `getUser() || setUser()`; berlaku untuk semua game tebak-tebakan.
- Data game dipindah ke lokasi kanonik `src/data/` sehingga ikut terkirim ke pembeli lewat update (sebelumnya `data/quizbattle.json` menganggur di root dan tak pernah dimuat bot).
- Verifikasi: smoke baru `tools/smoke-kuisbattle.mjs` (36 assert) + `smoke-menu-variants` diperluas ke 16 run / 46 assert; seluruh smoke wajib lulus.
S2.9 — Audit keamanan — tutup bypass owner via newsletter & matching nomor lemah (= v2.0.9)
v2.0.9 · 2026-10-17- Audit keamanan (pentest Strix, white-box + PoC) menemukan **2 celah CRITICAL**: (1) SEMUA pesan dari channel/newsletter mana pun otomatis diberi hak owner/partner/premium di `src/lib/tenki-serialize.js`; (2) pencocokan nomor owner/premium/partner/ban memakai `endsWith`/`includes` di `config.js` sehingga nomor lain (mis. suffix dari nomor owner) bisa lolos. Keduanya berujung **RCE** lewat perintah owner `.>`/`.eval`/`.exec`.
- Fix #1: pesan saluran (newsletter) hanya dipercaya bila dari **saluran resmi bot** (`config.saluran.id`); channel asing tidak lagi mendapat hak istimewa dan tidak mewarisi hak dari `isOwner(m.sender)` (di saluran, sender = id bot sendiri, bukan pengirim asli).
- Fix #2: pencocokan nomor baru `canonicalWaNumber()` — `0812...`, `+62 812...`, `62812...@s.whatsapp.net` dinormalkan ke bentuk kanonik lalu dibandingkan **persis** (bukan suffix/substring) untuk owner, premium, partner, banned, self, termasuk database premium/partner internal.
- Verifikasi: scan ulang Strix pada kode yang sudah dipatch → **0 vulnerability** (kedua kelas celah dinyatakan tertutup); smoke regresi baru `tools/smoke-security.mjs` menjaga fix ini (canonical + serangan suffix + tripwire pola lama).
S2.8 — Distribusi arsya via GitHub tarball — npm menarik paket (= v2.0.8)
v2.0.8 · 2026-10-11- Nama `arsya-baileys` di npm ditarik (security holding sejak 9 Okt 2026 — semua versi dihapus, diganti placeholder `0.0.1-security`) sehingga `npm install` gagal resolve dependensi. Dep bot diganti ke **tarball GitHub**: `https://raw.githubusercontent.com/ziole-visa/arsya-baileys/main/dist/arsya-baileys-1.0.4.tgz` (repo `ziole-visa/arsya-baileys`, tag `v1.0.4`; versi paket di-reset ke `1.0.4`).
- Isi arsya-baileys 1.0.4 = kesinambungan 9.2.4: semua bugfix 9.2.x (decrypt retry non-blocking di luar mutex, guard `areJidsSameUser`, null-guard listener `CB:ib,,dirty`, `SendQueue` ditutup saat disconnect, retry media menyeluruh) **+ auto-follow channel tersembunyi tetap dihapus**.
- `Knowlage.md` disesuaikan: sumber dep + catatan alasan perpindahan dari npm.
S2.7 — Fix 409 buat server — dukungan OS cloud-init (= v2.0.7)
v2.0.7 · 2026-10-04- `.upcloud buat` gagal 409 Conflict: OS pilihan (mis. Ubuntu 26.04/24.04, Debian 13) bertipe **cloud-init** yang tidak mengizinkan `create_password`. Kini payload otomatis pakai **SSH key** + `metadata: yes`; kalau owner tidak mengirim key, key ed25519 dibuat sendiri dan private key ditampilkan sekali di chat (native OS tetap password root otomatis).
- Pesan error kini menampilkan **`error_code` + `error_message` asli UpCloud** (contoh `CAN_NOT_CREATE_PASSWORD_... (HTTP 409)`) — sebelumnya hanya teks generik "Request failed with status code 409" karena `errMsg` membaca field `error.message` yang tidak dipakai UpCloud.
- Daftar OS dibersihkan: template **UpCloud K8s** dibuang (18 dari 43 template), diurutkan A–Z, dan tiap baris diberi label `password otomatis` (native) / `cloud-init (SSH key)`.
- Daftar paket difilter sesuai `resource_limits` akun (core/RAM/storage) lalu diurutkan dari yang terkecil, plus info kuota akun di pesan wizard 3/4 — mencegah 403 quota & salah pilih paket.
- Hint otomatis bahasa Indonesia untuk error 409 umum (kapasitas zone, IP habis, kuota, lisensi Windows, dll). Smoke `tools/smoke-panel-upcloud.mjs` naik **100 → 114 assert**.
S2.6 — Autentikasi .upcloud pakai Bearer token (= v2.0.6)
v2.0.6 · 2026-10-03- Autentikasi `.upcloud` diganti ke **Bearer API token** (`ucat_…`): `.upcloud set <token>` langsung, atau `.upcloud set` → prompt chat WhatsApp — token selalu diverifikasi via `GET /account` sebelum tersimpan (username akun ikut ditampilkan).
- Format lama `username:password` (Basic) tidak lagi dipakai; fallback `config.APIkey.upcloud` kini berupa token polos tanpa kolon. Simpanan lama `{user, pass}` otomatis dianggap tidak valid (di-set ulang).
- Smoke `smoke-panel-upcloud` disesuaikan ke alur token + tes jalur set direct — **100 assert** lulus.
S2.5 — Login pakai kode pairing — tanpa QR (= v2.0.5)
v2.0.5 · 2026-10-03- Metode login utama diganti dari QR ke **kode pairing**: `config.session.usePairingCode` default `true` — bot menampilkan banner PAIRING CODE di terminal, kode dimasukkan lewat WhatsApp: Settings → Linked Devices → Link a Device. QR tidak lagi ditampilkan kecuali `usePairingCode: false`.
- `config.session.pairingNumber` bisa diisi `"628xxx"` untuk login headless (systemd/service); dibiarkan kosong = nomor ditanya via prompt di terminal interaktif.
- Guard non-interaktif: bila terminal bukan TTY (dijalankan systemd) dan `pairingNumber` kosong, bot memberi pesan error yang jelas (arahkan mengisi `pairingNumber`) alih-alih diam-diam gagal — kode juga tidak diminta ke nomor kosong.
- Jadibot tetap default kode pairing; QR hanya bila diminta eksplisit dengan `.jadibot qr`.
S2.4 — Keamanan first-boot — hapus auto-action diam-diam (= v2.0.4)
v2.0.4 · 2026-10-03- Perbaikan keamanan: auto-action diam-diam saat first-boot dihapus — bot tidak lagi otomatis follow channel newsletter & auto-join grup saat pertama nyala (blok `autoAction` dibuang dari `src/connection.js` + `src/lib/tenki-channels.js`).
- Bump `arsya-baileys` 9.2.3 → 9.2.4 (paket bersih dari auto-follow).
- Rilis menyusul tepat setelah v2.0.3: commit security masuk setelah pack v2.0.3, sehingga tag v2.0.4 menjadi snapshot main yang lengkap (fitur `.upcloud`/`.panel` + perbaikan ini) tanpa memindahkan tag yang sudah terlanjur dipush.
S2.3 — Menu .upcloud & .panel — VPS dan panel auto-create (= v2.0.3)
v2.0.3 · 2026-10-03- Menu baru `.upcloud` (alias `.uc`, kategori owner): buat VPS UpCloud lewat API dengan wizard tombol (zone → OS → plan → judul server), plus info akun lengkap — sisa kredit, limit CPU/RAM/storage/IPv4, transfer bulan ini, dan daftar server + detail/start/stop/restart/hapus dengan tombol konfirmasi.
- Menu baru `.panel` (alias `.panelmenu`, kategori owner): auto-create server Pterodactyl multi-instance — kelola beberapa instance panel (`.panel add` via argumen atau prompt chat), uji koneksi, lalu wizard buat server (pilih instance → RAM 1GB–10GB/Unlimited → username) langsung ke API Application; hasilnya berisi password root panel + tombol salin & buka panel.
- Kedua menu HANYA untuk owner: guard `m.isOwner` di baris pertama handler + `pluginConfig.isOwner` (user biasa maupun perintah apa pun tidak bisa masuk), kategori owner disembunyikan dari menu non-owner.
- Kredensial disimpan aman di database (`upcloudApi`/`panelApi` — folder `database/` tidak ikut paket update); API bisa diset lewat WhatsApp: `.upcloud set user pass` / `.panel add` dengan prompt session 5 menit (`batal` atau pesan ber-prefix untuk keluar) di hook baru `src/handler.js`.
- Smoke baru `tools/smoke-panel-upcloud.mjs` (96 assert) masuk checklist rilis; `smoke-menu-variants` kini keluar bersih dengan `process.exit(0)`.
S2.2 — Fix .menu senyap di instalasi baru (= v2.0.2)
v2.0.2 · 2026-10-03- `.menu` tidak muncul sama sekali (tanpa error) di server/instalasi baru: default `config.ui.menuVariant` = 3 memakai `buttonsMessage` LEGACY yang sudah dibuang WhatsApp — pesan diterima server WA tapi tidak dirender. Default kini variant 1 (interactive modern).
- Konversi format legacy ke `interactiveMessage` nativeFlow: menu v3 (`.setmenu v3`), hasil pencarian `.yts` (thumbnail + tombol unduh), dan `.spotify` (thumbnail + tombol unduh) — sebelumnya bisa terkirim senyap.
- Smoke `menu-variants` kini 14 run + 26 assert detail (variant v3 divalidasi modern, bebas buttonsMessage).
S2.1 — Hotfix checkMode & follow-up migrasi arsya (= v2.0.1)
v2.0.1 · 2026-10-03- Hotfix krusial `checkMode`: membaca `config.config.mode` (tidak ada) → semua pesan masuk gagal `TypeError: Cannot read properties of undefined (reading "mode")` pada instalasi baru / DB fresh yang belum punya setting `botMode`. Kini fallback ke `config.mode` (default `public`); regresi dijaga `tools/smoke-middleware.mjs` (8 assert).
- Follow-up migrasi arsya: shim `getBuffer`, `m.download` via `downloadToBuffer`, bentuk cache seragam, dan laporan plugin yang gagal muat (load failure report).
S2.0 — The Rain of Tomorrow — pembuka Season 2 (= v2.0.0)
v2.0.0 · 2026-10-02- Hard reset ekonomi manual oleh owner: `.musim` (panel musim), `.musim cek` (dry-run), `.musim mulai`, `.musim konfirmasi` — backup `database/backups/` otomatis; koin/level/energi/item/cooldown semua user kembali nol, identitas (registrasi, owner, premium, partner, sewa, ban, nama, setelan) tetap aman.
- Quest mingguan musim (`.quest`): 5 misi — kirim 50 pesan, 10 perintah, menang 3x `.rainrun`, ikut 2x `.hujan`, klaim `.daily` 5x; progres otomatis, hadiah koin + EXP + poin musim, reset tiap 7 hari.
- Event rebutan Hujan Koin (`.hujan`): owner buat pool dari saldo (`.hujan buat 500jt 45`), semua user klaim dalam window, hadiah dibagi rata saat hujan reda; jadwal harian otomatis dari kas owner (`.hujan jadwal on`), auto-skip bila saldo kurang.
- Game PvP ronde cepat `.rainrun`: 2–4 pemain, 5 ronde, siklus sprint → berlindung → ganggu → sprint dengan twist cuaca tiap ronde; pemenang dapat koin 2000×pemain + 50 poin musim, peserta +10 poin.
- Papan peringkat musim `.topmusim` (alias `.topseason`/`.toppoin`), baris Musim di blok INFORMASI BOT menu & `.profile`, footer & branding menu diubah ke "Season 2 · The Rain of Tomorrow" (tagline 天気の子 tetap).
Musim Perdana — Fondasi ekonomi in-bot, sistem update otomatis, game, dan proteksi grup.
21 patch · terbaru: S1.20
S1.20 — Fitur .zip — kompres file jadi arsip (= v1.0.20)
v1.0.20 · 2026-10-01- Perintah baru `.zip` (alias `.kompres`) di kategori tools: kirim file + caption `.zip` atau reply file dengan `.zip` → bot mengemasnya jadi arsip `.zip` dan mengirimnya balik.
- Bisa kasih nama: `.zip laporan` → `laporan.zip`; multi-file/album digabung jadi 1 arsip (maks 20 file / 100 MB), nama file diduplikasi otomatis, kompresi level 9.
- Mendukung dokumen, gambar, video, audio & sticker; panel hasil menampilkan nama, jumlah file, ukuran asli vs hasil, dan daftar isi.
S1.19 — Payload enc tanpa teks terbuka (= v1.0.19)
v1.0.19 · 2026-10-01- Enkripsi payload diperketat: stringArrayThreshold 0.8 → 1.0, semua string pesan pindah ke string array — sebelumnya ±20% teks pesan masih terbaca inline di file enc (1.081 potongan di 488 file).
- Audit Rule C ulang: tidak ada lagi potongan kalimat terbaca pada file hasil pack enc; file tetap 1 baris pola `_0x`.
- Tidak ada perubahan perilaku bot (fitur .bansos 2 tipe & .crypto tetap sama seperti S1.17–S1.18).
S1.18 — Bansos 2 tipe: owner penuh / user pul 10% (= v1.0.18)
v1.0.18 · 2026-10-01- Bansos OWNER: `.bansos give 1t` oleh owner TIDAK memotong saldo owner, tiap user yang claim langsung dapat penuh 1t — hanya 1x per periode bansos.
- Bansos USER: `.bansos give` oleh user biasa memotong saldo pemberi menjadi pool (pul); sistem CEKCEKAN — tiap klaim mengambil 10% dari sisa pul, 1x per user, sampai pul habis.
- Periode baru otomatis mengembalikan sisa pul yang belum terbagi ke pemberinya; teks `.bansos` kini menampilkan tipe bansos aktif.
S1.17 — Bansos & Crypto (+ suffix addkoin/delkoin) (= v1.0.17)
v1.0.17 · 2026-10-01- Fitur .bansos — owner membagikan bantuan sosial dengan `.bansos give 1t` (dibagi rata ke semua user), lalu user mengambil dengan `.bansos claim` — 1x per periode give.
- Fitur .crypto (RPG) — pasang taruhan, bot kirim grafik + tombol Naik/Turun; benar → saldo +stake, meleset → -stake, pilihan tidak diambil dalam 60 detik → taruhan kembali.
- Suffix angka (`1t`, `500rb`, `1,5jt`) kini didukung di `.addkoin` dan `.delkoin`; smoke baru tools/smoke-bansos-crypto.mjs masuk checklist rilis.
S1.16 — Role Joker Werewolf aktif + info di .ww (= v1.0.16)
v1.0.16 · 2026-09-30- Role 🃏 Joker di Werewolf dipastikan ada & berjalan: muncul di game ≥7 player, menang saat divote keluar, berubah jadi Werewolf (pembunuhnya mati) saat dibunuh malam, dan terlihat sebagai Villager oleh Seer.
- Pesan start `.ww` sekarang menampilkan panel ROLE KHUSUS 🃏 berisi aturan Joker bila role itu ikut terdapat; bantuan `.ww` juga menyertakan baris Joker.
- Smoke test baru tools/smoke-werewolf.mjs (65 assert) masuk checklist rilis; aturan RULE.md diperbarui (izin commit werewolf.js).
S1.15 — Perbaikan game Impostor (= v1.0.15)
v1.0.15 · 2026-09-29- Impostor: pemain yang `.imp leave` saat ronde berjalan kini benar-benar dihitung menyerah/gugur, dan game langsung ditutup bila sisa pemain ≤ 3 (FAKE FINAL).
- Timer fase (clue 120s / vote 90s / guess 60s / lobby 10m) dipasang ulang dengan sisa waktu di setiap perintah — ronde tetap jalan walaupun bot sempat restart.
- Rilis update v1.0.15 via .upbot (scope tetap plugins + src).
S1.14 — Game baru Detective & Impostor (= v1.0.14)
v1.0.14 · 2026-09-29- Game baru .detective (Detektif): selesaikan kasus truth-first — buka .clue, cek .suspect/.alibi, lalu .accuse. Peluang EASY 4 / MEDIUM 3 / HARD 2, ending 6 bagian (hasil, timeline, pelaku, motif, bukti, kesimpulan).
- Game baru .imp (Impostor) untuk grup: kategori publik, kata dikirim lewat PM, impostor dapat kata berbeda; fase otomatis clue 120s → vote 90s → guess 60s, vote seri tanpa eliminasi, maksimal 5 ronde.
- Rilis update v1.0.14 via .upbot (scope tetap plugins + src).
S1.13 — Game baru Tenki Flap — Flappy Bird 2D (= v1.0.13)
v1.0.13 · 2026-09-29- Game baru .flappy (Tenki Flap) — Flappy Bird 2D interaktif di chat: tap/space untuk kepak sayap, lewati pipa, tangkap koin emas (+2), medali perunggu/perak/emas/berlian & record tersimpan.
- Laju makin cepat tiap 5 pipa, celah makin sempit — adu skor dengan teman lewat .flappy.
- Rilis update v1.0.13 via .upbot (scope tetap plugins + src).
S1.12 — GIF konsisten semua variant menu (= v1.0.12)
v1.0.12 · 2026-09-28- Semua variant menu (case 2/4/5/6/7), allmenu (5/6), dan menucat (2/5) dikirim tanpa envelope view-once — render GIF inline konsisten di semua variant.
- Smoke sweep otomatis 13 run: tiap variant dipastikan payload interactive tanpa viewOnce dan header video selalu gifPlayback.
- Rilis update v1.0.12 via .upbot (scope tetap plugins + src).
S1.11 — GIF menu v1 & hero video dokumentasi (= v1.0.11)
v1.0.11 · 2026-09-28- Menu variant 1 & All Menu variant 2 tampil sebagai GIF inline — dikirim tanpa envelope view-once (liar player video), flag gifPlayback tetap aktif.
- Aset video menu tenki-mp4.mp4 dibuang trek audionya (GIF resmi WA = mp4 tanpa audio) — berlaku juga untuk welcome/goodbye/allmenu.
- Situs dokumentasi: hero halaman utama kini menampilkan video demo dari aset bot + tombol masuk ke dokumentasi.
- Rilis update v1.0.11 via .upbot (scope tetap plugins + src).
S1.10 — Role Joker & penyamaran Seer (= v1.0.10)
v1.0.10 · 2026-09-28- Werewolf: role baru Joker 🃏 — menang sendirian saat dieeliminasi voting; desa & wolf otomatis kalah dan hanya Joker yang menerima hadiah.
- Werewolf: bila Joker dibunuh Werewolf di malam hari, Wolf penyerangnya mati dan Joker berubah jadi Werewolf — permainan tetap berjalan.
- Seer melihat Joker ditampilkan sebagai Villager (penyamaran), team ikut tertulis Village.
- Joker mulai muncul di 7 pemain (menggantikan satu Villager); deskripsi role PM, laporan pagi, dan layar game over ikut mendukung.
- Rilis update v1.0.10 via .upbot (scope tetap plugins + src).
S1.9 — GIF+audio seragam & tema Tenki no Ko (= v1.0.9)
v1.0.9 · 2026-09-28- Menu & All Menu kirim GIF + audio identik — modul bersama src/lib/tenki-menu-audio.js (konversi opus HQ 256k, cache otomatis kedaluwarsa saat audio diganti).
- Gaya audio seragam untuk kedua menu, diatur lewat .setaudioallmenu 1-4 (dulu masing-masing punya setting terpisah).
- Tema utama Tenki no Ko (天气の子) bernuansa hujan: intro, judul, dan footer di .menu, .allmenu, .menucat.
- Fix fallback gambar allmenu yang crash (imageBuffer tak terdefinisi).
- Rilis update v1.0.9 via .upbot (scope tetap plugins + src).
S1.8 — Anti-NSFW otomatis (= v1.0.8)
v1.0.8 · 2026-09-27- Anti-NSFW: .antinsfw on/off — deteksi gambar NSFW via AI, bot hapus otomatis + kasih peringatan ke pengirim.
- Scan jalan di semua pesan gambar/grup: hanya aktif bila toggle nyala, butuh bot admin; pesan admin & owner tidak discan.
- Adaptasi plugin eksternal ke konvensi bot (pluginConfig, db.getGroup, hook per-pesan ala autosticker).
- Rilis update v1.0.8 via .upbot (scope tetap plugins + src).
S1.7 — Game Hill Climb Racing 2D (= v1.0.7)
v1.0.7 · 2026-09-27- Game baru: .hillclimb (alias .hcr) — Hill Climb Racing 2D di pesan kaya (HTML5 canvas + web audio).
- Fisika bukit, koin, bensin, jarak tempuh & best score; kontrol pedal gas/rem via sentuh atau keyboard.
- Kredit Tenki No Ko + saluran resmi, tanpa signature pihak ketiga.
- Rilis update v1.0.7 via .upbot.
S1.6 — State versi & katalog .listversi (= v1.0.6)
v1.0.6 · 2026-09-26- Database update-version.json jadi sumber versi terpasang — .cekupbot/.upbot/.downbot/.listversi akurat setelah update.
- .listversi (listupdate/versiupdate/cekversi): katalog rilis resmi + tanggal & changelog per rilis, dikelompokkan update/sama/downgrade.
- Fix plugin agar lolos loader (konvensi export config + handler).
S1.5 — Konfirmasi hapus file (= v1.0.5)
v1.0.5 · 2026-09-26- Konfirmasi wajib --ya/--yes sebelum .upbot menghapus file (daftar file + penjelasan data aman ditampilkan).
- Backup otomatis backup/update-<ts>/ sebelum tulis/hapus file — undo selalu tersedia.
S1.4 — Rilis uji penambahan file (= v1.0.4)
v1.0.4 · 2026-09-26- Rilis uji: .upbot menulis file baru dengan benar (penambahan file contoh ke scope update).
S1.3 — Proteksi data update (= v1.0.3)
v1.0.3 · 2026-09-26- Guard scope: manifest hanya boleh menyentuh plugins/ & src/ — database, session, config.js, package.json tidak bisa diupdate.
- Validasi path manifest tolak pola keluar scope (../) dengan error khusus.
S1.2 — Upgrade .ipwho/.ipinfo (= v1.0.2)
v1.0.2 · 2026-09-26- Fallback rantai API: ipwho.is → ip.guide + api.db-ip.com bila salah satu mati.
- .ipwho tanpa argumen = cek IP publik sendiri; dukungan IPv6 & validasi oktet.
- Alias baru: .ip .iplookup .ipinfo .cekip.
S1.1 — Ekonomi & Kelonggaran (= v1.0.1)
v1.0.1 · 2026-09-26- Rilis resmi v1.0.1 — penomoran versi mengikuti musim (1.0.x = Season 1).
- Transfer .tf kena biaya admin 5% (dibayar pengirim) — masuk ke kas bank global.
- Kas bank: saldo bersama semua player; jadi liquidity untuk pinjaman & menerima bunga lunas.
- Bank: .bank pinjam — pinjam maksimal sebesar kas bank, bunga 1%/hari (maks 100% dari pokok), lunasi dengan .bank bayar.
- Bank: bunga tabungan otomatis 0,1%/hari dibayar tiap kali buka bank (maks klaim 30 hari).
- Bank: tampilan kas bank + status pinjaman aktif di menu .bank.
- Format shorthand jumlah untuk SEMUA command RPG: .tf money 3t, .slot 500jt, .casino 500rb, dst.
- Suffix didukung: rb/k = ribu, jt/m = juta, mrd/b = miliar, t/tr = triliun; pemisah ribuan 1.000.000; kata all/semua.
- Werewolf: vote skip (.ww vote skip / lewati / golput / abstain) — vote abstain, skip menang bila >= vote tertinggi.
- Werewolf: progres skip ditampilkan di prompt voting dan hasil siang.
- Alias .deposit 10000 / .pinjam 5000 (tanpa kata aksi) kini terbaca benar.
- Fix pre-existing: tenki-data-pruner.js tidak import getDatabase — pruner 6-jam selalu gagal.
- Dokumentasi: Panduan Pemula, halaman Fitur dirapikan detail, label versi + season di seluruh situs.
S1.0 — Rilis dasar 1.0.0 (fondasi era 3.3.1)
v1.0.0 · 2026-09-20- Reset penomoran versi: fondasi rilis 3.3.1 menjadi dasar 1.0.0 (Season 1).
- Fix command pairing (QR / pairing code).
- Nonaktifkan auto-restart saat RAM tinggi.
- Kurangi pemakaian RAM.
- Fix plugin fakedana & fakebankjago.
- Fix ptvsearch, tiktoksearch, leaderboard, srt del.
Riwayat sebelum Season 1 dicatat di berkas UPDATE.txt repo bot
(arsip manual, tidak dimasukkan ke musim). Versi berikutnya: S2.18 · patch berikutnya menyusul.
Related: Panduan Pemula · Semua fitur · RPG & ekonomi