← Kembali ke katalog

Changelog

Riwayat perubahan Biblioteka Departemen Filsafat UI

v2.10.0Email terima kasih saat buku dikembalikanCurrent version11 Oktober 20261 fitur baru
  • Peminjam yang mengisi alamat email di formulir pinjam kini menerima ucapan terima kasih otomatis saat bukunya dikembalikan.
  • Peminjam yang tidak mengisi email tidak terpengaruh. Email ini dikirim otomatis dan tidak perlu dibalas.
Rincian teknis
  • src/loans/thank-you.ts: email HTML dikirim lewat API pengirim email setelah transaksi returnLoan selesai. Kegagalan kirim tidak membatalkan pengembalian.
  • Kode aksi baru di log aktivitas: LOAN_THANKYOU_SENT dan LOAN_THANKYOU_FAILED, lengkap dengan label.

3 commit di rilis ini

  • 6f20053 docs: tulis ulang README (versioning dan alur rilis); chore: entri changelog v2.9.0
  • 957592b feat: email terima kasih ke peminjam saat buku dikembalikan (opsional, tanpa balasan)
  • 43f13a8 style: email terima kasih berbentuk HTML (seragam dengan template auth)
Lihat perbandingan di GitHub
v2.9.0Halaman Changelog11 Oktober 20261 fitur baru
  • Ada halaman Changelog yang memuat riwayat perubahan, dikelompokkan per versi dan dapat dibuka satu per satu.
  • Setiap versi menampilkan tanggal, ringkasan, dan penanda Fitur baru. Rincian teknis dan daftar commit dapat dibuka dari tiap versi.
  • Tautan Changelog tersedia di kolom Menu pada footer.
Rincian teknis
  • Rute /changelog (noindex, tidak masuk sitemap). Data ringkasan ditulis tangan di src/data/changelog.ts; tanggal dan daftar commit dihasilkan dari tag git lewat scripts/changelog-git.mjs.
  • Penomoran versi kini mengikuti deploy produksi: tiap deploy mendapat tag, 45 tag lama diganti dan riwayat dari v2.0.0 sampai v2.8.6 dinomori ulang.

2 commit di rilis ini

  • 76d1131 feat: halaman /changelog (pohon versi, noindex)
  • 84eab09 chore: changelog per deploy produksi (48 rilis), penanda fitur baru dan current version
Lihat perbandingan di GitHub
v2.8.0Skema feedback publik10 Oktober 20262 fitur baru
  • Fondasi data untuk fitur feedback publik. Belum ada perubahan tampilan.
Rincian teknis
  • Migrasi 0016: tabel feedback dan feedback_votes (RLS aktif). RLS tabel feature_requests kini tercatat di skema.

1 commit di rilis ini

  • 288cd67 feat: skema feedback publik (feedback, feedback_votes), RLS feature_requests dicatat di skema
Lihat perbandingan di GitHub
v2.8.6Data changelog dan perapian11 Oktober 2026
  • Persiapan halaman changelog dan perapian kode. Tidak ada perubahan tampilan.
Rincian teknis
  • Data changelog (ringkasan dan daftar commit per rilis) beserta skrip generator dari tag git.
  • Komentar berlebih di schema.ts dipangkas.

3 commit di rilis ini

  • 403f00f feat: data changelog (ringkasan awam + catatan teknis) dan skrip generator daftar commit dari tag
  • 65f25a8 chore: changelog mengikuti skema versi v2
  • 488a727 chore: pangkas komentar schema.ts
Lihat perbandingan di GitHub
v2.8.5Halaman admin Feedback PublikFitur baru10 Oktober 2026
  • Admin membaca kiriman di halaman Feedback Publik, lengkap dengan status berwarna.
  • Saran yang didukung dua admin naik menjadi perlu perhatian, lalu superadmin dapat meneruskannya sebagai request fitur.
Rincian teknis
  • Halaman /admin/feedback: daftar, vote, ubah status, dan teruskan menjadi request fitur. Menu Kelola mendapat tautan Feedback Publik.
  • Kode aksi log: FEEDBACK_VOTE, FEEDBACK_STATUS, FEEDBACK_PROMOTE. Log IP yang tidak terbaca disederhanakan.

