Skip to content

Releases: Hellowww-02/CraftLife

CraftLife v1.6.7

Choose a tag to compare

@Hellowww-02 Hellowww-02 released this 26 Sep 01:24
1741787

CraftLife v1.6.7 — "Performance & Polish" (26 Sep 2026)

An offline-first desktop RPG for real life. This release makes the app faster
to start, safer when a page crashes, and adds two requested features — Economy
Budgets and food favorites — plus a full polish sweep. Zero features removed;
existing databases upgrade in place.

✨ Highlights

⚡ Startup performance (D01)

  • Per-view code splitting: 24 lazy chunks instead of one 1,614 kB bundle.
  • Initial JS 1,614 → 444 kB (−72%), gzip 439 → 140 kB. Each page loads on
    demand behind the familiar skeleton — navigation feels identical.

🛡️ Crash safety (D02)

  • Bilingual error boundaries per view + a root safety net. A crashing page
    now shows a recovery panel (Reload view / Reload app + technical details)
    instead of a blank white screen. No data is ever touched.

💰 Economy Budgets (D03a)

  • New Budgets tab: monthly per-category spending limits (or * for all
    spending), with live progress, remaining balance, and
    On track / Almost over / Over budget states.
  • Budgets are included in tracker export/import.

🍱 Food favorites & recent (D03b)

  • Star any food to favorite it; new All / Favorites / Recent filters above
    the food grid. Recent shows your last 10 logged foods in order.
  • Favorites survive tracker export/import (custom and default foods).

✨ Polish sweep (D04)

  • Esc closes all 47 dialogs, drawers, and popovers (one shared hook).
  • Count-up animation on hero numbers (navbar gold, Economy balance),
    instant under reduced-motion.
  • Press ? anywhere for keyboard-shortcut help (also hinted in the palette).
  • Structural emoji in 16 sub-headers replaced with Lucide icons.

⌨️ Palette, notifications, music & a11y (E01–E04)

  • Palette: ↑↓ + Enter keyboard nav, Ctrl+1–9 quick pages, Pages/Actions
    sections, empty state, one-tap complete for Habits, Dailies & Quests.
  • Notification bell restored: unread badge, dropdown history, per-item
    and mark-all-read, Esc closes.
  • Music sleep timer: 15/30/60 min presets with live countdown; auto-pause.
  • Tab focus trapped inside all 13 major dialogs; ARIA roles on the
    palette, notifications, and dialog panels.

🍱 Catalog expansion + nutrition UX (F01–F03)

  • +50 foods: Nasi Campur Bali/Jawa, Sate Maranggi/Taichan/Ponorogo,
    Tongseng, Ayam Woku/Lodho/Pansuh, Mangut Lele, Ikan Arsik + more.
  • +50 drinks: Gayo/Toraja/Flores/Kintamani/Lanang coffees, Sanger,
    STMJ, Jamu Temulawak/Jahe Merah, Saraba, Es Palu Butung + more.
  • Catalog 774 → 874 entries, zero duplicates; old databases receive the
    new items automatically on next launch (custom foods/logs untouched).
  • Nutrition grid sortable by name / lowest calories / highest protein;
    ½×/1×/2× portion preset chips next to the portion input.

🔔 Productivity trio (G01–G03)

  • Reminder snooze: postpone the selected reminder by 10 min / 1 hour /
    tomorrow (repeat & sound preserved).
  • Pinnable notes: pin any note, pinned notes float to the top
    (new pinned column, auto-added, old databases unaffected).
  • Friend list search: instant client-side filter by name.

🔄 Migration & compatibility

  • Two additive tables (economy_budgets, user_food_favorites) created
    automatically on first launch; legacy databases keep every row.
  • One additive column (notes.pinned) plus 100 catalog items, both applied
    automatically on first launch; custom foods, notes, and logs untouched.
  • No Supabase migration (cloud optional, unaffected).
  • i18n: 4,409 → 4,454 keys, identical across all 4 sources, 0 missing.

📦 Install / update

  • New users: download craftlife-1.6.7.zip, extract, run CraftLife.exe.
  • Existing users: the in-app updater picks up v1.6.7 automatically.
  • Your craftlife.db upgrades itself on first launch — no action needed.

CraftLife v1.6.5

Choose a tag to compare

@Hellowww-02 Hellowww-02 released this 23 Sep 14:05
28f4ee0

CraftLife v1.6.5 — "Food Database Update" (23 Sep 2026)

An offline-first desktop RPG for real life. This release cleans up and expands
the food database: zero duplicates, corrected nutrition values, and 33 new
Indonesian snacks and drinks. Existing databases migrate in place — food logs
and custom foods are preserved.

