Skip to content

Releases: tsukiforge/BoneFish

BoneFish v7.7.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 13:56

v7.7.0 — Storage Detection Rewrite (3-State), Game Session Verification & Crosshair Roblox-Center Lock

Release date: 2026-09-18

Storage / HDD-SSD Detection (P0)

  • Engine baru 3-state: SSD / HDD / Unknown. Tidak ada lagi fallback-tebakan Unknown → HDD maupun Unknown → SSD. Bukti tidak cukup atau kontradiktif → Unknown (hard requirement).
  • Root cause salah klasifikasi dua arah ditemukan & diperbaiki:
    • SSD → HDD (pra-v7.6.3): volume handle dibuka GENERIC_READ → selalu AccessDenied non-admin → fallback "Assuming HDD".
    • HDD → SSD (v7.6.3): driver tanpa dukungan seek-penalty (IDE/RAID/virtual/USB bridge) mengembalikan descriptor kosong dengan status sukses; kode memperlakukan IncursSeekPenalty==0 sebagai "SSD" tanpa validasi Version/Size/rentang nilai.
  • Deteksi kini mengarah ke physical disk tempat Windows berada (Win32_LogicalDiskToPartition\\.\PhysicalDriveN), bukan handle volume C: dan bukan disk pertama.
  • Multi-source + consistency check: S1 seek-penalty IOCTL (validasi descriptor ketat; =1 → HDD kuat, =0 hanya hint lemah), S2 TRIM descriptor (hint lemah), S3 MSFT_PhysicalDisk.MediaType (3=SSD/4=HDD kuat; sumber data Task Manager), S4 BusType NVMe (hint lemah). Bukti kuat berlawanan → Unknown dengan alasan tercatat.
  • Cache v4: simpan detector version, disk identity (index/model/bus), confidence & sources; Unknown tidak pernah di-cache; versi beda otomatis invalid; "Deteksi Ulang Hardware" menghapus cache & deteksi penuh.
  • Diagnostik lengkap di log (mapping, tiap sumber, decision + reason); panel System Info menampilkan SSD/HDD/Unknown. Detail & test matrix: docs/STORAGE-DETECTION.md.
  • Optimasi HDD Balanced kini hanya jalan pada HDD terkonfirmasi; memory trim SSD hanya pada SSD terkonfirmasi. Unknown = tanpa tuning (aman).

Game Session Manager (P0)

  • Root cause "suspend tidak pernah jalan" diperbaiki: Classify() memanggil IsCritical() yang hard-fail untuk proses elevated (path/start-time tak terbaca dari proses non-admin) SEBELUM rule user dipertimbangkan — aplikasi pilihan user yang jalan as-admin tidak pernah sampai ke suspend. Kini proteksi memakai IsAlwaysProtected() langsung (nama critical, service SCM, session 0, Windows path, security software tetap terlindungi penuh).
  • Verifikasi pasca-suspend: 0 thread tersuspend = FAILED — proses tidak masuk record sesi (tidak ada "sukses palsu") dan log memuat Suspend FAILED ... Reason:; sukses tercatat Status: SUSPENDED dengan hitungan thread.
  • Lifecycle logging: Game Session Started, Rule matched ... target PID=, hasil suspend per proses.

Crosshair (P1)

  • Lock ke tengah Roblox: pusat crosshair kini mengikuti pusat client-area jendela Roblox (GetClientRect+ClientToScreen, konversi DPI per-monitor) — bukan tengah monitor utama. Menangani windowed/maximized, pindah monitor, DPI 100/125/150%.
  • Drag manual mematikan lock otomatis (posisi custom dihormati & tidak ditimpa); toggle "Kunci ke Tengah Roblox" di halaman Experimental untuk mengunci lagi (default ON).
  • Resize tetap center-anchored: ukuran 20–200px tidak pernah menggeser titik tengah.

Files

  • Bloxstrap/Integrations/AutoOptimizeService.cs — engine deteksi v4 + cache v4 + diagnostics.
  • Bloxstrap/GameSession/ProcessClassifier.cs, Bloxstrap/GameSession/GameSessionService.cs — fix klasifikasi + verifikasi suspend.
  • Bloxstrap/UI/Elements/CrosshairOverlay.xaml.cs, Bloxstrap/UI/Elements/Settings/Pages/ExperimentalPage.xaml, Bloxstrap/UI/ViewModels/Settings/ExperimentalViewModel.cs, Bloxstrap/Models/Persistable/Settings.cs — Roblox-center lock.
  • docs/STORAGE-DETECTION.md — decision tree, cache, test matrix.