2 commit di rilis ini

  • c9fda55 chore: sederhanakan log IP tak terbaca di submitFeedback
  • d6da3ce feat: halaman admin /admin/feedback (daftar, vote, status, teruskan jadi request), warna status
Lihat perbandingan di GitHub
v2.8.4Pembatas feedback tetap bekerja saat alamat tidak terbaca10 Oktober 2026
  • Pembatas kiriman feedback tidak lagi terlewati ketika alamat pengunjung tidak dapat dibaca.
Rincian teknis
  • Pembatas gagal-tertutup: alamat yang tidak terbaca masuk satu bucket bersama dengan batas tersendiri, bukan dilewati.

1 commit di rilis ini

  • 7f647a4 fix: pembatas feedback gagal-tertutup saat IP tidak terbaca (bucket unknown 20/jam), log nama header untuk diagnosis
Lihat perbandingan di GitHub
v2.8.3Halaman Kirim FeedbackFitur baru10 Oktober 2026
  • Pengunjung dapat mengirim saran, koreksi data buku, atau usul buku lewat halaman Kirim Feedback, tanpa perlu masuk.
  • Dari halaman sebuah buku, tautan Laporkan koreksi membuka formulir dengan buku itu sudah terisi.
Rincian teknis
  • Halaman publik /feedback (parameter book dan jenis), tautan dari modal buku dan kolom Menu footer. Kontak pengirim opsional dan tidak ada balasan email otomatis.

1 commit di rilis ini

  • 61c1bd6 feat: halaman publik /feedback, tautan dari modal buku dan footer
Lihat perbandingan di GitHub
v2.8.2Fungsi admin feedback10 Oktober 2026
  • Bagian belakang pengelolaan feedback untuk admin. Belum ada perubahan tampilan.
Rincian teknis
  • Fungsi server untuk daftar, vote, ubah status, dan meneruskan saran menjadi request fitur; semuanya tercatat di log aktivitas.

1 commit di rilis ini

  • b5161f5 feat: fungsi admin feedback (daftar, vote, status, teruskan jadi request fitur)
Lihat perbandingan di GitHub
v2.8.1Pengiriman feedback dengan perlindungan spam10 Oktober 2026
  • Bagian belakang pengiriman feedback beserta perlindungan dari spam. Belum ada perubahan tampilan.
Rincian teknis
  • submitFeedback (publik): kolom jebakan tersembunyi, pembatas kiriman per IP (IP hanya disimpan sebagai hash), dan validasi panjang input.

1 commit di rilis ini

  • 4713e3f feat: submitFeedback (publik; honeypot, pembatas 3/jam per ip_hash, validasi zod)
Lihat perbandingan di GitHub
v2.7.0Ganti email di profil10 Oktober 20263 fitur baru
  • Admin dapat mengganti email dari halaman profil. Tautan konfirmasi dikirim ke alamat yang baru.
Rincian teknis
  • Password saat ini diverifikasi, lalu halaman /admin/confirm-email menukar token; admin_profiles.email ikut disinkronkan.
  • Kode aksi log: EMAIL_CHANGE_REQUEST dan EMAIL_CHANGE.

1 commit di rilis ini

  • 8311a4c feat: ganti email di profil (konfirmasi ke alamat baru, password wajib, sinkron admin_profiles)
Lihat perbandingan di GitHub
v2.7.3Request fitur untuk adminFitur baru10 Oktober 2026
  • Ada halaman Request Fitur untuk mengirim usulan fitur atau perbaikan langsung ke developer.
Rincian teknis
  • Migrasi 0015: tabel feature_requests. Pengirim selalu dari sesi; hanya developer yang dapat menanggapi.
  • Kode aksi log: REQUEST_CREATE, REQUEST_UPDATE, REQUEST_DELETE, REQUEST_RESPOND.

1 commit di rilis ini

  • 2c5ae71 feat: request fitur admin (tiket ke developer, role developer)
Lihat perbandingan di GitHub
v2.7.2Peran developerFitur baru10 Oktober 2026
  • Ada peran developer di samping admin dan superadmin.