✨ Highlights

🍱 Deduplicated catalog (850 → 774)

  • 89 duplicate groups merged into single canonical entries — Nasi Uduk, Es
    Teler, Pecel Lele, Gudeg, Martabak, and 84 more.
  • 3 semantic duplicates merged by meaning (Kopi Susu Aren, Yogurt Greek,
    Es Soda Gembira); your logs follow the surviving entry automatically.

🔬 Corrected nutrition values

  • Kerupuk Udang / Ikan / Kulit were stored per 100 g — now honest per-serving
    values (~65–80 kcal).
  • 6 more fixes: Soda, Susu Almond, Bir Pletok, Cocoa Powder, Sayur Nangka,
    Dark Chocolate.
  • Every entry verified: macros (4·P + 4·C + 9·F) match stated calories, except
    two alcohol-containing coffees where the gap is the alcohol itself.

🍘 33 new items, each with Indonesian + English names

  • Kerupuk: Putih, Bawang, Mie, Kemplang, Amplang, Karak, Intip.
  • Ciki & street snacks: Pilus, Kacang Sukro/Atom/Telur/Mete, Makaroni Pedas,
    Mie Lidi, Basreng, Cimol, Keripik Ubi/Nangka, Kulit & Usus Krispi,
    Stik Keju, Permen Jelly, Popcorn Karamel, Tahu Bulat, Telur Gulung,
    Sempol, Cilor, Seblak Kering.
  • Drinks: Teh Botol Manis, Jus Jambu, Susu Jahe, Susu Pisang,
    Infused Water Lemon.

🔄 Safe in-place migration

  • Old databases sync to canonical values on first launch; only built-in rows
    are touched, custom foods never change.
  • Verified: 13/13 food harness checks green, full regression 416/416,
    live smoke 31/31.

📦 Install / update

  • New users: download craftlife-1.6.5.zip, extract, run CraftLife.exe.
  • Existing users: the in-app updater picks up v1.6.5 automatically
    (verified download, release notes, countdown dialog, logged apply).
  • Your craftlife.db upgrades itself on first launch — no action needed.

CraftLife v1.6.4

Choose a tag to compare

@Hellowww-02 Hellowww-02 released this 23 Sep 10:42
f74398a

CraftLife v1.6.4 — "Study & Stability" (23 Sep 2026)

An offline-first desktop RPG for real life. This release upgrades the Learning
space to a true NotebookLM-style workflow, makes habits and dates trustworthy,
adds database self-care, and ships an auto-updater that actually works.

✨ Highlights

📚 Learning (NotebookLM-style)

  • True 3-panel shell — Sources ‖ Chat ‖ Studio — with draggable splitters,
    collapsible panels, and mobile tabs.
  • Multi-file upload: 23 file types via picker or drag-and-drop, processed in
    sequence; originals are kept and can be re-downloaded or re-extracted.
  • Website and YouTube sources: auto-detected, cleaned, transcribed (dual API +
    oEmbed titles), each with a short AI guide.
  • 4 new Studio outputs — Briefing Doc, Data Table, Infographic, Slide Deck —
    with CSV/HTML export; chat answers can be saved as notes.
  • PDF pages and images are attached to Gemini for grounded answers; LaTeX math
    renders with KaTeX.

✅ Habits & date you can trust

  • Real fail streaks for habits (the old "resurrected 29-day" count is gone) and
    a done-today indicator that locks the Good/Bad buttons.
  • "Today" now ticks from the server clock and rolls over at midnight without a
    full reload; open pages follow along without disturbing custom date views.

🗄️ Database self-care

  • Scheduled auto-cleanup independent of retention, per-table sizes with totals,
    and one-click checkpoint/VACUUM with before/after reports.

🔄 Updater that works

  • Verified downloads with progress, release notes, a 15-second countdown
    dialog, and a logged, abort-safe apply step (a bad package can no longer
    overwrite your install).

🐛 Fixed

  • Habit streak showing a lifetime total after fail/reset (fatal).
  • Database sizes displayed as 0 B; first auto-clean never running.
  • Update errors swallowed silently (0% hang); staging layout mis-detected.
  • "Today" frozen at login; heartbeat reloaded the whole app every 60 seconds.

⬆️ Upgrade

  • From v1.6.3: updating is automatic — accept the in-app update dialog and
    restart. Your data (craftlife.db, .env, backups) is never touched.
  • Fresh install: download craftlife-1.6.4.zip below, extract anywhere, run
    CraftLife.exe (Windows 10+ x64, no internet required except cloud/AI/music).
  • Database migrates itself on first launch (new columns backfilled, old data
    preserved). No manual steps.

