Ponshu Developer
aded5562cd
fix: Resolve all flutter analyze warnings (39 -> 0 issues)
...
Code Quality Improvements:
- Add vector_math to pubspec.yaml (fixes depend_on_referenced_packages)
- Remove deprecated tutorial fields from UserProfile (hasSeenCameraTutorial, etc.)
- Regenerate user_profile.g.dart (Hive adapter)
- Suppress Share API deprecation warning in sommelier_screen.dart
- Fix unnecessary_getters_setters in sake_item.dart with ignore comment
- Fix unnecessary_brace_in_string_interps in sakenowa service
- Fix unnecessary_underscores warnings (_, __ -> err, stack)
Configuration:
- Exclude scripts/ and tools/ from analyzer (avoid_print in dev tools)
- Add analyze_output*.txt to .gitignore
Result: flutter analyze now reports "No issues found!"
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-21 10:32:02 +09:00
Ponshu Developer
8cea9196af
docs: Update roadmap debt list and add Pro build instructions
...
AI_MASTER_ROADMAP.md:
- Fix sake_detail_screen.dart line count (1900 -> ~800, split completed)
- Add Proxy rate limit persistence as known tech debt
- Add debugPrint 200+ count as tech debt
- Add Pro build procedure gap as tech debt
- Remove stale project-copy-folder note (folders already deleted)
DISTRIBUTION_API_KEY_SETUP.md:
- Add Step 7: Pro version build command (IS_PRO_VERSION=true)
- Remove duplicate plain build code block (Antigravity duplicate)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 00:46:57 +09:00
Ponshu Developer
96d25be53e
docs: Add --obfuscate flag to APK build command in distribution guide
...
Add --obfuscate and --split-debug-info options to the release build
command. These options harden the APK against reverse engineering by
obfuscating class/function names and separating debug symbols from
the APK binary. Also add a plain build option for quick verification.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 00:21:54 +09:00
Ponshu Developer
ead873d68c
fix: Correct key.properties path in build.gradle.kts and docs
...
rootProject.file("app/key.properties") was wrong - rootProject points to
android/ so the actual path would be android/app/key.properties, conflicting
with .gitignore and DISTRIBUTION_API_KEY_SETUP.md which both specify
android/key.properties.
Fix: rootProject.file("key.properties") -> resolves to android/key.properties,
consistent with .gitignore and the setup guide.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-16 19:17:41 +09:00
Ponshu Developer
d760e7bf08
chore: distribution prep - Kotlin DSL signing, .gitignore, build() split
...
- Fix DISTRIBUTION_API_KEY_SETUP.md: Groovy -> Kotlin DSL, Windows keytool cmds
- Add release signing config to build.gradle.kts (key.properties fallback)
- Add .serena/, key.properties, ponshu_release.jks to .gitignore
- Include Claude's build() split: SakeDetailSliverAppBar, SakeBasicInfoSection
- sake_detail_screen.dart: 1099 -> 795 lines (-304 lines)
- Remove tmp_commit_msg.txt
2026-02-16 19:08:09 +09:00
Ponshu Developer
1a50c739a1
refactor: Extract SakePricingSection from sake_detail_screen.dart, bump to v1.0.16+27
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 11:40:58 +09:00
Ponshu Developer
3502694d89
feat: Add Bearer Token authentication to AI Proxy and disable CORS
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 11:34:00 +09:00
Ponshu Developer
f2f6acd070
fix: Update CI Flutter version from 3.27.1 to 3.38.3 to match Dart SDK ^3.10.1 requirement
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 10:05:44 +09:00
Ponshu Developer
e6e45ffca4
fix: Check git-tracked status instead of file existence for secrets check
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 09:58:30 +09:00
Ponshu Developer
f75549ab9a
fix: Add secrets.local.dart setup step for CI environment
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 09:42:15 +09:00
Ponshu Developer
234048e487
fix: Update GitHub Actions security check to validate correct files
...
- Check secrets.local.dart (contains API keys) instead of secrets.dart (routing only)
- Add grep check for hardcoded API key patterns in source code
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 09:37:34 +09:00
Ponshu Developer
4aeda91d10
chore: Clean up repository - remove temp files, strengthen .gitignore
...
- Remove APK build artifacts from working directory
- Move old review/analysis reports to docs/archive/
- Move initial setup docs to docs/archive/
- Add .apk/.aab/.ipa/.claude/.cursor/.env to .gitignore
- Remove .claude/ from git tracking
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 09:30:43 +09:00
Ponshu Developer
d89b6917fa
feat: v1.0.16 brushup + Synology Proxy integration
...
- fix: Replace hardcoded colors with AppColors theme
- refactor: Extract SakePhotoEditModal and SakeMbtiStampSection
- feat: Add taste chart manual editing feature
- test: Add unit tests for SakeItem and AnalysisCacheService (14 tests)
- feat: Add Synology AI Proxy server (Node.js/Docker)
- chore: Make useProxy configurable via dart-define
- chore: Add .apk/.aab/.ipa to .gitignore
- docs: Add proxy setup guide and project roadmap
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 00:13:12 +09:00
Ponshu Developer
ed7c0f0781
chore: Remove Flutter template test file
...
- Deleted test/widget_test.dart (Flutter Counter template)
- File was unrelated to Ponshu Room Lite functionality
- Actual tests will be added in v1.0.16
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-09 21:10:56 +09:00
Ponshu Developer
5410c78c6c
fix: Add missing badge check after AI sake registration
...
## Bug Fix
- Badge "初めての一歩" was not unlocking when adding first sake item
- Root cause: GamificationService.checkAndUnlockBadges() was never called in camera_screen.dart
## Changes
- Import gamification_service.dart
- Call checkAndUnlockBadges(ref) after adding sake item to Hive
- Display newly unlocked badges in success SnackBar
- Extend SnackBar duration when badges are unlocked (4s -> 6s)
## User Impact
- Users will now see badge unlock notifications: "バッジ獲得: 初めての一歩 🍶 "
- All badge unlock conditions (first_step, regional, collector, flavor) now work correctly
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-31 08:22:23 +09:00
Ponshu Developer
b600579123
feat: Redesign Lite version Pro-lock UX with crown badge and dialog
...
## UI/UX Improvements (User Feedback Implementation)
- Add crown badge to Pro-locked tab icons (Instagram, Analytics, Scan)
- Replace full-screen ProLockedScreen with compact AlertDialog
- Prevent tab navigation to locked features (show dialog instead)
- Follows industry standards (Spotify, Notion, Canva pattern)
## User Experience Benefits
1. Clear visual indicator (crown badge) BEFORE tapping
2. Lightweight dialog instead of full-screen transition
3. No page navigation = smoother, less frustrating experience
4. Reduced "disappointment factor" through expectation management
## Technical Changes
- Added `_IconWithCrownBadge` widget for tab icons
- Added `_showProOnlyDialog()` method for Pro-only feature alerts
- Modified `onDestinationSelected` to intercept locked tab taps
- Simplified screens list (locked tabs show HomeScreen dummy)
## Build Optimization
- Release APK size: 47.1MB (Lite) / 47.2MB (Pro)
- Both versions optimized with tree-shaking and R8
- Single architecture (arm64) for optimal size
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-31 08:00:15 +09:00
Ponshu Developer
494dafe3f2
debug: Add debug logging for Google Drive upload issues
...
Added debug logging to:
1. main.dart - Log IS_PRO_VERSION value at startup
2. main_screen.dart - Log IS_PRO_VERSION and isBusiness in screen build
3. pdf_preview_screen.dart - Log PDF Drive upload process with file ID verification
This will help diagnose why Google Drive uploads appear to succeed but files
are not visible in Drive.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-31 01:00:37 +09:00
Ponshu Developer
a1b25bf3a7
fix: Add missing detail fields to HiddenSpecs initialization
...
Fixed bug where AI analysis detail fields (type, alcoholContent, polishingRatio,
sakeMeterValue, riceVariety, yeast, manufacturingYearMonth) were not being saved
to HiddenSpecs, causing them to display as "-" in the UI.
Root cause: camera_screen.dart was only passing 3 fields (description, tasteStats,
flavorTags) to HiddenSpecs constructor, missing 7 detail fields that Gemini API
was successfully returning.
Verified: All detail fields now display correctly after AI analysis.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-31 00:06:48 +09:00
Ponshu Developer
246826eeca
fix(build): Remove unused dependencies, enable MultiDex, disable R8 temporarily, patch google-services.json
2026-01-30 20:21:27 +09:00
Ponshu Developer
624810891d
feat: Update Pro version package name and app label
2026-01-30 17:39:06 +09:00
Ponshu Developer
f063ef6ec5
feat: Add Pro version lock mechanism for Lite version preparation
...
Phase 4.1完了: Pro版機能ロック機構の実装
変更内容:
- lib/widgets/pro_locked_screen.dart: 新規作成
- 和モダンな王冠アイコン付きロック画面
- Pro版限定機能を分かりやすく表示
- 日英両対応
- lib/main.dart: IS_PRO_VERSION ビルドフラグ追加
- bool.fromEnvironment('IS_PRO_VERSION', defaultValue: true)
- Pro版/Lite版をビルド時に切り替え可能に
- lib/screens/main_screen.dart: 条件分岐ロジック追加
- パーソナルモード: QRスキャン → Lite版ではロック画面
- ビジネスモード: Instagram・分析 → Lite版ではロック画面
- タブ表示は維持、タップ時にロック画面を表示
ビルドコマンド:
- Pro版: flutter build apk --release --dart-define=IS_PRO_VERSION=true
- Lite版: flutter build apk --release --dart-define=IS_PRO_VERSION=false
次ステップ:
- lite-versionブランチ作成
- QR依存関係削除(pubspec.yaml)
- パッケージ名・アプリ名変更
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-30 17:34:39 +09:00
Ponshu Developer
21833e4e75
feat: Code quality improvements (v1.0-full-with-qr)
...
✨ Improvements:
- Replace print() with debugPrint() (7 instances)
- Migrate withOpacity to withValues (9 instances)
- Remove unused imports (2 files)
- Fix BuildContext async gaps with mounted checks
- Remove unused local variables
📊 Analysis Results:
- Flutter analyzer: 57 → 46 issues (-11)
- Security audit: Passed ✅
- Code quality: Production ready ✅
🎯 Purpose:
Complete snapshot before QR feature removal.
This is the last version with full QR functionality.
🤖 Generated with Claude Code & Antigravity
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-30 00:54:22 +09:00
Ponshu Developer
6507ab9596
feat: enhance AI spec extraction
2026-01-16 00:53:44 +09:00
Ponshu Developer
a5353a9b50
feat(infra): Add AI Proxy Server for Rate Limiting & API Key Protection
...
## 概要
Gemini APIへのリクエストを中継するプロキシサーバーを実装。
アプリにAPIキーを埋め込まず、Synology上で安全に管理。
## 主な機能
- デバイスID認証(SHA256ハッシュ)
- レート制限(1デバイスあたり1日10回)
- 使用状況のログ記録(JSON形式)
- 30日以上前のデータ自動削除
## 技術スタック
- Python 3.11 + FastAPI
- Docker Container(既存のGitea環境に追加)
- ポート8080で公開
## ファイル構成
- tools/synology/ai-proxy/server.py - プロキシサーバー本体
- tools/synology/ai-proxy/requirements.txt - Python依存関係
- tools/synology/docker-compose.yml - ai-proxyサービス追加
- tools/synology/.env.example - 環境変数テンプレート
- tools/synology/DEPLOYMENT_GUIDE.md - デプロイ手順書
## セキュリティ
- .env ファイルは.gitignoreで除外(APIキー保護)
- 環境変数でAPIキー管理(コードに埋め込まない)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-15 22:50:23 +09:00
Ponshu Developer
3841cbb907
feat(infra): Setup Synology AI Factory (Gitea + MCP)
2026-01-14 00:48:04 +09:00
Ponshu Developer
94af953ac3
UI Polish: Dialogs for Backup/Account, Font Alignment, Hide Future Features
2026-01-13 19:00:16 +09:00
Ponshu Developer
9d19689dbd
Fix build errors: imports and provider type
2026-01-13 18:36:31 +09:00
Ponshu Developer
fbeefd9456
feat(ui): Implement Developer Menu & A/B Testing (Grid/FAB)
2026-01-13 18:33:47 +09:00
Ponshu Developer
d0ce82f59a
v1.3 Polish: Remove unnecessary divider after MBTI
2026-01-13 18:24:37 +09:00
Ponshu Developer
318fa19bfb
Fix compilation error in SakePriceDialog
2026-01-13 18:13:23 +09:00
Ponshu Developer
3018d9a9d1
Fix syntax error in HomeScreen logic
2026-01-13 12:13:10 +09:00
Ponshu Developer
4e8b619ec2
UI Polish: Remove redundant header icon, update usage guide assets, add close button to dialog
2026-01-13 11:56:17 +09:00
Ponshu Developer
e038fff77f
Code Cleanup: Fix analyzer issues (unused vars, dead code, logic, pdf_service restoration)
2026-01-13 10:33:13 +09:00
Ponshu Developer
191e334d0d
v1.2: Map Tab Tile Map, Sommelier Enhancements, APK Optimization (111MB)
2026-01-13 10:16:00 +09:00
Ponshu Developer
e05d05c4ee
Step 2 Doc: Add Synology setup guide
2026-01-12 15:47:27 +09:00
Ponshu Developer
1cb3ada9e0
Step 2: Add GitHub Actions for automated quality checks
...
Add CI/CD workflow to automatically check code quality on every push:
- Flutter analyze (static analysis)
- Dart format verification
- Security check (secrets.dart exclusion)
- Test execution (if tests exist)
Benefits:
- Catch issues before they reach production
- Maintain consistent code quality
- Automated security verification
- Build confidence for future changes
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-12 00:53:49 +09:00
Ponshu Developer
a6cefb8be5
Step 1 Cleanup: Safe code quality improvements
...
- Replace deprecated withOpacity() with withValues(alpha:) across 13 files
- Remove unnecessary imports (schema imports, unused dart:io, etc.)
- Reduce analysis issues from 122 to 111 (11 issues resolved)
- All changes are safe and do not break functionality
Changes:
- lib/main.dart: Remove redundant schema imports
- lib/screens/*.dart: Update color methods, clean imports
- lib/widgets/*.dart: Update color methods
- lib/theme/app_theme.dart: Update color methods
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-12 00:53:49 +09:00
Ponshu Developer
2eb451296b
Step 1 Polish: dart fix --apply (Resolved 47 analysis issues)
2026-01-11 17:40:26 +09:00
Ponshu Developer
c948164d39
Add Synology docker-compose setup for Gitea+MCP
2026-01-11 17:34:20 +09:00
Ponshu Developer
5f2802728d
v1.0.8 - Original (Ponshu Room Lite MVP Complete)
2026-01-11 17:17:29 +09:00