Rincian teknis
  • Migrasi 0014: kolom is_developer dan guard requireDeveloper.
  • Komentar di guards dan blok request di skema dipangkas.

2 commit di rilis ini

  • 064d5c2 docs: pangkas komentar guards dan loan/maintenance requests
  • 9379cd2 feat: role developer (kolom is_developer, requireDeveloper)
Lihat perbandingan di GitHub
v2.7.1Perbaikan tautan konfirmasi ganti email10 Oktober 2026
  • Tautan konfirmasi ganti email kini dapat dipakai dengan benar, juga dari perangkat lain.
Rincian teknis
  • Permintaan ganti email lewat client Supabase terisolasi, sehingga token tidak berawalan pkce dan dapat ditukar di server.

1 commit di rilis ini

  • 49ed75d fix: ganti email lewat client terisolasi (token tanpa pkce, bisa ditukar di server)
Lihat perbandingan di GitHub
v2.6.0Penyeragaman nama Biblioteka10 Oktober 2026
  • Nama Biblioteka Filsafat UI diseragamkan di seluruh tampilan, dan judul serta deskripsi di mesin pencari diperpendek.
Rincian teknis
  • Heading, footer, dan judul serta deskripsi SEO beranda dan halaman Informasi diperbarui.

1 commit di rilis ini

  • d952f28 chore: seragamkan nama Biblioteka (Filsafat UI) di UI dan perpendek judul/deskripsi SEO beranda dan informasi
Lihat perbandingan di GitHub
v2.6.5Pembaruan keamanan pustaka10 Oktober 2026
  • Pembaruan keamanan pada pustaka pendukung.
Rincian teknis
  • npm audit fix tanpa --force.

1 commit di rilis ini

  • 10da019 chore: npm audit fix (tanpa --force)
Lihat perbandingan di GitHub
v2.6.4Statistik kunjungan10 Oktober 2026
  • Statistik kunjungan situs mulai dicatat.
Rincian teknis
  • Vercel Web Analytics dipasang di root aplikasi.

1 commit di rilis ini

  • d0f8a0f Install Vercel Web Analytics
Lihat perbandingan di GitHub
v2.6.3Label aksi Bahasa Indonesia di halaman Activity10 Oktober 2026
  • Halaman Activity menampilkan nama aksi dalam Bahasa Indonesia.
Rincian teknis
  • Peta label di action-labels.ts; nilai filter tetap kode aksi asli.

1 commit di rilis ini

  • 8753666 feat: label bahasa Indonesia untuk kode aksi di halaman activity
Lihat perbandingan di GitHub
v2.6.2Perbaikan skema pengajuan10 Oktober 2026
  • Akun admin yang pernah mengajukan permintaan kini dapat dihapus tanpa masalah.
Rincian teknis
  • Migrasi 0013: requested_by pada category_requests dan delete_requests menjadi nullable, selaras dengan FK set null.
  • Komentar keliru pada deleteBook diperbaiki.

2 commit di rilis ini

  • 3d13661 docs: hapus komentar deleteBook yang keliru (loans.book_id set null, bukan cascade)
  • fda4309 fix: requested_by di category_requests dan delete_requests nullable (selaras FK set null)
Lihat perbandingan di GitHub
v2.6.1Logo dan gambar pratinjau10 Oktober 2026
  • Logo dan ikon baru. Tautan yang dibagikan, misalnya lewat WhatsApp, menampilkan gambar pratinjau.
Rincian teknis
  • favicon-32, icon-192, apple-touch-icon, dan og-image 1200x630. favicon.svg lama (gambar JPEG yang dibungkus tag SVG) dan drizzle.svg dihapus.

1 commit di rilis ini

  • fa12647 feat: logo png (favicon, apple-touch-icon, og:image 1200x630), hapus favicon.svg jpeg-berbungkus-svg dan drizzle.svg
Lihat perbandingan di GitHub
v2.5.0SEO dasar10 Oktober 20262 fitur baru
  • Perpustakaan lebih mudah ditemukan di mesin pencari.
Rincian teknis
  • Bahasa halaman id, canonical, Open Graph, dan nosnippet pada footer.