🔧 Technical appendix

  • 4,409 UI strings (Indonesian + English, fully synced).
  • SQLite migrations are automatic and idempotent; one optional Supabase
    migration ships for cloud installs (habits.fail_streak).
  • Verified: Python compile clean, tsc 0 errors, clean UI build,
    416 phase tests + 31 live-server smoke checks + 4-way i18n audit, all green.

CraftLife-1.6.3

Choose a tag to compare

@Hellowww-02 Hellowww-02 released this 16 Sep 13:49
9ec2eb3

CraftLife v1.6.3 — “Quality of Life+” · Release Notes

Versi: 1.6.3 · Nama rilis: “Quality of Life+” · Tanggal: 2026-09-16 · Channel: stable
Commit phase: A01–A14 (satu commit phase) · Basis: v1.6.0 “Quality of Life”

Status: ✅ FINAL — siap dipakai untuk GitHub Release v1.6.3.


📌 Ringkasan singkat

Rilis ini menutup empat area permintaan dan tiga bug fatal, semuanya dalam satu commit phase:

Area Perubahan Fase
🎵 Music Lirik mengikuti lagu saat trek berganti · pencarian lirik berkandidat + skor · import lirik manual terdokumentasi A01–A03
📥 Semua app Audit export/download (Qt WebEngine tidak punya handler downloadRequested) A03.5
📚 Learning Esai bisa dijawab (fatal) · dua counter PG/Essay (default 15 = 10 + 5) · satu dialog per tipe generator · hasil jadi daftar artefak · shell ala NotebookLM · sitasi sumber + grounding · podcast dua host · migrasi SDK google.genai A04–A08
💞 Love Space plans · memories/bucket · connection · cycle · gallery diprofesionalkan · overview jadi dashboard pasangan + Special Day → pengingat tahunan A09–A12
🏠 Home Year Wrapped memakai mata uang aktif user + i18n penuh + laporan yang bisa disalin/diunduh A13
📦 Rilis i18n sinkron 4 arah, versi, README, Release Notes, rekap fase, smoke S1–S10 A14

Angka rilis: +567 key i18n baru (3.757 → 4.324; +16 di antaranya dari A13) · 23 file ditimpa · 27 file kode baru ·
10 endpoint baru + parameter ?year= · 5 blok migrasi SQLite (auto-apply) + 3 migrasi Supabase opsional (cloud).


🎵 Music

A01 — Lirik otomatis mengikuti lagu yang diputar ✅

  • Lirik diperbarui setiap trek berganti (auto-advance, next/prev, klik dari mini-player) — dulu panel tertinggal di lagu lama.
  • Cache lirik per-lagu + guard balapan request (request lagu lama tidak menimpa lagu baru).
  • Header panel lirik menampilkan lagu aktif; auto-scroll baris lirik berhenti otomatis 3 detik bila digulir manual.

A02 — Perluasan & akurasi pencarian lirik ✅

  • Pencarian kandidat multi-sumber (LRCLIB get + search, lyrics.ovh, embedded tag) dengan skor.
  • Skor memakai album, toleransi durasi bertingkat (≤2 dtk +3 · ≤5 dtk +1,5 · >15 dtk −2) dan penalti versi live / remix / karaoke / cover.
  • Dialog pilih kandidat: album · durasi · badge SYNCED/PLAIN · skor · pratinjau 5 baris; pilihan user disimpan permanen (user-pick) dan tidak ditimpa pencarian web.
  • Batas library 80 → 500 (CRAFTLIFE_MUSIC_LIB_LIMIT), metadata batch untuk trek di luar listing, cache negatif 10 menit.

A03 — Import lirik manual terdokumentasi ✅

  • Dialog Import + Panduan dengan drop-zone .lrc/.txt dan template .lrc siap unduh.
  • Validasi sebelum simpan (baris bertimestamp, rentang waktu, jeda, metadata, 8 jenis peringatan).
  • Dukungan penuh [ar:] [ti:] [al:] [by:] [offset:±ms], multi-timestamp, baris jeda; ekspor .lrc bertimestamp atau .txt polos.

📥 Semua App