BoneFish v7.6.8

Choose a tag to compare

@github-actions github-actions released this 18 Sep 11:10

v7.6.8 - Fix Deteksi Storage, Game Session Suspend & Crosshair Center

Release date: 2026-09-18

💾 Fix: Deteksi storage selalu salah "HDD" di PC non-admin

  • Akar masalah: handle volume (\\.\C:) dibuka dengan GENERIC_READ. Akses
    tersebut selalu ditolak untuk proses non-admin, sehingga query
    IOCTL_STORAGE_QUERY_PROPERTY gagal dan kode fallback "Assuming HDD" jalan di
    SEMUA PC biasa — termasuk PC yang 100% SSD.
  • IOCTL seek-penalty tetap dipakai tapi dengan dwDesiredAccess = 0 (akses nol),
    yang cukup untuk query properti dan bekerja tanpa hak admin.
  • Fallback baru: WMI MSFT_PhysicalDisk (namespace Storage, Win8+) — sumber data
    yang sama dipakai Task Manager kolom tipe disk. Assume HDD kini hanya terjadi
    jika SEMUA metode gagal.
  • Persistent cache HardwareCache.json dinaikkan ke versi 2 → cache lama yang
    berisi nilai salah otomatis di-invalidasi dan deteksi dijalankan ulang.
  • Tombol "Deteksi Ulang Hardware" tetap tersedia untuk refresh paksa.

🎮 Fix: Suspend Game Session tidak pernah bekerja

  • Akar masalah utama: detektor keamanan fail-closed. Jika Windows Security
    Center mati/disable atau WMI diblokir (umum pada Windows debloat / group
    policy), state detector menjadi Unavailable dan SEMUA proses di-skip —
    suspend tidak pernah terjadi walau aplikasi sudah dicentang.
  • Kegagalan infrastruktur deteksi kini menghasilkan Degraded (bukan
    Unavailable): daftar proses keamanan yang diketahui tetap dilindungi penuh.
  • Toggle baru di halaman Game Session — "Lanjutkan suspend saat deteksi
    keamanan gagal"
    (GameSessionAllowSuspensionOnDetectorFailure, default
    OFF): saat aktif, proses yang Anda setujui tetap di-suspend walau detektor
    gagal. Proses Windows, service SCM, session 0, dan antivirus tetap dilindungi
    oleh guard IsAlwaysProtected.
  • Proses yang berjalan elevated (path/start-time tidak terbaca dari proses
    non-admin) tidak lagi otomatis dianggap "critical": kini tampil di daftar dan
    bisa dicentang. Skip PID=... saat suspend gagal (0 thread) kini tercatat di
    log dengan penyebabnya.

🎯 Fix: Crosshair bergeser dari tengah layar saat ukuran diperbesar

  • Akar masalah: posisi overlay disimpan sebagai pojok kiri atas dan urutan
    constructor menghitung centering dari ukuran window default 80px sebelum
    ukuran asli diterapkan.
  • Posisi kini disimpan sebagai titik tengah overlay: mengubah ukuran
    (20–200px) membuat window membesar/mengecil simetris di sekitar titik tengah,
    jadi crosshair selalu jatuh tepat di tengah layar pada ukuran APA PUN.
  • Posisi drag tetap bisa disesuaikan manual; nilai (0,0) berarti default ke
    tengah layar.

✅ Verifikasi

  • Build berhasil (0 error, 0 warning).

BoneFish v7.6.2

Choose a tag to compare

@github-actions github-actions released this 17 Sep 12:44

v7.6.2 - Bug Fix Update Check Transparency

Release date: 2026-09-17

🐛 Bug Fix — Update Checker Terlihat Tidak Bekerja

  • Update checker sekarang mencatat versi aplikasi lokal dan hasil pemeriksaan
    dari setiap repository ke log BoneFish.
  • Jika CheckForUpdates dimatikan, log menjelaskan bahwa pemeriksaan memang
    dilewati.
  • Jika tidak ada update, log mencatat bahwa versi lokal sudah sama atau lebih
    baru daripada release GitHub yang ditemukan.
  • Jika salah satu repository tidak tersedia, jalur lainnya tetap digunakan dan
    repository yang gagal ditandai sebagai unavailable di log.
  • Badge merah hanya ditampilkan jika versi release GitHub benar-benar lebih baru
    daripada versi aplikasi. Versi yang sama tidak dianggap sebagai update.
  • Tidak ada balloon notification otomatis; hasil update tetap ditampilkan secara
    senyap melalui icon tray.

