νκ΅μ΄ | English
[!IMPORTANT]
보μ μ£Όμμ¬ν (Security Notice)
- κΈ°λ³Έ κ΄λ¦¬μ κ³μ μ μμ΄λ:
admin / λΉλ°λ²νΈ: .env νμΌμμ λ³ΈμΈμ΄ μ€μ ν κ°μ
λλ€.
- μ΅μ΄ λ‘κ·ΈμΈ ν, νΉμ μλ² μ€ν μ
.env νμΌμμ ADMIN_USERNAMEκ³Ό ADMIN_PASSWORDλ₯Ό λ°λμ λ³ΈμΈλ§μ μ λ³΄λ‘ μμ νμΈμ. μμ νμ§ μμ κ²½μ° λ³΄μμ λ§€μ° μ·¨μ½ν΄μ§ μ μμ΅λλ€.
[!NOTE]
AI κΈ°λ₯μ μ ν μ¬νμ
λλ€ (AI is Optional)
- Gemini API ν€κ° μμ΄λ λμ¬λ£μ ν΅μ¬ κΈ°λ₯(κΈ°λ³Έ λ©λͺ¨, ννΈλ§΅, μ§μ κ·Έλν Nebula, κ°λ³ μνΈν λ±)μ λͺ¨λ μ μ μλν©λλ€.
- AI κΈ°λ₯(
GEMINI_API_KEY)μ μλ μμ½κ³Ό μΈκ³΅μ§λ₯ νκΉ
κΈ°λ₯μ μ¬μ©ν λλ§ νμν©λλ€.
**λμ¬λ£(Brain Dogfood)**λ "λ΄κ° λ§λ μ§μμ λ΄κ° λ¨Όμ μλΉνλ€"λ μ² νμμ μμλ κ°μΈμ© μ§λ₯ν μ§μ κ΄λ¦¬ μλ²μ
λλ€. λ¨μν κΈ°λ‘μ λμ΄, AIκ° λΉμ μ μ§μμ λΆμνκ³ μ κΈ°μ μΈ κ·Έλν(Nebula)λ‘ μ°κ²°νλ©°, μ£Όκ° λ¨μμ 볡기λ₯Ό ν΅ν΄ ννΈνλ μ 보λ₯Ό μ΄μμλ μ§λ₯μ²΄λ‘ μ§νμν΅λλ€.
λν μ¬μ©μμ μ 보λ₯Ό μ λ ν΄λ
ν μ μλ 'κ°λ³ μνΈν' λ°©μμ μ§μν©λλ€. **"λ°μ΄ν°λ μ μΆλ μ μμ΄λ, λ΄ λ¨Έλ¦Ώμμ ν¨μ€μλλ μ μΆλ μ μλ€"**λ μ λ
μλ, μ€μ¬ μλ² λ°μ΄ν°κ° ν΅μ§Έλ‘ νμ·¨λΉν΄λ μ¬μ©μκ° μ€μ ν λΉλ°λ²νΈ μμ΄λ νλμ κΈ°μ λ ₯μΌλ‘ ν΄λ
μ΄ λΆκ°λ₯ν κ°λ ₯ν 보μμ μ 곡ν©λλ€.
β¨ v8.1+ λ
보μ μΈ κ°μ
- μ£Όκ° μ§μ 볡기 & νλλ μ°λ (Weekly Insight): λ¨μ 보κ΄μ΄ μλ '볡기'μ μ΅μ νλ μΈν°νμ΄μ€. μ£Όκ° μ νκΈ°μ νλλ λνΈ(Heatmap Dots)λ₯Ό ν΅ν΄ μ΄λ² μ£Όμ μ§μ μ±μ₯ νλ¦μ νλμ νμ
νμΈμ.
- μ§λ₯ν μ§μ λ€νΈμν¬ (Nebula & Visual Linker): D3.js κΈ°λ°μ 'μ§μ μ±λ¨' μκ°νμ μκ°μ μμ΄μ΄λ§(Alt+λλκ·Έ) κΈ°λ₯μ ν΅ν΄ μμ΄λμ΄ κ°μ λ§₯λ½μ 물리μ μΈ μ μΌλ‘ κ°μνν©λλ€.
- κ΄κ³ ν¬μ»€μ€ λͺ¨λ (Relation Focus Mode):
Ctrl + Alt + ν΄λ¦ ν λ²μΌλ‘ νΉμ λ©λͺ¨μ μ°κ²°λ λͺ¨λ μ§μμ νμ΄λΌμ΄νΈνκ³ νμ΄νλ‘ μ°κ²°νμ¬ λ³΅μ‘ν μ§μλ§ μμμ λ§₯λ½μ μμ§ μκ² λμ΅λλ€.
- νμ΄μλ UX & κΈλμ€λͺ¨νΌμ¦: νλμ μΈ κΈλμ€λͺ¨νΌμ¦(Glassmorphism) UIμ λΆλλ¬μ΄ λ§μ΄ν¬λ‘ μ λλ©μ΄μ
μ μ μ©νμ¬ ν리미μν μ¬μ© κ²½νμ μ 곡ν©λλ€.
- Privacy-First Security: λ©λͺ¨λ³ κ°λ³ AES-256 μνΈνλ₯Ό μ§μνμ¬ κ΄λ¦¬μμ‘°μ°¨ μΏλ³Ό μ μλ μ λμ μΈ λ³΄μμ 보μ₯ν©λλ€.
π οΈ μ΅μ ν¨μΉ λ
ΈνΈ (2026-05-06) - v8.3.5 (Frontend Performance Revolution)
- μ±λ₯ μν€ν
μ² νμ : Vite λ²λ€λ§ λμ
μ ν΅ν΄ μμ κ°μ JS λͺ¨λμ λ¨μΌ λ²λ€λ‘ λ³ν©, ν μλ² λ‘λ© μλ 500% ν₯μ (5.2s β 0.9s).
- μ μ μμ μ΅μ ν: μΈλΆ ν°νΈ λ° CDN μμ‘΄μ±μ λ‘μ»¬λ‘ μ λ©΄ μ΄μ νμ¬ λ€νΈμν¬ λ³λͺ© λ° λ λλ§ λΈλ‘νΉ μμ² μ κ±°.
- λ°°ν¬ μλν κ³ λν:
deploy.pyμ λΉλ νμ΄νλΌμΈ ν΅ν© λ° λ컀 λ©ν° μ€ν
μ΄μ§ λΉλ(Multi-stage Build) λμ
μΌλ‘ νκ²½μ ꡬμ λ°μ§ μλ μ΅μ ν λ°°ν¬ μ€ν.
- λ²κ·Έ μμ : μ΄κΈ° λ‘λ© μ λ°μ΄ν° μ€λ³΅ μμ²(Ghost Fetch) ν΄κ²° λ° λ°±μλ λ§€λνμ€νΈ μ°λ μμ ν.
π οΈ μ΄μ ν¨μΉ λ
ΈνΈ (2026-05-06) - v8.3.4 (Theme & Visibility Refactoring)
π οΈ μ΄μ ν¨μΉ λ
ΈνΈ (2026-05-04) - v8.3.3 (Secure Backup & Export)
- Secure Backup & Export: μ 체 μμ€ν
λ°μ΄ν°(DB, 첨λΆνμΌ, .env)λ₯Ό AES-256 μνΈνλ ZIP νμΌλ‘ μμ νκ² λ°±μ
λ° μΌλ° λ©λͺ¨λ₯Ό **Frontmatter λ§ν¬λ€μ΄(.md)**μΌλ‘ μΌκ΄ λ΄λ³΄λ΄λ κΈ°λ₯ μΆκ°.
- Offline Decryption Tool: λμ¬λ£ μλ² μμ΄λ λ‘컬 PCμμ μ¦κ°μ μΌλ‘ DBλ₯Ό μΆμΆνκ³ μνΈνλ λ©λͺ¨λ€μ ν΄λ
ν΄ λ΄λ μ€ν λμΌλ‘ 볡ꡬ μ€ν¬λ¦½νΈ(
ex_tools/offline_exporter.py) λ°°ν¬.
- μμ μ± κ³ λν: νλ‘ νΈμλ λͺ¨λν 리ν©ν λ§ λ° νμΌ μ
λ‘λ λλ½ μ΄μ ν΄κ²°.
π οΈ μ΄μ ν¨μΉ λ
ΈνΈ (2026-04-30) - v8.3.1 (Attachment Management)
- κΈ°λ₯ κ°μ : λ©λͺ¨ μμ± λ° μμ μ€ μ²¨λΆλ νμΌμ κ°λ³μ μΌλ‘ μμ ν μ μλ 'x' λ²νΌ κΈ°λ₯ μΆκ°.
- μμ ν μμ λ‘μ§: μλ‘ μ
λ‘λν νμΌμ μ¦μ μꡬ μμ , κΈ°μ‘΄ νμΌμ μ μ₯ μμλ§ μ°κ²°μ΄ ν΄μ λ©λλ€.
π οΈ ν¨μΉ λ
ΈνΈ (2026-04-29) - v8.3.0 (Security Bugfix)
- λ²κ·Έ μμ : μ κ· λ©λͺ¨ μμ± μ μνΈν κΈ°λ₯(μλ¬Όμ )μ΄ λμνμ§ μκ³ νλ¬ΈμΌλ‘ μ μ₯λλ μΉλͺ
μ κ²°ν¨(is_encrypted νλκ·Έ λλ½) ν΄κ²°.
π οΈ μ΄μ ν¨μΉ λ
ΈνΈ (2026-04-27) - v8.2.0 (Expanded External API & Modularization)
- μΈλΆ API λͺ¨λν:
external/ ν¨ν€μ§ ꡬ쑰 λμ
λ° κΈ°λ₯λ³ λͺ¨λ λΆλ¦¬λ‘ μ μ§λ³΄μμ± ν₯μ.
- ν΅ν© ν
μ€νΈ νκ²½ κ°ν: κ³ λνλ μΈλΆ API κ²μ¦ μ€ν¬λ¦½νΈ(
test_external_api.py) λ° APITester λμ
.
- ν΄μ§ν΅ κ΄λ¦¬ κ³ λν: μμ λ λ©λͺ¨ μ μ© UI(Grayscale/Blur) λ° λ³΅μ/μꡬμμ κΈ°λ₯ ꡬν.
- μ΅μλμΈ μ°λ μ μ΄:
config.json μ€μ μ ν΅ν λ΄λ³΄λ΄κΈ° λ²νΌ νμ±ν/λΉνμ±ν κΈ°λ₯ μΆκ°.
- μμ€ν
μμ μ± κ°μ :
config.json λ¬Έλ² μ€λ₯ κ°μ§ κ°ν λ° νλ‘ νΈμλ μν μ°Έμ‘° μμ μ₯μΉ μ μ©.
- λ²κ·Έ μμ : λ©λͺ¨ μΉ΄λ λ΄ λλ½λμλ λ°±λ§ν¬(μΈκΈλ¨) λ λλ§ λ³΅κ΅¬.
π οΈ ν¨μΉ λ
ΈνΈ (2026-04-24) - v8.1.0 (Update Notification System)
- GitHub μ°λ μ§λ₯ν μ
λ°μ΄νΈ κ°μ§ λ° μλ¦Ό λ°°μ§ μμ€ν
λμ
.
- μ κ· λ³κ²½ μ¬ν(Changelog) νμΈ λ° λ‘κ·Έ λ·°μ΄ λͺ¨λ¬ ꡬν.
- μλ μ
λ°μ΄νΈ μλ΄ μμ€ν
κ°ν (Native/Docker κ°μ΄λ).
- ꡬ쑰νλ λ²μ κ΄λ¦¬ 체κ³(
version.json) ꡬμΆ.
π οΈ μ΄μ ν¨μΉ λ
ΈνΈ (v5.0 ~ v5.5)
- [μ κ· κΈ°λ₯] μ£Όκ° λ§€λμ (Weekly View): κ²μμ°½ νλ¨ μ£Όκ° μ νκΈ° λ°°μΉ λ° νλλ λνΈ μ°λ.
- [μ κ· κΈ°λ₯] κ³ λ°λ 리μ€νΈ λ μ΄μμ: λλμ μ§μμ λΉ λ₯΄κ² νμ μ μλ μν μ½€ν©νΈ λͺ¨λ μΆκ°.
- [UI/UX] μΈμ
νμμμ μΉ΄μ΄νΈλ€μ΄: λ‘κ·Έμμ λ²νΌ λ΄ μ€μκ° μμ¬ μκ° νμ λ° μ§λ₯ν μ°μ₯ κΈ°λ₯.
π οΈ ν¨μΉ λ
ΈνΈ (2026-04-20)
- μΈμ
νμμμ μΉ΄μ΄νΈλ€μ΄: λ‘κ·Έμμ λ²νΌμ μ€μκ° μΈμ
λ¨μ μκ°μ νμνλ νμ΄λ¨Έλ₯Ό μΆκ°νμ¬ μκΈ°μΉ μμ λ‘κ·ΈμμμΌλ‘ μΈν λ°μ΄ν° μ μ€μ λ°©μ§ν©λλ€.
- λ²νΌ UI μ΅μ ν: νμ΄λ¨Έ νμ 곡κ°μ ν보νκΈ° μν΄ λ‘κ·Έμμ λ²νΌ ν
μ€νΈλ₯Ό "μ’
λ£" / "EXIT"λ‘ μΆμ½νμμ΅λλ€.
- μ§λ₯ν μΈμ
μ°μ₯: ν΄λ¦μ΄λ ν€λ³΄λ μ
λ ₯ λ± μ¬μ©μ νλμ΄ κ°μ§λλ©΄ νμ΄λ¨Έκ° μλμΌλ‘ μ΄κΈ°νλμ΄ μΈμ
μ΄ μ μ§λ©λλ€.
π οΈ ν¨μΉ λ
ΈνΈ (2026-04-19)
- νμΌ μ²¨λΆ μ κ·Όμ± κ°μ : μ§μ μμ±κΈ°(Composer)μ λͺ
μμ μΈ νμΌ μ²¨λΆ(π) λ²νΌμ μΆκ°νμ΅λλ€. (λλκ·Έ μ€ λλ‘κ³Ό λ³ν κ°λ₯)
- λͺ¨λ°μΌ UX μ΅μ ν: λͺ¨λ°μΌ κΈ°κΈ°μμλ μ‘°μμ΄ νΈλ¦¬νλλ‘ "νμΌμΆκ°" ν
μ€νΈ λ μ΄λΈμ μΆκ°νμ΅λλ€.
- λ€κ΅μ΄ μ§μ μμ ν: 첨λΆνμΌ κ΄λ ¨ ν΄ν λ° λ μ΄λΈμ ν/μ i18nμ μ μ©νμ΅λλ€.
π memos vs λμ¬λ£ (Comparison)
| κΈ°λ₯ | memos (Open Source) | π§ λμ¬λ£ (Brain Dogfood) |
|---|
| κΈ°λ³Έ μ² ν | νμλΌμΈ κΈ°λ° λ§μ΄ν¬λ‘ λΈλ‘κΉ
| μ κΈ°μ μΈ μ§μ μ°κ²° λ° AI ν΅μ°° |
| μκ°ν | λ¨μ λ¬λ ₯/ννΈλ§΅ | D3.js Knowledge Nebula (κ·Έλν) |
| AI ν΅ν© | μΈλΆ νλ¬κ·ΈμΈ μμ‘΄ | Gemini 2.0 Native ν΅ν© (μλ μμ½/νκ·Έ / μ ν μ¬ν) |
| 보μ | DB μ 체 보μ | λ©λͺ¨λ³ κ°λ³ μνΈν (Grain-level Security) |
| μ¬μ©μ± | λͺ¨λ°μΌ μ± μμ£Ό | λ°μ€ν¬ν μμ°μ± μ΅μ ν (Slash Commands & Shortcuts) |
| λμμΈ | λ―Έλλ©, μ μ μΈ UI | Modern Glassmorphism & λ€μ΄λ΄λ―Ή μ λλ©μ΄μ
|
β¨οΈ μμ°μ± λ¨μΆν€
| λμ | λ¨μΆν€ | μ€λͺ
|
|---|
| μ μ λ€λΉκ²μ΄μ
| Alt + 1 ~ 9 | π μΌμμ λ²μΉ (μ 체, κ³ μ , μ€λ, μ£Όκ°, νμΌ, μλ£, νμκΈ°, μ±λ¨, μ€μ ) |
| μ μ₯/μμ | Ctrl + Enter | μμ±ν λ©λͺ¨λ₯Ό μ¦μ μλ²μ λ°μ |
| μ λ©λͺ¨ | Ctrl + Shift + N | μΈμ μ΄λμλ μ¦μ μμ±μ°½ νΈμΆ (Alt + N / Alt + λμΌ) |
| μ¬λμ λͺ
λ Ή | / | /task, /ai, /h2 λ±μΌλ‘ λΉ λ₯Έ μμ μ§μ |
| μ£Όκ° λ·° ν κΈ | Alt + W | π
κ²μμ°½ νλ¨ μ£Όκ° μ νκΈ° μμ ν κΈ |
| μ¦μ μμ | e (Mouse Over) | μΉ΄λ μμμ λ°λ‘ νΈμ§ λͺ¨λλ‘ μ§μ
|
| λΉμ£ΌμΌ λ§μ»€ | Alt + #ID ν΄λ¦ | μ§μκ³Ό μ§μμ μ μΌλ‘ μλ 'μκ°μ μμ΄μ΄λ§' |
| κ΄κ³ ν¬μ»€μ€ | Ctrl + Alt + Click | π§ νΉμ λ©λͺ¨μ μ°κ²°λ μ§μλ€λ§ κ°μ‘° λ° νμ΄ν νμ |
| λμλ§ | ? | β¨οΈ λ¨μΆν€ κ°μ΄λ λͺ¨λ¬ μ΄κΈ° |
πΊοΈ Vision Roadmap
π οΈ μμνκΈ° (Quick Start)
μ¬μ©μμ νκ²½μ λ§μΆ° λ κ°μ§ λ°©λ² μ€ νλλ₯Ό μ ννμ¬ μ€νν μ μμ΅λλ€.
λ°©λ² 1: λ€μ΄ν°λΈ μ§μ μ€ν (κΆμ₯)
# 1. μ μ₯μ 볡μ λ° μ’
μμ± μ€μΉ
pip install -r requirements.txt
# 2. .env.exampleμ .envλ‘ λ³΅μ¬ ν μ€μ μμ (νμ)
cp .env.example .env
# 3. μλ² μ€ν
python brain.py
λ°©λ² 2: Dockerλ‘ μ€ν (컨ν
μ΄λ)
λμ»€κ° μ€μΉλμ΄ μλ€λ©΄ μλ λͺ
λ Ήμ΄λ‘ μ¦μ μλ²λ₯Ό ꡬμΆν μ μμ΅λλ€.
# 1. .env μ€μ μλ£ ν
docker-compose up -d
λ°μ΄ν°λ² μ΄μ€μ μ
λ‘λ νμΌμ νΈμ€νΈμ data/, static/uploads/ λλ ν 리μ μμ νκ² μ μ₯λ©λλ€.
π μ μ λ°©λ²
μλ²κ° μ€νλλ©΄ λΈλΌμ°μ λ₯Ό ν΅ν΄ λ€μ μ£Όμλ‘ μ μν μ μμ΅λλ€:
- λ‘컬 μ μ (λμΌ PC):
http://localhost:5093
- μΈλΆ μ μ (ν κΈ°κΈ°/λͺ¨λ°μΌ):
http://<μλ² IP>:5093
[!TIP]
ν¬νΈ μ€μ λ³κ²½:
κΈ°λ³Έ ν¬νΈ(μλμ°: 5050, 리λ
μ€: 5093) μΈμ λ€λ₯Έ ν¬νΈλ₯Ό μ¬μ©νλ €λ©΄ .env νμΌμμ PORT=μνλν¬νΈ μ€μ μ μΆκ°νμΈμ.
[!TIP]
리λ
μ€μμ μλ² IP νμΈνκΈ°:
ν°λ―Έλμμ hostname -I λͺ
λ Ήμ΄λ₯Ό μ
λ ₯νλ©΄ νμ¬ μλ²μ λ΄λΆ IP μ£Όμλ₯Ό νμΈν μ μμ΅λλ€.
.env νμΌμμ κ΄λ¦¬μ μμ΄λμ λΉλ°λ²νΈλ₯Ό κΌ μμ νκ³ , νμν κ²½μ°μλ§ GEMINI_API_KEYλ₯Ό λ±λ‘νμΈμ.
What is Brain Dogfood?
Brain Dogfood is a minimalist yet powerful personal knowledge server built on the philosophy: "I consume the knowledge I create." Itβs not just a memo app; itβs an intelligent knowledge ecosystem that grows with you.
We provide a security model where user data is practically undecipherable. Built on the conviction that "Data can be leaked, but the password in my head cannot be," even if the entire database is compromised, any "grain-level encrypted" notes and attachments remain impossible to decrypt without the specific password known only to you.
[!IMPORTANT]
Security Notice:
Default credentials are set in the .env file. You MUST change ADMIN_USERNAME and ADMIN_PASSWORD in your .env file before running the server in a public environment.
[!NOTE]
AI is Optional:
All core features (Memos, Heatmap, Knowledge Nebula, Encryption) work perfectly without an AI API key. The GEMINI_API_KEY is only required for automated summarization and AI tagging.
Key Features
- Intelligent Knowledge Network: Beyond simple notes, build a "Biological Intelligence" through D3.js-powered Nebula Maps and Visual Wiring (Alt+Click).
- Relation Focus Mode: Highlight all knowledge connected to a specific memo with a single
Ctrl + Alt + Click. Visualize the flow of information with directional arrows.
- Human-Centric Linking: While AI assists in analysis, you define the connections. Build high-density Knowledge Hubs that mirror your own cognitive patterns.
- N:N Multi-Link ecosystem: Support for unlimited bidirectional links between notes, allowing for complex, fractal-like knowledge growth.
- Grain-level Encryption: Advanced security for individual memos β your thoughts are encrypted with your master key, invisible even to server admins.
- Premium Aesthetics: High-end Glassmorphism UI with smooth micro-animations and production-ready shortcuts.
π What's New in v2.0
- Visual Node Linker: Wire your ideas by
Alt + Clicking the #ID badge. The most intuitive way to bridge text and visual structure.
- Multi-Link Support: Insert multiple internal links (
[[#ID]]) to create clusters of networked thought.
- Instant Edit (e-key): Hover over a memo and press
e to jump straight into editing mode. Zero-click productivity.
- Drag & Drop Workflow: Drag memo cards into the composer to instantly insert a semantic reference.
π οΈ Patch Notes (2026-05-06) - v8.3.5 (Frontend Performance Revolution)
- Performance Revolution: Implemented Vite bundling to merge ESM modules, improving home server load speed by 500% (5.2s β 0.9s).
- Static Asset Optimization: Localized all external fonts and CDN libraries to eliminate network bottlenecks and render-blocking.
- Deployment Automation: Integrated npm build pipeline into
deploy.py and updated .agent.md with official build-deploy SOP.
- Bug Fixes: Resolved duplicate initial data fetch (Ghost Fetch) and stabilized backend manifest resolution.
π οΈ Patch Notes (2026-05-06) - v8.3.4 (Theme & Visibility Refactoring)
π οΈ Patch Notes (2026-05-04) - v8.3.3 (Secure Backup & Export)
- Secure Backup & Export: Safely backup full system data (DB, attachments, .env) as an AES-256 encrypted ZIP file, and bulk export plaintext memos as Frontmatter Markdown (.md).
- Offline Decryption Tool: A standalone Disaster Recovery script (
ex_tools/offline_exporter.py) to locally extract and decrypt the database without needing the Brain Dogfood server.
- Stability Enhancements: Frontend modularization refactoring and file upload bugfixes.
π οΈ Patch Notes (2026-04-30) - v8.3.1 (Attachment Management)
- Feature: Added ability to delete individual attachments during memo creation and editing.
- Safe Deletion: New files are permanently deleted immediately, existing files are unlinked only upon saving.
π οΈ Patch Notes (2026-04-29) - v8.3.0 (Security Bugfix)
- Bug Fix: Fixed a critical issue where the encryption flag (
is_encrypted) was missing when creating a new memo, causing it to be saved as plaintext despite a password being set.
π οΈ Patch Notes (2026-04-27) - v8.2.0 (Expanded External API & Modularization)
- External API Modularization: Packages under
external/ for better maintenance.
- Enhanced Testing Environment: Advanced external API verification script (
test_external_api.py) & APITester.
- Advanced Trash Management: Grayscale/Blur UI and Restore/Permanent Delete functionality.
- Obsidian Export Control: Toggle export button visibility via
config.json settings.
- System Stability: Enhanced config error handling and frontend state safety checks.
- Bug Fix: Restored missing backlink (Mentioned in) rendering on memo cards.
π οΈ Patch Notes (2026-04-24) - v8.1.0 (Update Notification System)
- Intelligent Update Detection via GitHub integration with notification badges.
- New Changelog Viewer modal to review updates within the app.
- Manual update guide implementation (Native/Docker instructions).
- Structured versioning infrastructure (
version.json) implem