1 commit di rilis ini

  • cb29f1b feat: seo dasar (lang id, canonical, og, nosnippet footer)
Lihat perbandingan di GitHub
v2.5.4Prosedur darurat lupa password10 Oktober 2026
  • Dokumentasi prosedur darurat lupa password disesuaikan dengan fitur reset mandiri. Tidak ada perubahan tampilan.
Rincian teknis
  • README memuat reset mandiri sebagai jalur utama dan dashboard Supabase sebagai jalur cadangan.

1 commit di rilis ini

  • cafd254 docs: prosedur darurat lupa password mengikuti alur reset mandiri
Lihat perbandingan di GitHub
v2.5.3Tautan reset password yang tidak berlaku ditolak sejak awal10 Oktober 2026
  • Tautan reset password yang sudah dipakai atau kedaluwarsa langsung menampilkan pesan tidak valid, tanpa form.
Rincian teknis
  • Loader halaman reset memeriksa tabel token sebelum menampilkan form; penentu akhir tetap verifikasi token saat password dikirim.

1 commit di rilis ini

  • 28753d4 feat: tautan reset password yang sudah dipakai atau kedaluwarsa langsung ditolak saat halaman dibuka
Lihat perbandingan di GitHub
v2.5.2Reset password mandiriFitur baru10 Oktober 2026
  • Admin yang lupa password dapat mengaturnya ulang sendiri lewat email, tanpa menunggu bantuan.
Rincian teknis
  • Halaman lupa dan reset password; admin dipilih dari daftar nama, bukan mengetik email. Token ditukar di server saat form dikirim, dan semua sesi admin itu dicabut setelah sukses.
  • Alias rute /signin, /signup, dan /forgot-password. Kode aksi log baru: RESET_PASSWORD_REQUEST dan RESET_PASSWORD.

1 commit di rilis ini

  • 9fa859a feat: reset password mandiri, halaman lupa/reset password, alias /signin /signup /forgot-password
Lihat perbandingan di GitHub
v2.5.1Halaman InformasiFitur baru10 Oktober 2026
  • Halaman Informasi memuat lokasi, jam buka, cara pinjam, tata tertib, dan petugas yang bertugas hari ini.
Rincian teknis
  • Data petugas dibaca dari src/data/petugas.ts. Nama alternatif perpustakaan ditambahkan untuk SEO.

1 commit di rilis ini

  • 017be84 feat: halaman informasi biblioteka + seo nama alternatif
Lihat perbandingan di GitHub
v2.4.0Pohon kategori dan kategorisasi massal10 Oktober 20261 fitur baru
  • Kategori buku kini berbentuk pohon: kategori utama dengan subkategori, maksimal tiga tingkat.
  • Superadmin dapat mengelola kategori dan mengkategorikan banyak buku sekaligus. Buku boleh disimpan tanpa kategori.
  • Di katalog, daftar kategori tampil sebagai pohon yang dapat dibuka dan ditutup.
Rincian teknis
  • Migrasi 0012: categories mendapat kind, parent_id, dan urutan; unique (kind, parent_id, nama). Kategori utama buku di books.kategori_id dan dicerminkan di book_categories; tag memakai baris dengan kind tag.
  • Filter kategori ikut memuat turunan lewat recursive CTE. Kontrak form buku berubah dari categoryIds menjadi kategoriId dan tagIds.
  • Kategorisasi massal maksimal 200 buku per proses. Log baru: CATEGORY_* dan BOOK_BULK_CATEGORIZE.

2 commit di rilis ini

  • 1c0a157 feat: pohon kategori, kelola kategori, kategorisasi massal, form buku
  • 9fdbdf6 feat: filter kategori publik berbentuk pohon, sembunyikan tag
Lihat perbandingan di GitHub
v2.4.2Daftar kategori diciutkan di HP10 Oktober 2026
  • Di HP, daftar kategori diciutkan supaya hasil buku tidak terdorong ke bawah.
Rincian teknis
  • Daftar kategori katalog publik berbentuk tombol yang menutup otomatis setelah memilih; tampilan desktop tidak berubah.

1 commit di rilis ini

  • b5b6103 feat: daftar kategori katalog publik diciutkan di mobile
