[07-Release] #218 v0.3.0 — real Gemma 4 E2B + RAM gate
- pubspec 0.2.0+2 → 0.3.0+3 - CHANGELOG 0.3.0 — OQ-1 해결(real Gemma), AC-6 RAM 게이트, 88 tests, sticky cache fix - APK SHA-256 4a237d5124bfcd56aaa8c0ae89060a9ecf9ce7cc739f0b056ce66e9b9ca6b54a Refs #218
This commit is contained in:
37
CHANGELOG.md
37
CHANGELOG.md
@@ -3,6 +3,43 @@
|
||||
본 프로젝트의 모든 의미있는 변경은 본 파일에 기록한다.
|
||||
형식: [Keep a Changelog](https://keepachangelog.com/) · 버전: [SemVer](https://semver.org/).
|
||||
|
||||
## [0.3.0] — 2026-06-12
|
||||
|
||||
### Added — Phase 2-A OQ-1 resolved: real Gemma 4 E2B inference (Redmine #218)
|
||||
- `GemmaLlmService` 본문 구현 — `flutter_gemma` 0.16.5 위에 Gemma 4 E2B 실 추론. `InferenceModel.createChat(modelType: gemma4, supportsFunctionCalls: true, toolChoice: required, tools: [...])` + `collectFunctionCall(stream)` 로 structured JSON 강제.
|
||||
- `_LazyLlmService` (main.dart) — Mock ↔ Gemma 런타임 어댑터. 매 호출마다 `checkAvailability` 재평가 → opt-in/opt-out 즉시 반영 (앱 재시작 불필요).
|
||||
- 실 모델 핀: `gemma-4-E2B-it.litertlm` 2.41GB, SHA-256 `181938105e0eefd105961417e8da75903eacda102c4fce9ce90f50b97139a63c` (HF `litert-community/gemma-4-E2B-it-litert-lm`).
|
||||
- HF_TOKEN `--dart-define` 주입 — 빈 기본값으로 빌드 안전.
|
||||
|
||||
### Added — Device gate (AC-6)
|
||||
- 플랫폼 채널 `life_helper/device_caps` (`MainActivity.kt` → `ActivityManager.MemoryInfo.totalMem`) — Android 단말 실 RAM 측정. `device_info_plus` 의 `isLowRamDevice` (~1GB) 로는 4GB 임계치 불가하여 채널 도입.
|
||||
- `DeviceCapabilities` 추상 + `PlatformDeviceCapabilities` 구현 (테스트 주입 가능). `kAiMinRamBytes = 4 GiB`. fail-closed (`null` → false).
|
||||
- `deviceMeetsAiRamProvider` (Riverpod `FutureProvider`) — `SettingsScreen` 토글 disabled + 안내 문구.
|
||||
|
||||
### Added — Tests
|
||||
- 88/88 통과 — 신규 10 (`device_capabilities_test.dart` 7 + lazy resolve regression 3).
|
||||
|
||||
### Polish (Designer)
|
||||
- AC-6 게이트 안내 톤 정렬 — "RAM 부족" → "이 단말에서는 AI 도움을 사용할 수 없어요 (RAM 4GB 이상 필요)".
|
||||
- `_describe(missing, meetsRam:)` 분기 — 토글 disabled 상황에서 "토글 켜면" 모순 제거.
|
||||
- 옵트아웃 다이얼로그 "다시 다시" 중복 → "처음부터".
|
||||
|
||||
### Fixed (Reviewer)
|
||||
- `_LazyLlmService._delegate` sticky cache — 첫 호출 시점의 delegate 종류가 앱 재시작까지 유지되던 버그 (Mock → Gemma 전환 안 됨). re-resolve + (kind + modelPath) 일치 시만 캐시 재사용.
|
||||
- Reference 문서 nit 3건 — `215-ai-frame-suggest.md` (L184 채널 사실 정정 / L186 F1 follow-up 매핑 / L191 OOS 기준).
|
||||
|
||||
### Release artifact
|
||||
- `app-release.apk` 286MB, SHA-256 `4a237d5124bfcd56aaa8c0ae89060a9ecf9ce7cc739f0b056ce66e9b9ca6b54a`.
|
||||
|
||||
### Known limitations (deferred to #219~#222)
|
||||
- **AC-7** (실 단말 cold-start 예산) — DEFER. 실기기 E2E 검증은 본 릴리스 후 권고.
|
||||
- **#219** F1: 60초 idle auto-unload.
|
||||
- **#220** GemmaLlmService.load 동시성 가드 + `isThinking:false` 명시.
|
||||
- **#221** AC-10 한국어 corpus ≥70%.
|
||||
- **#222** HF_TOKEN keystore 기반 secret 전환.
|
||||
|
||||
---
|
||||
|
||||
## [0.2.0] — 2026-06-12
|
||||
|
||||
### Added — Phase 2-A: On-device Gemma 4 frame suggestion (Redmine #215)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
name: life_helper
|
||||
description: "Huberman + Atomic Habits + Tiny Habits + If-Then. Local-first habit/checklist/todo."
|
||||
publish_to: 'none'
|
||||
version: 0.2.0+2
|
||||
version: 0.3.0+3
|
||||
|
||||
environment:
|
||||
sdk: ^3.12.2
|
||||
|
||||
Reference in New Issue
Block a user