A03.5 — Audit & perbaikan SELURUH export/download ✅

  • Akar masalah: shell PyQt tidak pernah menyambungkan QWebEngineProfile.downloadRequested → semua unduhan dibuang diam-diam (tanpa berkas, tanpa pesan).
  • Kini ada DownloadManager: berkas masuk ke Downloads/CraftLife (nama unik nama (1).ext), toast menampilkan lokasi lengkap, tombol Buka folder unduhan di Settings → Manajemen Data (folder bisa diubah via CRAFTLIFE_DOWNLOAD_DIR).
  • Beres untuk: ekspor nutrisi (CSV/XLSX/DOCX/PDF*), ekspor tracker (JSON), ekspor studio (TXT), lampiran chat, template lirik, ekspor lirik.
    * PDF butuh reportlab; tanpa itu server otomatis memakai CSV.

📚 Learning

A04 — Kuis: jawaban essay diperbaiki + dua counter PG/Essay + skor komposit ✅

  • Bug fatal diperbaiki: soal esai tidak bisa diketik karena (1) penanda type/modelAnswer dibuang saat notebook di-refetch → soal esai tampil sebagai PG tanpa opsi, dan (2) textarea dikunci disabled begitu tombol Evaluate ditekan.
  • Dua counter terpisah: Pilihan Ganda dan Esai (default 10 + 5, total ≤ 30, preset 10/5 · 20/10 · 30/0 · 0/10); tombol Generate mati bila total 0 atau > 30, dan server tetap memotong aman bila payload datang dari luar UI.
  • Penilaian mandiri esai: ✅ Sesuai (1) · 🟡 Sebagian (0,5) · ❌ Belum (0) → skor komposit PG 4/10 · Essay 3,5/5 + persentase.
  • Jawaban tidak hilang lagi: kunci per ID soal (bukan indeks baris) + draft otomatis localStorage per notebook (cl_learning_quiz_draft_<nb>_<gen>).
  • Tombol Evaluasi ulang (tanpa menghapus jawaban), Retake, dan Lihat semua jawaban contoh.
  • Counter flashcard tetap terpisah (10–30 kartu).

A05 — Dialog konfigurasi per tipe generator Studio ✅

  • Setiap tipe punya dialog sendiri (ala Customize NotebookLM): klik kartu di panel Studio → dialog terbuka
    dengan opsi khusus tipe tersebut; tombol ⚡ di sisi kartu tetap bisa generate cepat dengan pengaturan terakhir.
  • Opsi per tipe: Quiz (PG/Esai + kesulitan + bahasa) · Flashcards (5–30 kartu, gaya Istilah→Definisi /
    Pertanyaan→Jawaban / Rumus→Arti) · Audio Overview (gaya host Santai/Formal/Diskusi kritis, panjang
    6–8 / 14–24 / 26–36 giliran, instruksi bebas) · Mind Map (kedalaman 1–3, cabang 3–8, sub 2–6) ·
    Study Guide (pilih bagian + 3–10 soal latihan) · FAQ (5–15 Q&A, jawaban Singkat/Detail) ·
    Timeline (harian/mingguan/bulanan/tahunan + tanggal absolut) · Summary (≤150 / 200–400 / 500–800 kata,
    Poin-poin / Naratif).
  • Ingat pengaturan per notebook (localStorage cl_learning_studio_cfg_<notebook>_<tipe>) + Reset ke default,
    ringkasan sumber di dalam dialog (n sumber · m kata), dan bagian Pengaturan lanjutan (fokus topik + instruksi bebas).
  • Semua nilai divalidasi ulang di server (whitelist + clamp rentang + pemangkasan teks), dan tanpa opsi apa pun
    perilaku lama tetap identik (zero-regression).

A06 — Hasil generate = daftar artefak rapi (list ke bawah) ✅

  • Semua hasil Studio kini tampil sebagai satu daftar artefak vertikal: judul (bisa diganti), badge tipe,
    waktu relatif, jumlah item (15 soal / 20 kartu / 18 giliran / 340 kata), ukuran berkas, tanda diedit.
  • Kontrol: filter per tipe (dengan hitungan), pencarian judul, urutan Terbaru/Terlama/Tipe, empty state.
  • Klik kartu → pratinjau isi langsung di bawah kartu (kuis + kunci jawaban, kartu, dialog podcast, JSON mind map, teks).
  • Aksi per kartu: Buka (tampilan interaktif) · Ganti nama · Ekspor .md · Ekspor .txt · Duplikat · Hapus.
    Ekspor menghasilkan berkas rapi di Downloads/CraftLife (kuis lengkap dengan kunci ✅ dan jawaban contoh esai).
  • Area pratinjau interaktif (kuis dikerjakan, kartu dibalik, podcast diputar) tetap ada dan bisa dilipat.
  • Perbaikan kecil menyeluruh: semua berkas unduhan kini dikirim dengan Content-Type yang benar
    (.md, .txt, .csv, .lrc, .xlsx, .docx, .pdf, gambar, audio) — sebelumnya selalu application/octet-stream.