Lihat perbandingan di GitHub
v2.4.1Jalur kategori di kartu dan daftar10 Oktober 2026
  • Kartu dan daftar buku menampilkan jalur kategori lengkap.
Rincian teknis
  • Chip kategori menampilkan jalur dari induk ke anak; komentar berlebih dihapus.

1 commit di rilis ini

  • ff4059a refactor: jalur kategori di kartu dan daftar, hapus komentar berlebih
Lihat perbandingan di GitHub
v2.3.0Pembaruan keamanan5 Oktober 20262 fitur baru
  • Pembaruan keamanan pada kerangka aplikasi.
Rincian teknis
  • TanStack Start dinaikkan ke versi yang sudah ditambal dan router-core diselaraskan.

1 commit di rilis ini

  • f990f40 chore: upgrade TanStack Start to patched version (CVE-2026-102989), align router-core
Lihat perbandingan di GitHub
v2.3.3Maintenance katalog-sajaFitur baru6 Oktober 2026
  • Admin dapat mengajukan maintenance yang hanya menutup katalog publik; setelah disetujui superadmin, halaman admin tetap dapat dipakai.
Rincian teknis
  • Migrasi 0011: tabel maintenance_requests. Penutupan penuh lewat pengaturan server tetap berlaku dan mengalahkan pengaturan di database.

1 commit di rilis ini

  • de18d07 feat: maintenance katalog-saja dengan persetujuan superadmin
Lihat perbandingan di GitHub
v2.3.2Urutan judul alami dan urutan rak fisikFitur baru5 Oktober 2026
  • Judul buku diurutkan secara alami (Jilid 2 sebelum Jilid 10), dan Inventory Check dapat diurutkan menurut rak fisik atau jumlah.
Rincian teknis
  • Migrasi 0010: collation natural_sort (ICU). Tombol urutan di Inventory Check.

1 commit di rilis ini

  • fa57ed4 fix: natural sort judul, urutan fisik rak, toggle urutan di inventory check
Lihat perbandingan di GitHub
v2.3.1Teks halaman maintenance5 Oktober 2026
  • Pesan di halaman maintenance diperbarui.
Rincian teknis
  • Teks halaman /maintenance diubah.

1 commit di rilis ini

  • 97a42cb update message on maintenance mode
Lihat perbandingan di GitHub
v2.2.0Mode maintenance22 September 20262 fitur baru
  • Situs dapat ditutup sementara untuk perawatan; pengunjung melihat halaman pemberitahuan.
Rincian teknis
  • Semua rute dialihkan ke /maintenance selama mode maintenance aktif.

1 commit di rilis ini

  • ad7c9bf Maintenance mode: redirect semua route ke /maintenance via env var MAINTENANCE_MODE
Lihat perbandingan di GitHub
v2.2.8Dokumentasi dan perapian repo1 Oktober 2026
  • Dokumentasi proyek ditulis ulang. Tidak ada perubahan tampilan.
Rincian teknis
  • README diganti dengan dokumentasi proyek V2, file dump database diabaikan git, dan routeTree diregenerasi untuk rute sitemap.xml.

3 commit di rilis ini

  • 52d2481 chore: regenerate routeTree untuk route sitemap.xml
  • f235076 chore: abaikan file *.dump (backup database)
  • 153cb00 docs: ganti README scaffold dengan dokumentasi proyek V2
Lihat perbandingan di GitHub
v2.2.7Perbaikan form edit buku23 September 2026
  • Form edit buku kini selalu menampilkan data buku yang benar setelah data selesai dimuat.
Rincian teknis
  • BookForm dipasang ulang saat data edit selesai di-refetch.

1 commit di rilis ini

  • c4dea1b fix(books): remount BookForm saat data edit selesai di-refetch
Lihat perbandingan di GitHub
v2.2.6Perbaikan pengajuan hapus buku ganda23 September 2026
  • Buku yang sudah punya pengajuan hapus yang menunggu kini dikenali dengan benar.
Rincian teknis
  • Kode error unique_violation dibaca dari DrizzleQueryError.cause saat memeriksa pengajuan hapus yang masih pending.