🔎 Contoh Diagnostik

Jika aplikasi 7.6.2 memeriksa release v7.6.2, log akan mencatat bahwa tidak
ada update yang diperlukan. Badge merah baru muncul ketika release publik lebih
baru, misalnya v7.6.3.

✅ Verifikasi

  • Build Release berhasil.
  • git diff --check berhasil.
  • Perbandingan versi menggunakan System.Version dan menghapus prefix v dari
    tag GitHub sebelum dibandingkan.

BoneFish v7.6.1

Choose a tag to compare

@github-actions github-actions released this 16 Sep 08:13

v7.6.1 - Bug Fix Update Tray

Release date: 2026-09-16

🐛 Bug Fix — Update Tray Terlalu Mengganggu

  • Menghapus balloon notification otomatis saat update GitHub ditemukan.
  • Update kini hanya ditandai dengan badge merah pada icon system tray.
  • Tooltip icon menampilkan bahwa update tersedia.
  • Klik kiri icon membuka halaman release GitHub yang sesuai.
  • Pengecekan update yang gagal tetap bersifat non-fatal dan tidak mengganggu
    penggunaan BoneFish.

✅ Verifikasi

  • Build Release berhasil.
  • git diff --check berhasil.

BoneFish v7.6.0

Choose a tag to compare

@github-actions github-actions released this 11 Sep 04:13

v7.6.0 - Dual-Repository Update Indicator, Game Session Tray Reliability & FPS Unlocker

Release date: 2026-09-11

🎮 Game Session dari Roblox System Tray

  • Monitor external Roblox dimulai lebih awal saat BoneFish berjalan di system
    tray, sehingga Roblox yang dibuka dari official Roblox tray atau website tetap
    dapat terdeteksi sebelum sesi Roblox sebelumnya berakhir.
  • Retry pencarian log Roblox setiap 5 detik jika proses sudah muncul tetapi
    file log belum dibuat. Startup race tidak lagi membuat PID Roblox diabaikan
    sampai prosesnya mati.
  • Notifikasi suspend tetap muncul hanya jika ada proses yang benar-benar berhasil
    disuspend. Proses yang diproteksi atau tidak memiliki rule tidak dilaporkan
    sebagai suspend palsu.

🔴 Indikator Update di System Tray

  • System tray kini memeriksa dua jalur release resmi:
    • https://github.com/tsukiforge/BoneFish/releases
    • https://github.com/BoneFishStudio/BoneFish/releases
  • Release dengan versi tertinggi dari kedua repository dipilih sebagai sumber
    update.
  • Jika versi tersebut lebih baru daripada versi aplikasi, icon BoneFish mendapat
    badge merah dan tooltip update.
  • Klik kiri icon atau notifikasi update membuka halaman release yang benar.
  • Jika salah satu repository gagal diakses, repository lainnya tetap diperiksa.

🚀 FPS Unlocker hingga 240 FPS

  • FramerateCap Roblox kini ditetapkan ke 240 FPS, bukan dibatasi sama dengan
    refresh rate monitor.
  • FPS aktual tetap bergantung pada CPU, GPU, suhu, kualitas grafis, dan batas
    client Roblox. Nilai 240 FPS adalah batas software, bukan jaminan FPS nyata.
  • Status UI dan dokumentasi diperbarui agar menjelaskan batasan ini dengan jelas.

🧰 PowerShell CLI Installer

  • Installer resmi baru tersedia di Scripts/Install-BoneFish.ps1.
  • Selalu mengambil BoneFish.exe dari GitHub Release terbaru.
  • Memvalidasi sistem Windows 64-bit dan signature executable sebelum dijalankan.
  • Menampilkan banner ASCII, status berwarna, pesan error yang jelas, serta opsi
    -SkipLaunch dan -KeepDownload.
  • README diperbarui dengan instruksi instalasi CLI dan instalasi manual.

📦 Dua Paket Release

  • BoneFish-Setup.exe untuk instalasi normal dengan setup wizard dan shortcut.
  • BoneFish-Portable.zip untuk menjalankan BoneFish langsung dari folder tanpa
    wizard installer atau registrasi install Windows. Data portable disimpan di
    folder yang sama dengan executable.

✅ Verifikasi

  • Watcher.cs tidak memiliki error dari analyzer editor.
  • Resource XML valid.
  • git diff --check berhasil dengan konfigurasi line ending CRLF repository.
  • Build penuh memerlukan restore dependency NuGet pada environment Windows/.NET
    yang lengkap.