A07 — Shell Learning ala NotebookLM ✅

Halaman Learning direstrukturisasi mengikuti tata letak NotebookLM namun tetap berciri CraftLife:

  • Rail notebook kiri (72 px → 220 px): daftar notebook dengan avatar inisial, tombol + Notebook,
    ganti nama & hapus notebook, navigasi Sumber / Chat / Studio, dan pemilih bahasa id/en.
  • Topbar dengan ganti nama notebook langsung di tempat, chip {n} sumber / {m} kata /
    status, serta tombol Ganti nama & Ekspor.
  • Kolom tengah Sumber ⇄ Chat: kartu sumber (ikon tipe, jumlah kata, tanggal, chip Dipakai/Tidak dipakai),
    pencarian, empty state; chat dengan 4 kartu saran saat kosong, balon pengguna/AI, kontrol font, dan klarifikasi.
  • Kolom kanan Studio: daftar artefak A06 + grid peluncur 8 generator A05, bisa dilebarkan/dilipat.
  • Drag-resize diganti preset: Sempit 320 / Sedang 420 / Lebar 560 + sembunyikan panel, tersimpan di
    localStorage cl_learning_layout, dengan migrasi otomatis dari cl_learning_panel_widths.
  • Responsif: <1024 px rail menjadi bottom-bar dan kolom menjadi tab penuh.
  • Tanpa backdrop-filter dan hanya transisi saat interaksi (taat aturan anti-flicker R10 pada WebEngine).
  • Seluruh fungsi Learning lama dipertahankan 100 % (notebook, sumber, chat, 8 generator, kuis & esai, kartu, podcast, ekspor).

Uji: 11 kasus logika tata letak · 10 kasus render komponen · 24/24 smoke live (:8899) · tsc 0 error · build bersih.
i18n: +30 key → 3.998 key (id + en).

A08 — Sitasi sumber, grounding, & podcast dua host ✅

Jawaban AI bisa dilacak ke sumbernya. Model menerima daftar sumber bernomor [S1], [S2], … dan
diminta menandai setiap klaim. Penanda itu berubah menjadi chip nomor yang bisa diklik di dalam balon
jawaban: popover menampilkan judul sumber + kutipan kalimat + tombol Buka sumber (isi penuh).
Di bawah balon ada baris ringkasan sitasi, dan chip tetap muncul setelah aplikasi di-restart
(kolom baru learning_chats.citations).

Anda yang menentukan sumber (grounding). Chip Dipakai / Tidak dipakai pada tiap kartu sumber
dikirim sebagai sourceIds saat bertanya dan saat generate materi — AI hanya memakai sumber yang dicentang.
Header chat menampilkan {n} dari {total} sumber dipakai, rail sumber punya tombol Pilih semua / Kosongkan.
Model yang lupa memberi sitasi tidak membuat error — jawaban tetap tampil.

Audio Overview: suara sesuai bahasa, pemutar interaktif. Pemutar lama memakai suara bawaan sistem
tanpa lang sehingga membaca teks Indonesia dengan suara Inggris. Sekarang transkrip diubah menjadi
berkas MP3 nyata dengan...

Read more

CraftLife-1.6.0

Choose a tag to compare

@Hellowww-02 Hellowww-02 released this 12 Sep 00:52
cfdac0d

⚒️ CraftLife v1.6.0 — “Quality of Life Release”

EN: This release ships 17 community-requested fixes & improvements — including 3 critical bug fixes (redeem codes, double-sent AI chat, couple tracking), global music playback, note attachments, and automatic monthly database cleanup.

Rilis v1.6.0 berisi 17 perbaikan yang Anda minta — termasuk 3 bug fatal — plus perawatan database otomatis biar aplikasi tetap ringan. Alur data tidak berubah: semua data tetap di file SQLite lokal milik Anda.


🚨 3 Bug fatal diperbaiki

Masalah Perbaikan
🧧 Kode redeem tidak memberi hadiah Penukaran kode kembali berfungsi — hadiah masuk, dan satu kode hanya bisa dipakai sekali per akun.
💬 Chat AI terkirim dobel Satu kirim = satu jawaban. Hemat token hingga 2× lipat.
💞 Fitur couple error / tidak terdeteksi Deteksi pasangan & tracking couple kembali normal, lengkap dengan badge status.

✨ 14 Perbaikan quality of life

🖱️ Input & Tampilan

  • 🔢 Input nominal mulus — backspace sampai kosong di saldo, tabungan, investasi, dll. tidak lagi “nyangkut”.
  • 🎨 Tema tersimpan permanen — restart aplikasi tidak kembali ke tema default.
  • 🦸 Warna avatar tampil di chip profil & navbar.
  • 📏 Tren tinggi badan 7 hari tidak lagi datar.