1 commit di rilis ini

  • e14f3df fix(books): unwrap DrizzleQueryError.cause.code saat cek unique_violation pending delete-request
Lihat perbandingan di GitHub
v2.2.5Pencarian lintas rak di Inventory CheckFitur baru22 September 2026
  • Inventory Check dapat mencari buku di semua rak sekaligus.
Rincian teknis
  • Pencarian buku lintas rak ditambahkan di halaman inventory check.

1 commit di rilis ini

  • 7388ddd feat(inventory): search buku lintas rak di halaman inventory check
Lihat perbandingan di GitHub
v2.2.4robots.txt dan sitemap22 September 2026
  • Mesin pencari kini mendapat petunjuk halaman mana yang boleh dibaca, beserta daftar halaman setiap buku.
Rincian teknis
  • robots.txt statis dan sitemap.xml dinamis yang memuat tiap buku.

1 commit di rilis ini

  • 935776e feat(seo): robots.txt statis + sitemap.xml dinamis per-buku
Lihat perbandingan di GitHub
v2.2.3Alamat lama dialihkan ke domain baru22 September 2026
  • Alamat lama vercel.app kini otomatis diarahkan ke biblioteka.filsafatui.app.
Rincian teknis
  • Redirect 301 dari domain bawaan Vercel ke domain utama.

1 commit di rilis ini

  • f1f9645 feat: 301 redirect domain default vercel.app ke biblioteka.filsafatui.app
Lihat perbandingan di GitHub
v2.2.2Judul dan pratinjau per buku untuk mesin pencari22 September 2026
  • Setiap buku punya judul dan pratinjau sendiri saat muncul di mesin pencari atau dibagikan.
Rincian teknis
  • SSR title dan meta per buku lewat loader dan head pada halaman katalog.

1 commit di rilis ini

  • eb17aab feat(catalog): SSR title/meta per buku via loader+head untuk SEO
Lihat perbandingan di GitHub
v2.2.1Perbaikan keluar dari mode maintenance22 September 2026
  • Pengunjung tidak lagi tertahan di halaman pemberitahuan setelah perawatan selesai.
Rincian teknis
  • Redirect keluar dari /maintenance saat mode maintenance dimatikan.

1 commit di rilis ini

  • d7e5455 Fix: redirect keluar dari /maintenance saat MAINTENANCE_MODE dimatikan
Lihat perbandingan di GitHub
v2.1.0Rebrand Perpustakaan Departemen Filsafat21 September 20261 fitur baru
  • Nama dan tampilan diperbarui, dengan logo ikon di header admin.
Rincian teknis
  • Judul katalog, subtitle, dan title tab diganti; favicon dan logo ikon di AdminHeader.

1 commit di rilis ini

  • fcbf2f6 Rebrand: Perpustakaan Departemen Filsafat (judul katalog, subtitle, title tab), favicon, logo ikon di AdminHeader
Lihat perbandingan di GitHub
v2.1.4Nama Biblioteka Departemen Filsafat UI21 September 2026
  • Nama di judul halaman, tab browser, halaman login, dan header admin diganti menjadi Biblioteka Departemen Filsafat UI.
Rincian teknis
  • Heading, title tab, halaman login, dan AdminHeader diperbarui.

1 commit di rilis ini

  • 1c777e9 Rebrand: Biblioteka Departemen Filsafat UI (heading, title tab, login, AdminHeader), hapus link admin di bawah katalog, footer: Koleksi Buku
Lihat perbandingan di GitHub
v2.1.3FooterFitur baru21 September 2026
  • Ada footer di semua halaman dengan menu, tautan masuk admin, dan kredit pembuat. Tautan masuk admin dipindahkan dari bawah katalog ke footer.
Rincian teknis
  • Komponen Footer dengan kolom Menu, tautan admin, dan kredit.

1 commit di rilis ini

  • 4a36af2 Alias /login, halaman 404, footer (menu, link admin, kredit Hexadev Technologies)
Lihat perbandingan di GitHub
v2.1.2Alamat pendek /login dan halaman 40421 September 2026
  • Alamat /login membuka halaman masuk admin. Alamat yang tidak ada kini menampilkan halaman 404.