BoneFish v7.5.6

Choose a tag to compare

@github-actions github-actions released this 10 Sep 04:13

No changelog entry found for v7.5.6. See CHANGELOG.md for details.

BoneFish v7.5.4

Choose a tag to compare

@github-actions github-actions released this 09 Sep 04:00

No changelog entry found for v7.5.4. See CHANGELOG.md for details.

BoneFish v7.5.3

Choose a tag to compare

@github-actions github-actions released this 09 Sep 02:18

No changelog entry found for v7.5.3. See CHANGELOG.md for details.

BoneFish v7.5.0

Choose a tag to compare

@github-actions github-actions released this 07 Sep 11:51

No changelog entry found for v7.5.0. See CHANGELOG.md for details.

BoneFish v7.4.0

Choose a tag to compare

@github-actions github-actions released this 04 Sep 10:48

v7.4.0 - Fix Crash TaskDialog "Invalid Cursor Handle" + Migrasi BootstrapperTitle Lama

Release date: 2026-09-04

🛡️ FIX 1 — Crash saat buka Roblox: COMException "Invalid cursor handle" (0x8007057A)

Bug OS-level Windows/.NET yang sudah lama dikenal (terjadi juga di aplikasi yang
tidak terkait seperti LaunchBox, bahkan fitur System Restore bawaan Windows) —
bukan logic error di kode BoneFish. TaskDialog.ShowDialog() di
VistaDialog_Load() bisa gagal dengan COMException "Invalid cursor handle" (0x8007057A) dan meng-crash seluruh launch sebelum bootstrapper tampil.

  • Try-catch spesifik — hanya COMException dengan HRESULT 0x8007057A /
    0x80070579 (ERROR_INVALID_CURSOR_HANDLE) atau pesan "Invalid cursor handle"
    yang ditangkap. Error lain tetap lewat crash path normal, tidak disembunyikan.
  • Log + retry sekali — kejadian dicatat ke log (App.Logger), lalu
    TaskDialog.ShowDialog() dicoba ulang sekali setelah delay singkat (500 ms)
    karena sifatnya transient/sporadik.
  • Fallback aman — jika retry juga gagal, bootstrapper beralih ke
    ProgressDialog (dialog WinForms murni, tanpa Vista TaskDialog) dan progress /
    cancel diteruskan untuk sisa launch — user tidak pernah melihat unhandled
    exception dialog.
  • Pola try-catch yang sama diterapkan di ShowSuccess() (navigasi
    _dialogPage.Navigate) — fallback ke plain message box via
    BaseFunctions.ShowSuccess.

🔄 FIX 2 — BootstrapperTitle lama ("Fishstrap"/"Bloxstrap") dimigrasikan

User dengan Settings.json dari sebelum rename ke BoneFish masih menyimpan nilai
lama yang tidak pernah dimigrasikan, sehingga title menampilkan "Fishstrap"
alih-alih "BoneFish".

  • Migrasi satu kali di App.OnStartup() setelah Settings.Load(): jika
    BootstrapperTitle SAMA PERSIS dengan nama historis project (Bloxstrap,
    Fishstrap, BoneFish-QA) → di-reset ke App.ProjectName dan disimpan ulang.
  • Custom title user TIDAK pernah disentuh — hanya exact match nama historis
    yang direset (mis. user sengaja set "Roblox" tidak akan diubah).
  • Self-limiting: setelah Save pertama, nilai sudah "BoneFish", jadi tidak pernah
    menimpa preferensi lagi di startup berikutnya.
  • Audit BootstrapperIcon — ditemukan kondisi serupa: IconFishstrap adalah
    enum mati (dikomentari dari Selections dan switch GetIcon(), render
    fallback ke icon Bloxstrap). Nilai lama yang tersimpan dinormalisasi sekali ke
    IconBloxstrap agar tidak ada kejutan mapping icon di masa depan.

✅ Verifikasi

  • Build 0 error, 0 warning.
  • Test baru: 7 unit test SettingsMigrationTests — semua hijau, termasuk
    konfirmasi title tampil "BoneFish" setelah migrasi berjalan sekali.
  • Reproduksi crash TaskDialog: tidak bisa direproduksi konsisten — sifatnya
    sporadis/transient tergantung state OS (dilaporkan juga di aplikasi lain yang
    tidak terkait). Fix bersifat defensif: log + retry + fallback.