📝 Catatan & Belajar

  • 📝 Duplikat catatan tersimpan di folder & urutan yang sama — tanpa imbuhan “(copy)”.
  • 📎 Lampiran catatan — gambar / PDF / txt, maks 5 MB per file, tersimpan lokal per akun.
  • ∑ Palet simbol LaTeX — 7 kategori, klik untuk menyisipkan, dengan live preview.
  • 📂 Folder & Learning — ikon folder bisa diganti (task & SportTrack), jumlah soal quiz mengikuti counter, soal essay, dan panel Learning bisa di-resize.

🎵 Musik

  • 🎧 Musik tetap berputar saat pindah halaman — plus mini-player di navbar.
  • 🖥️ Halaman Musik pas satu layar — satu scroll utama (hero + daftar lagu), deck selalu terlihat.
  • 📜 Lirik akurat per detik — dicocokkan dengan durasi lagu, import file .lrc, offset ±0,5 detik, bisa disimpan.
  • 🖼️ Icon playlist khusus — emoji atau foto dari komputer (auto-resize ≤512px), plus indikator shuffle/repeat ON/OFF.
  • 🔇 Musik berhenti otomatis saat logout atau menutup aplikasi.

🧹 Perawatan Data

  • 🧹 Pembersihan database bulanan — hanya menghapus history tracker (retensi default 30 hari, bisa diatur 0/1/7/30/90), dengan backup otomatis sebelum menghapus, lalu VACUUM. Database tidak lagi membengkak tak terkendali.

📦 Cara update

Pengguna baru

  1. Download CraftLife-1.6.0.zip di bagian Assets di bawah.
  2. Ekstrak ke folder mana pun, jalankan CraftLife.exe. Tanpa Python, tanpa Node, tanpa installer.

Pengguna versi lama

  • Cukup buka aplikasi — updater akan mengunduh rilis ini di background dan memasangnya dengan verifikasi SHA-256. Ingin langsung? Buka Settings → Check for updates.

Data aman: file craftlife.db lokal tidak disentuh updater. 6 migrasi SQLite berjalan otomatis saat aplikasi pertama kali dibuka — tidak ada migrasi Supabase di rilis ini, pengguna cloud tidak perlu melakukan apa pun.

SHA-256 (CraftLife-1.6.0.zip): <tempel checksum di sini setelah zip dibuat>


✅ Sudah diuji

  • ✅ Kompilasi penuh — 17 modul Python · TypeScript 0 error · build frontend bersih
  • ✅ Smoke test live: register → redeem kode → duplikat catatan → lirik musik (sinkron) → pembersihan DB
  • ✅ i18n — 3.757 keys konsisten (id + en)

Full changelog: README — What's New · Rincian teknis per fase: UPDATES/2026-09-08-P47-P63-PHASE-SUMMARY.md

CraftLife-1.5.0

Choose a tag to compare

@Hellowww-02 Hellowww-02 released this 08 Sep 03:20
5be3dae

⚒️ CraftLife v1.5.0 — UI v2 "Craft Design System"

A brand-new skin, the same machine. The entire web interface has been rebuilt from the ground up
across 12 phases (U1–U12) into a custom-made design system — with zero changes to the backend,
game logic, data, translations, or database migrations. Your saves are 100% safe.

ID: Kulit baru, mesin tetap — seluruh tampilan direkonstruksi jadi sistem desain "Craft" buatan sendiri.
Nol perubahan backend/logika/data. Save kamu aman 100%.

⬇️ Download · 🎮 Feature Highlights · ⚡ Performance · 🩺 QA · 📋 Changelog


✨ The Short Version

🎨 What changed Every screen, every button, every card — rebuilt into a unified Craft Design System (±90 ct-* classes across 41 files)
🧠 What didn't Backend, game logic, handlers, i18n (3,694 keys), database schema (13 migrations) — untouched
🏆 Certified Contrast measured at 17.1:1 (WCAG AA needs 4.5:1) · tsc 0 errors · clean build · 20+ pages smoke-tested in a real WebEngine

🎮 Feature Highlights

🏰 A real design language, finally

  • Signature buttons with a 3D stem that physically presses down (primary · gold · success · danger · secondary · ghost)
  • Bevel cards with hover lift, sockets for icons, chips & segmented tabs, and one consistent dialog system (backdrop scrim + spring pop) across every modal in the app
  • Aurora background scene + XP orbs, adapted per theme — all static (see performance below)