Rincian teknis
  • Alias /login ke /admin/login dan notFoundComponent di root.

1 commit di rilis ini

  • d9cabeb Alias /login ke /admin/login, halaman 404 (notFoundComponent di root)
Lihat perbandingan di GitHub
v2.1.1Pesan login yang lebih jelas21 September 2026
  • Email yang belum dikonfirmasi atau terlalu banyak percobaan tidak lagi dikira salah password.
Rincian teknis
  • loginErrorMessage memetakan kode error Supabase (email_not_confirmed, over_request_rate_limit) ke pesan yang jelas; kode aslinya tetap dicatat pada log LOGIN_FAILED.

1 commit di rilis ini

  • 79a543a Login: pesan jelas untuk email belum dikonfirmasi dan rate limit, bukan selalu 'Password salah'
Lihat perbandingan di GitHub
v2.0.0Deploy pertama: log aktivitas, sesi admin, profil, halaman Activity21 September 20261 fitur baru
  • Rilis pertama yang tayang di produksi. Seluruh pekerjaan pra-rilis (katalog, kelola buku, peminjaman, cek inventaris) ikut tayang bersama versi ini.
  • Setiap tindakan admin tercatat di log aktivitas: siapa, kapan, dan apa. Superadmin dapat membacanya di halaman Activity.
  • Sesi admin dibatasi 8 jam. Ada halaman profil untuk mengubah nama, nomor WhatsApp, dan password.
Rincian teknis
  • logActivity(tx, actor, entry) dipasang di 14 mutation dan ditulis dalam transaksi yang sama dengan aksinya. Aktor selalu dari sesi tervalidasi, bukan dari request body.
  • Log autentikasi: LOGIN, LOGOUT, LOGIN_FAILED, SIGNUP_ADMIN. Batas sesi 8 jam diperiksa server lewat auth.sessions, dan rute /admin dijaga di sisi route.
  • Migrasi 0009: kolom no_whatsapp. Halaman /admin/activity khusus superadmin dengan filter aksi dan paginasi.

8 commit di rilis ini

  • 4138c8e Fase 3: activity-log baru (aktor dari sesi tervalidasi, ditulis dalam transaksi) di 14 mutation
  • efe470f Rapikan activity-log: cabut fallback posisi dari tabel stok (buku tanpa rak memang belum punya posisi)
  • e4077e9 Fase 3: batas sesi admin 8 jam (dicek server lewat auth.sessions) + guard route /admin + redirect login + pesan error daftar admin
  • a135c17 Fase 3: log LOGIN/LOGOUT/LOGIN_FAILED (maks 3/menit) + SIGNUP_ADMIN, logout scope local
  • 11d0b7f Fase 3: kolom no_whatsapp di admin_profiles (migrasi 0009)
  • a96e717 Fase 3: halaman profil admin (nama, WhatsApp, ganti password), id dari sesi
  • adbbf3c Signup: tampilkan pesan validasi sebagai kalimat biasa
  • 664207c Fase 3: halaman /admin/activity (baca activity log, superadmin-only, filter aksi + pagination)
Lihat perbandingan di GitHub
v2.0.1Perbaikan cookie sesi21 September 2026
  • Perbaikan keamanan pada pengaturan cookie sesi login.
Rincian teknis
  • Pengaturan cookie sesi login diperkuat pada client Supabase di sisi server.

1 commit di rilis ini

  • f521fc6 Fix: teruskan cookie options (httpOnly, secure) ke setCookie sesi Supabase
Lihat perbandingan di GitHub
Pra-rilis3 versi
v2.0.0-pre.3Peminjaman, cek inventaris, pengajuan kategoriFitur baru19 September 2026
  • Peminjaman: mahasiswa dan dosen mengajukan dari halaman buku, lalu petugas menyetujui dan mencatat pengembalian.
  • Cek inventaris untuk mencocokkan jumlah buku di sistem dengan yang ada di rak.
  • Admin dapat mengajukan kategori baru untuk disetujui superadmin.
  • Menu admin dikelompokkan, menyesuaikan peran, dan nyaman dipakai di HP.
