Repository navigation
Onesist v0.1.46
Fix — no such table: business_requirements setelah data.db dipindah antar mesin
src/server/db/client.ts— penjaga skema saat startup. Folder project yang dipindah lewat zip (SQLite WAL belum di-checkpoint) membawa jurnal migrasi yang mengklaim revisi yang tidak ada di berkasdata.db-nya, sementara Drizzle tidak pernah menjalankan ulang revisi yang sudah tercatat — tabel yang hilang tetap hilang dan aplikasi melemparno such table: business_requirements. Sekarang, saat runtime-migration berjalan, nama tabel yang seharusnya ada dibaca dari berkas migrasi; bila ada yang kurang, pernyataanCREATE/ALTERidempoten diputar ulang (pernyataan destruktif sepertiDROP/INSERT/UPDATE/DELETE/RENAMEdilewati) dan hasilnya dicatat di log server. Bila tabel masih kurang, langkah pemulihan ditulis ke log, bukan gagal senyap. Biaya terukur: 0,54 ms saat skema sehat (tanpa memutar ulang apa pun), 2,6 ms saat pemulihan penuh. Diverifikasiverify-schema-repair.ts— 11 check.
Fix — Project tidak bisa dihapus bila pernah dipakai chat
src/server/routes/projects/index.ts—DELETE /api/projects/:idkini ikut menghapus thread chat.chat_threads.project_idmenunjuk keprojects.id, dan tidak ada satu pun penghapusan sebelumnya yang menyentuhnya, sehingga project yang punya percakapan selalu gagal dihapus denganFOREIGN KEY constraint failed(HTTP 500 di dasbor). Terukur sebelum perbaikan: project dengan 5 thread → 500, tanpa thread → 200. Sekarang setiap thread project dihapus lewatdeleteThreadyang sudah ada (pesan, tool call, berkas, bacaan, run, dan baris FTS ikut bersih), dan baris index kode (index_files/chunks/symbols/index_fts, tanpa foreign key) dibersihkan lewatclearProjectsupaya tidak tertinggal yatim.
Fix — Galat route API dijawab JSON, bukan halaman HTML 500
src/server/api-router.ts— error yang dilempar handler route dulu lolos ke handler SSR dan kembali sebagai halaman HTML 500, sehinggares.json()di klien gagal pada HTML-nya alih-alih menampilkan pesan aslinya. Sekarang handler dibungkus dan membalas JSON{"error": …}500 sekaligus mencatat penyebabnya di log server.
Verifikasi
bun run typecheckbersih dan build produksi (bun run build:server) hijau.verify-api.tsnaik 35 → 41 check dengan bagian G yang mereproduksi kegagalan FK hapus project. Bukti bahwa check-nya benar-benar menangkap kelas bug ini: dengan perbaikan di-revert sementara, bagian G gagal 5 check (status=500,FOREIGN KEY constraint failed, thread/baris index tertinggal); setelah perbaikan dipasang kembali, hijau.verify-schema-repair.ts— 11 check;GET /api/projects/:id/rtmpada DB yang dipulihkan menjawab 200.- Bump
0.1.45 → 0.1.46.
macOS: kalau muncul "Onesist is damaged and can't be opened" setelah app dipindah ke /Applications, jalankan sekali:
xattr -cr /Applications/Onesist.app
Detailnya di #3.