📊 Pages, re-imagined

  • Dashboard — full reconstruction: summary panel, stat tiles, calendar widget, rank dialog
  • Task Core — habits/dailies/quests cards, difficulty badges (Epic glows purple), gold Quick-Add FAB, folder bar, drag-reorder intact
  • 🍅 Pomodoro — the timer is now a 230px progress ring that changes color with the phase (violet focus / green break)
  • 💧 Water tracker — liquid-gradient bar with a moving sheen; 🥗 nutrition tiles & BMI tools
  • 💰 Economy — accent-tinted hero tiles (income/expense/net) with glowing figures, segmented tabs, unified transaction cards
  • 🛒 Shop — gold-themed tabs, affordability states that are obvious without hovering, Minecraft-style 2×5 equip hotbar (empty = dashed slots, filled = glowing sockets)
  • ⚒️ Crafting — requirement checklist (✓ emerald / ✗ rose) readable at a glance
  • 🏆 Achievements — a museum: unlocked = glowing gold frames, locked = grayscale
  • 💬 Friends chat — real chat bubbles (own vs. other), entrance animation only for new messages (3s refresh stays flicker-free), reactions as chips
  • ⚔️ Guild boss battles — a proper war room: dark red-tinted panel, big tier-colored HP bar, signature attack buttons (Light=gold · Heavy=danger · Block · Ultimate=violet)
  • 🌹 Love Space — dedicated rose theme
  • 🏅 Leaderboard — top-3 podium chips (🥇 glow / 🥈 / 🥉)
  • 💿 Music — album art becomes a spinning vinyl while playing (stops instantly on pause), mini equalizer next to the title, glowing active lyric line
  • 📝 Notes / 🎓 Learning — the full rich-text toolbar and AI studio, kitted
  • 📅 Calendar — today gets a gold ring; ⏰ Reminders get time chips
  • 🔐 Login / Onboarding / Profile / Settings — spring toggle switches, glowing theme swatches, class-picker sockets

⚡ Performance & Stability

Built for PyQt6 WebEngine on Windows laptops — idle cost ≈ zero:

  • Global flicker fixed at the root: no more backdrop-filter over animated layers, no fullscreen blur while dialogs are open, no paint animations running while idle (this was a real bug report — thank you!)
  • Motion only on interaction — hover/press feedback everywhere, but a still app is truly still
  • Scroll-reveal done in pure CSS (animation-timeline) — zero JavaScript listeners
  • All animations are transform/opacity only (compositor-friendly); prefers-reduced-motion kills every repeating animation

🐛 Fixes

  • Popup appearing in the wrong corner (z-index/isolation)
  • Global flicker/flickering (sidebar, random spots, and while dialogs were open)
  • Pomodoro timer no longer resets when switching pages (existing engine — preserved)
  • Latent --ct-t2 design token that was used but never defined

🩺 Quality Assurance

Check Result
Text contrast (measured) body 17.1:1 · muted 7.8:1 — WCAG AA ✔
Keyboard focus ring accent ring + halo on all interactive elements
Reduced motion / high-contrast mode fully functional, verified
Layout shift on press/hover none (transform-only)
Bundle CSS 147 KB · JS 1.02 MB
TypeScript / build 0 errors · clean

⬇️ Install / Update

Existing users (auto-update): the in-app updater will offer v1.5.0 automatically — or download craflife-1.5.0.zip below, extract, and run. Your data (craftlife.db, .env) is preserved.

💡 If anything ever looks visually odd after updating, close the app and delete the cache folder once: %APPDATA%\CraftLife\QtWebEngine, then relaunch.

From source: clone the repo → cd web && npm install && npm run build → python MainPyQt6.py.


📋 Full Changelog

Session-by-session technical logs (format 1–7, incl. every file touched) live in UPDATES/ — 13 logs for this release:
u3.3 · u3.4 · u4-task-core · flick-fix · u5-body · u6-economy · u7-rpg · u8-social · u9-studio · u10-account · u11-motion · u12-qa-launch

Design methodology & rules R1–R10: UIUX_ROADMAP_U1_U12.md

🔮 Backlog (v2.1+)

Esc closes every modal · animated count-up numbers · per-view code splitting


Python + SQLite is the brain. React is the skin (now a much prettier one). Cloud is optional. ⚒️

CraftLife-1.4.0

Choose a tag to compare

@Hellowww-02 Hellowww-02 released this 05 Sep 14:20
bae6595

CraftLife v1.4.0 — Full Parity Release