Rincian teknis
  • Tabel loan_requests dan category_requests, alur persetujuan peminjaman, dan alokasi stok per posisi rak.
  • Inventory check dengan koreksi jumlah yang langsung tersimpan.
  • Navbar admin berupa dropdown berkelompok dan kondisional per peran. Perbaikan: referensi db tidak lagi berada di level atas modul books/admin.

5 commit di rilis ini

  • 392f088 Fase 2: category_requests approval workflow
  • b5e3d2c Fase 2: fitur peminjaman (loan_requests) end-to-end
  • 659abfb Fix: hindari referensi 'db' di top-level type books/admin.ts
  • 361e82a Fase 2: fitur inventory check
  • 097e01d Fase 2: navbar admin (grouped dropdown, conditional per role) + fix responsive mobile
Lihat perbandingan di GitHub
v2.0.0-pre.2Katalog publik dan kelola bukuFitur baru17 September 2026
  • Katalog publik dibuka: cari buku, saring kategori, dan buka detail buku lewat tautan yang dapat dibagikan.
  • Admin dapat menambah dan mengubah buku; penghapusan diajukan lalu disetujui superadmin.
  • Tampilan katalog dirancang ulang: warna aksen, header, kartu, dan jendela detail buku.
  • Nama peminjam sengaja tidak pernah ditampilkan di katalog publik.
Rincian teknis
  • Server function katalog read-only, dan detail buku sebagai modal dengan parameter ?book=id.
  • Kolom legacy pada posisi dan books serta tabel activity_logs untuk migrasi data V1.
  • CRUD buku dan alur persetujuan hapus (delete_requests).
  • Keputusan privasi: katalog publik hanya mengekspos boolean isDipinjam.

9 commit di rilis ini

  • 16596d7 Add read-only katalog buku server functions (Fase 1)
  • c0c80bc add catalog for public, still needs to be fix and repaired
  • cf2b490 Fase 1: add posisi/books legacy columns and activity_logs table for V1 data migration
  • a7356f9 docs: document deliberate privacy decision — nama_peminjam not exposed in public catalog API
  • cea0759 Fase 1: implement catalog UI design decisions (accent color, masthead header, sidebar search, page size dropdown)
  • 4a7bcd7 Fase 1: convert book detail to shareable modal (?book=id), fix category sidebar (top-N + search, drop unused grouping)
  • 0397519 Fase 2: CRUD buku (create/update/delete) + delete-request approval workflow
  • 652e8ed Fase 1: batasi tinggi sidebar kategori dengan scroll biar tidak melebihi grid buku
  • bedcf7a Fase 1: redesign card & modal buku
Lihat perbandingan di GitHub
v2.0.0-pre.1Fondasi: login admin dan persetujuan akunFitur baru15 September 2026
  • Fondasi sistem V2: admin dapat mendaftar dan masuk, dan akun baru aktif setelah disetujui superadmin.
  • Dashboard admin dengan statistik sederhana.
Rincian teknis
  • Repo V2 dimulai dengan TanStack Start, Drizzle, dan Supabase. Skema awal: books, loans, members, admin_profiles.
  • Guard otorisasi terpusat di server: requireSuperadmin dan requireApprovedAdmin.
  • Tes karakterisasi untuk logika alokasi stok V1 (allocateFromLargestStock, canCreateLoan). Bug approve-loan-request V1 didokumentasikan sebagai catatan desain Fase 2.

8 commit di rilis ini

  • 8fa7b11 chore: initialize V2 repository
  • a6c1fdf feat: initial drizzle schema (books, loans, members, admin_profiles)
  • 736ddb8 Phase 0: Supabase wiring, admin auth server functions, login flow working end-to-end
  • cc9641d Add centralized authorization guards (requireSuperadmin, requireApprovedAdmin)
  • 2fca997 Add admin signup + superadmin approval flow, plus shared AdminHeader with logout
  • 9f68a7e Add characterization tests for V1 stock allocation logic (allocateFromLargestStock, canCreateLoan)
  • 1e4385f Document V1 approve-loan-request bug (bypass allocation, no transaction) as Fase 2 design note
  • 985bc44 Fix missing getCurrentAdmin import in approval.ts; wire real dashboard with admin stats
Lihat perbandingan di GitHub