Ringkasan (ID): Setiap halaman React kini 1:1 dalam fitur & perilaku dengan referensi PyQt (P30–P46). Jam aplikasi & timestamp chat mengikuti zona lokasi pengguna (bukan zona server), dan chat Friends/Guild sudah realtime serta lengkap. Game rules tetap 100% di database.py (backend), tidak pernah diduplikasi di TypeScript.

CraftLife v1.4.0 is a Windows-first desktop RPG life-tracker. Everything local works fully offline; Supabase cloud remains optional for multi-device sync and online social features.


✨ Highlights

  • Full page parity — every React page now matches the PyQt reference feature-for-feature (P30–P46 complete).
  • User-local time everywhere — the app clock and all chat timestamps now follow your device's timezone, not the server's.
  • Rebuilt Friends & Guild chat — attachments, reply, edit, delete, reactions, load-earlier, typing indicator (cloud), and reliable send.
  • Real boss combat feedback — every attack shows damage dealt, damage blocked, boss HP remaining, crits, shield, revive, and ultimate effects.

🆕 What's new / changed (by page)

Page Change
Home Sleep↔productivity chart now stretches edge-to-edge.
Profile Hero Customization moved here from Settings; class change limited to once per 7 days.
Habits / Dailies / Quests Removed duplicate quick-template buttons (already in the Templates menu).
SportTrack Reps chart now renders; added the folder system like habits/dailies/quests.
Economy Savings accept any user-entered amount; investments store your current total value; transaction cards show the name (not category); full subscription dialog (name/icon/cost/due/period/auto-renew/notes); dialogs follow the active currency (no more hardcoded IDR).
Health & Food Food DB names translated (id/en); weight/height 7-day trend charts stretch properly.
Love Space Couple profile & couple account brought to 1:1 parity.
Learning 3-tab slide (Sources / Chat AI / Studio Generate); layout stretches when a tab is closed.
Music Faster, wider lyric search; found lyrics are live time-synced (min:sec) to playback.
Crafting A consumable requirement with quantity 0 now blocks crafting.
Shop Buff item descriptions shown in Bag/Inventory; consumable qty 0 displays as 0; re-buying increments by the amount bought.
Pets New scaling: below level 25 = 1 pet; level 25+ = 2 + floor((level-25)/5) pets (25→2, 30→3, 35→4…). Buffs recalculate on equip/unequip.
Friends Chat is now full parity: attachments (≤5), reply, edit, delete, reactions + remove, load earlier (50/page), typing indicator, 3s refresh — hybrid cloud/local storage.
Guild Chat no longer "silently unsent" (fixed local send path) + full dialog (send, leader clear-all, 3s poll); Spyglass now has a real effect (reveals full boss stats); attacks show full damage/blocked-HP info; boss start is leader-only.
Navbar Shows all active buffs.

🐛 Bug fixes

  • App clock was 7h off (e.g. 06:00 when it should be 13:18 WIB) — the clock now renders in the user's local timezone instead of the server's.
  • Friends & Guild chat timestamps now sync exactly with the app clock via per-message epoch timestamps (works regardless of server zone: UTC, WIB, Windows tzset() no-op, etc.).
  • Guild chat messages "not sent" — send path was targeting the online (cloud) guild while the page showed the local guild; now local-only, matching PyQt.
  • Chart stretching, currency formatting, and translation-key gaps cleaned up across pages.

✅ Verification

  • py_compile — all core modules pass.
  • tsc --noEmit — 0 errors.
  • vite build — clean production build.
  • Backend smoke tests — auth, bootstrap/server clock, guild create/messages, friends chat, boss catalog all pass.
  • i18n — 3,694 keys consistent across translations.py ↔ WEB_I18N_KEYS ↔ messages.json (id + en).

⬇️ Install / update

  • Windows: download craftlife-1.4.0.zip, extract, run CraftLife.exe (no Node required).
  • Auto-update: the app checks app-updates/GitHub Releases on launch and applies updates with SHA-256 verification.

☁️ Cloud (Supabase) — for self-hosters / operators

  • Apply supabase/migrations/*.sql in file order (see README — 13 files, from 20260812000000_initial_social_cloud.sql to 20260821010000_app_updates.sql).
  • Deploy the chat-attachment-maintenance Edge Function for scheduled attachment cleanup.
  • No new Supabase migration is required by v1.4.0 itself beyond those already in the repo.

📌 Notes

  • Legacy PyQt widgets are kept and reachable with CRAFTLIFE_WEB_UI=0; action parity (not pixel-identical skins) is the goal.
  • Game/business rules live only in database.py; the frontend never re-implements RPG math.
  • Windows is the supported release target; Linux/macOS may run from source.