Repository navigation
Releases: ninepointlabs/keystone
Release list
Release v1.2.3 - Universal Navigation
Release Notes - v1.2.3
Release Date: November 6, 2025
Build Number: 7
🎯 Universal Navigation
This release adds consistent navigation across all screens in Keystone, making it easy to move between different sections of the app without constantly returning to the main screen.
✨ New Features
Universal Navigation Widget
- Reusable Component: Created
AppNavigationActionswidget for consistent navigation - Available Everywhere: All main screens and detail screens now have navigation icons
- Smart Context Awareness: Current screen's button is automatically hidden to prevent redundant navigation
- Quick Access: Navigate to any section (Calendar, Lists, Projects, Search, Settings) from anywhere
Enhanced Screen Navigation
- Main Screens: Calendar, Lists, Projects, Search, and Settings all have full navigation
- Detail Screens: Project Detail and List Detail screens also include navigation
- Seamless UX: No more backing out to the main screen to access other sections
🔧 Technical Changes
New Files
lib/widgets/app_navigation_actions.dart- Reusable navigation widget
Modified Files
lib/main.dart- Updated to use AppNavigationActions widgetlib/features/calendar/calendar_screen.dart- Added navigation actionslib/features/lists/lists_screen.dart- Added navigation actionslib/features/lists/list_detail_screen.dart- Added navigation to detail viewlib/features/projects/projects_screen.dart- Added navigation actionslib/features/projects/project_detail_screen.dart- Added navigation to detail viewlib/features/search/search_screen.dart- Added navigation actionslib/features/settings/settings_screen.dart- Added navigation actions
🎨 User Experience Improvements
Navigation Flow
- From Calendar: Navigate directly to Lists, Projects, Search, or Settings
- From Lists: Navigate directly to Calendar, Projects, Search, or Settings
- From Projects: Navigate directly to Calendar, Lists, Search, or Settings
- From Detail Views: Full navigation available even when viewing project or list details
- Bidirectional: No more one-way navigation - go anywhere from anywhere
Visual Consistency
- Icon-Based: Clear, recognizable icons for each section
- Tooltips: Helpful tooltips on each navigation button
- AppBar Integration: Navigation icons integrated seamlessly into AppBar
- Responsive: Works across all screen sizes and platforms
📋 Navigation Patterns
Available Navigation Icons
| Icon | Destination | Always Visible |
|---|---|---|
| 📅 Calendar | Calendar Screen | On all screens except Calendar |
| ☑️ Lists | Lists Screen | On all screens except Lists |
| 🌳 Projects | Projects Screen | On all screens except Projects |
| 🔍 Search | Search Screen | On all screens except Search |
| ⚙️ Settings | Settings Screen | On all screens except Settings |
🔄 Migration Guide
Upgrading from v1.2.2
-
Pull Latest Changes:
git pull origin master git checkout v1.2.3
-
Update Dependencies:
fvm flutter pub get
-
Build for Platform:
# Android fvm flutter build apk --release # Web fvm flutter build web --release firebase deploy --only hosting
🐛 Bug Fixes
- Improved navigation consistency across the app
- Fixed navigation flow in detail screens
⚠️ Breaking Changes
None. This is a backward-compatible release that enhances existing functionality.
📦 Release Assets
APK Information
- File:
app-release.apk - Size: 57.8 MB
- SHA256:
ad779823bf2c449b7bb2aba95b7e0ea067ce3c01bad16b243705148872697e03
Web Deployment
- URL: https://keystone-1424f.web.app
- Status: ✅ Deployed with latest navigation improvements
- Firebase Project: keystone-1424f
🔜 Future Enhancements
Based on this release, potential improvements include:
- Breadcrumb Navigation: Visual breadcrumb trail showing navigation history
- Quick Navigation Menu: Drawer or bottom sheet for quick access to all sections
- Navigation Shortcuts: Keyboard shortcuts for power users
- Recently Viewed: Quick access to recently viewed items/screens
- Navigation Analytics: Track most-used navigation paths to optimize UX
🙏 Acknowledgments
This release focuses on improving app navigation and user experience by making it easier to move between different sections of the app.
🔗 Resources
- GitHub Repository: https://github.com/11bDev/keystone
- Firebase Console: https://console.firebase.google.com/project/keystone-1424f
- Web App: https://keystone-1424f.web.app
- Release Notes: https://github.com/11bDev/keystone/releases
📝 Changelog
Added
- Universal navigation widget (
AppNavigationActions) - Navigation icons on all main screens (Calendar, Lists, Projects, Search, Settings)
- Navigation icons on detail screens (Project Detail, List Detail)
- Context-aware navigation (current screen's button hidden)
- Tooltips for all navigation buttons
Changed
- Main screen navigation refactored to use reusable widget
- Improved navigation consistency across all screens
- Enhanced AppBar with navigation actions
Fixed
- Navigation flow in detail screens
- Consistent navigation experience across the app
Full Changelog: v1.2.2...v1.2.3
Keystone v1.2.2 - Mobile Authentication Fix
🐛 Critical Bug Fix
Fixed: Mobile users getting stuck on landing page after sign-in
The Issue
After successful Google Sign-In or email authentication, mobile users remained on the landing page instead of navigating to the main app.
The Fix
Updated all authentication methods in LoginForm to use Navigator.of(context, rootNavigator: true).pop() to ensure proper navigation on mobile platforms.
Changes
- Fixed
_signInWithEmail()navigation - Fixed
_signUpWithEmail()navigation - Fixed
_signInWithGoogle()navigation
Files Modified
lib/features/auth/login_form.dart- Updated dialog navigation to use root navigator
Build Information
- Version: 1.2.2+6
- APK Size: 56.8 MB
- SHA256:
fea15b630095081145c3515a14a82190e66cc686c2ea894db8a6ec91847aff91
Recommended: All v1.2.1 mobile users should upgrade to v1.2.2 immediately.
Full Changelog: v1.2.1...v1.2.2
v1.2.1 - Local-Only Mode
Release Notes - v1.2.1
Release Date: November 6, 2025
Build Number: 5
🎯 Local-Only Mode for Mobile Users
This release adds a new Local-Only Mode option for mobile users, giving them complete control over their data storage and privacy preferences.
✨ New Features
Mode Selection Screen (Mobile Only)
- First Launch Experience: Beautiful mode selection screen presented to mobile users on first app launch
- Two Storage Modes:
- 📱 Local Only: Keep all data on device, no authentication required
- ☁️ Cloud Sync: Sign in to sync data across devices (recommended)
- Visual Design: Gradient background with icon-based cards explaining each option
- Clear Benefits: Each mode displays its key advantages
Data Storage Settings (Mobile Only)
- New Settings Section: "Data Storage" section in Settings screen
- Mode Switching: Users can change between local-only and cloud sync modes anytime
- Smart Authentication: Switching to cloud sync automatically prompts for sign-in if needed
- Status Indicators: Visual feedback showing current sync status
- Safety Checks: Prevents accidental mode changes when already authenticated
Enhanced Privacy Options
- No Forced Authentication: Mobile users can use the app without creating an account
- Data Ownership: Local-only mode ensures data never leaves the device
- Flexible Migration: Easy transition from local to cloud mode when ready
🔧 Technical Changes
Architecture
- Added
appModeProviderto track user's selected storage mode - Created
ModeSelectionScreenwith responsive UI - Updated
AuthWrapperto handle mode-based routing on mobile - Added mode selection UI in
SettingsScreen(mobile only)
New Files
lib/features/auth/mode_selection_screen.dart- Mode selection UI component
Modified Files
lib/main.dart- UpdatedAuthWrapperfor mode-based routinglib/features/settings/settings_screen.dart- Added Data Storage sectionpubspec.yaml- Version bump to 1.2.1+5
🎨 User Experience Improvements
Mode Selection Screen
- Icon-Based Cards: Large, clear icons representing each mode
- Feature Highlights: Checkmarks listing key benefits
- Recommended Badge: Cloud sync marked as recommended option
- Gradient Background: Modern aesthetic matching app theme
Settings Integration
- Radio Buttons: Clear selection indicators for current mode
- Contextual Info: Helpful messages explaining each mode
- State Awareness: Disables options when not applicable
- Inline Login: Sign-in dialog appears directly when switching to cloud mode
📋 Platform Support
| Platform | Mode Selection | Local-Only | Cloud Sync |
|---|---|---|---|
| Android | ✅ Yes | ✅ Yes | ✅ Yes |
| iOS | ✅ Yes | ✅ Yes | ✅ Yes |
| Web | ❌ No | ❌ No | ✅ Yes |
| Linux | ✅ Yes | ✅ Yes | ✅ Yes |
Note: Web platform always requires authentication (cloud sync only)
🔄 Migration Guide
Upgrading from v1.2.0
-
Pull Latest Changes:
git pull origin master git checkout v1.2.1
-
Update Dependencies:
fvm flutter pub get
-
Build for Mobile:
# Android fvm flutter build apk --release # iOS fvm flutter build ios --release
-
Test Mode Selection:
- Uninstall previous version (or use fresh install)
- Launch app on mobile device
- Verify mode selection screen appears
- Test both modes
🎯 Usage Scenarios
Local-Only Mode Best For:
- ✅ Users who prioritize privacy
- ✅ Single-device usage
- ✅ Offline-only environments
- ✅ No cloud dependency preference
- ✅ Quick start without account creation
Cloud Sync Mode Best For:
- ✅ Multiple devices (phone, tablet, web)
- ✅ Automatic backups
- ✅ Cross-platform access
- ✅ Collaboration (future feature)
- ✅ Data recovery options
🐛 Bug Fixes
- Fixed mobile users being forced to authenticate even when not needed
- Improved first-launch user experience on mobile platforms
⚠️ Breaking Changes
None. This is a backward-compatible release.
For Existing Users:
- Existing authenticated users: Continue using cloud sync mode automatically
- Existing local installations: Will see mode selection on next launch (can choose local-only to maintain current behavior)
📦 Release Assets
APK Information
- File:
app-release.apk - Size: 56.8 MB
- SHA256:
854234120a63077c8c839e9883508b65f66d36641473589bae4b53c93ae9e4ba
Web Deployment
- URL: https://keystone-1424f.web.app
- Status: Updated with latest changes
- Mode: Cloud sync only (authentication required)
🔜 Future Enhancements
Based on this release, we're planning:
- Data Export/Import: Allow users to export local data and import to cloud
- Selective Sync: Choose which data categories to sync
- Conflict Resolution: Better handling of sync conflicts
- Offline Indicator: Visual indicator of sync status
- Data Migration Tool: One-click migration from local to cloud
🙏 Acknowledgments
This release focuses on user choice and privacy, allowing users to control how and where their data is stored. Thank you to all users who requested this feature!
🔗 Resources
- GitHub Repository: https://github.com/11bDev/keystone
- Firebase Console: https://console.firebase.google.com/project/keystone-1424f
- Web App: https://keystone-1424f.web.app
- Release Notes: See all releases at https://github.com/11bDev/keystone/releases
📝 Changelog
Added
- Mode selection screen for mobile users on first launch
- Local-only storage mode option
- Data Storage section in Settings (mobile only)
- Mode switching capability with authentication prompts
- Visual indicators for current storage mode
Changed
- Mobile users no longer forced to authenticate on first launch
- AuthWrapper now handles mode-based routing
Fixed
- Mobile authentication flow respects user preferences
- Improved privacy options for single-device users
Full Changelog: v1.2.0...v1.2.1
v1.2.0 - Multi-Tenant Authentication
Release Notes - v1.2.0
Release Date: November 6, 2025
Build Number: 4
🎉 Web Multi-Tenant Authentication
This major release introduces comprehensive web authentication support, enabling multi-tenant access to the Keystone productivity platform through Firebase Authentication and Google Sign-In.
✨ New Features
Authentication System
- Firebase Authentication Integration: Full Firebase Auth implementation with email/password and Google provider support
- Google Sign-In: Seamless Google account authentication for web users
- Multi-Tenant Support: User-scoped data isolation and authentication state management
- Auth State Management: Automatic route handling based on authentication status using Riverpod
User Interface
-
Landing Page: Beautiful gradient-based landing page showcasing app features
- Feature cards for Tasks, Notes, Journal, Calendar, and Projects
- Responsive design optimized for web
- Clean, modern aesthetic matching the app theme
-
Login/Signup Form: Comprehensive authentication UI
- Email and password authentication
- Google Sign-In button with branding
- Form validation and error handling
- Loading states and user feedback
- Modal popup presentation
-
Auth Wrapper: Smart navigation component
- Shows landing page for unauthenticated users on web
- Automatically navigates to main app after successful sign-in
- Handles loading and error states gracefully
Settings Integration
- Auth status display in settings screen (web only)
- Sign-in/Sign-out functionality
- User email display when authenticated
🔧 Technical Changes
Configuration
- Added
web/index.htmlwith Google Sign-In meta tags - Configured correct web OAuth client ID (client_type 3)
- Fixed OAuth client type mismatch (previously using iOS client ID)
- Added auth state stream providers in Riverpod
Dependencies
- Downgraded
google_sign_into6.3.0for API compatibility - Added
firebase_auth: ^5.3.3 - Added authentication-related packages
Architecture
- Created
AuthServiceclass for authentication logic - Implemented
AuthWrapperfor route protection - Added
authStateChangesProviderstream for real-time auth updates - Integrated Firebase Auth with existing Firestore setup
🐛 Bug Fixes
- Fixed OAuth client type mismatch (was using iOS client ID for web)
- Corrected Google Sign-In client ID configuration in
web/index.html - Fixed navigation flow after successful authentication
- Resolved dialog closing behavior in login form
- Added proper People API support for user profile information
📋 Setup Requirements
For Users
- Enable People API: Visit Google Cloud Console and enable the People API
- Configure Firebase Authentication: Enable Google sign-in provider in Firebase Console
- Wait for Propagation: After enabling APIs, wait a few minutes for changes to propagate
For Developers
- Ensure Firebase project is properly configured
- Verify
web/index.htmlcontains correct OAuth client ID - Check that Firebase Authentication has Google provider enabled
⚠️ Breaking Changes
Web Platform
- Authentication Required: Web users must now sign in before accessing the app
- New Landing Page: Unauthenticated users see landing page instead of direct app access
- Google Sign-In API: Downgraded to version 6.3.0 (some deprecated methods)
Mobile Platform
- No breaking changes for mobile users
- Existing functionality remains unchanged
📦 Files Changed
New Files
lib/features/auth/login_form.dart- Login/signup form componentlib/features/landing/landing_page.dart- Web landing pagelib/providers/auth_provider.dart- Authentication providerslib/services/auth_service.dart- Authentication serviceweb/index.html- Web entry point with OAuth configweb/manifest.json- Web app manifestweb/icons/*- Web app icons
Modified Files
lib/main.dart- Added AuthWrapper and routing logiclib/features/settings/settings_screen.dart- Added auth UI (web only)pubspec.yaml- Updated dependencies
Removed Files
- Cleaned up deprecated Hive-based sync services
- Removed old generated files
🔜 Known Issues
- People API Requirement: Must be manually enabled in Google Cloud Console
- Propagation Delay: API enablement may take a few minutes to activate
- Google Sign-In Deprecation: Current implementation uses deprecated web API (will be updated in future release)
🙏 Acknowledgments
This release enables the foundation for multi-tenant web access, paving the way for collaborative features and cloud-based productivity workflows.
📝 Migration Guide
Upgrading from v1.1.1
-
Pull Latest Changes:
git pull origin master git checkout v1.2.0
-
Update Dependencies:
fvm flutter pub get
-
Enable People API:
- Visit the Google Cloud Console link provided
- Click "Enable" for People API
- Wait 2-3 minutes
-
Test Authentication:
- Run on web:
fvm flutter run -d chrome - Click "Get Started" on landing page
- Try signing in with Google
- Run on web:
-
Verify Firebase:
- Check Firebase Console for Authentication provider
- Ensure Google sign-in is enabled
🔗 Resources
Full Changelog: v1.1.1...v1.2.0
v1.1.1 - Bug Fixes & Sync Improvements
Keystone v1.1.1 - Bug Fixes & Improvements
🐛 Bug Fixes
Mobile Google Sign-In Persistence
- Fixed: Mobile app no longer forces re-login after closing/reopening
- Improved: Google Sign-In session now persists between app restarts
- Enhancement: Session restoration happens automatically on app startup
Desktop OAuth Configuration
- Simplified: Desktop OAuth credentials now use simple config file
- Removed: No more
--dart-defineflags needed for desktop builds - Added:
lib/config/google_credentials.dartfor easy credential management - Security: Credentials file is gitignored automatically
✨ New Features
Sync Improvements
- Auto-sync on app startup: App now syncs immediately when launched (if signed in)
- Auto-sync on changes: Data syncs automatically whenever tasks/notes/journals are modified
- Sync log viewer: New "Sync Log" screen shows last 24 hours of sync activity
- View all sync attempts (startup, auto, manual)
- See success/failure status with timestamps
- Review error messages for failed syncs
Version Display
- Dynamic version: Settings now shows actual app version from pubspec.yaml
- Format: Displays as
version+buildNumber(e.g., 1.1.1+3)
📦 Installation
Android
Download and install the APK:
# Download
wget https://github.com/11bDev/keystone/releases/download/v1.1.1/keystone_1.1.1.apk
# Install on connected device
adb install keystone_1.1.1.apkMinimum Requirements:
- Android 5.0 (API 21) or higher
- ~20MB storage space
Linux (Debian/Ubuntu)
Download and install the DEB package:
# Download
wget https://github.com/11bDev/keystone/releases/download/v1.1.1/keystone_1.1.1_amd64.deb
# Install
sudo dpkg -i keystone_1.1.1_amd64.deb
sudo apt-get install -f # Install dependencies if neededMinimum Requirements:
- Ubuntu 22.04+ or equivalent Debian-based distribution
- GTK 3.0+
- ~50MB storage space
🔧 Desktop OAuth Setup (New Users)
For desktop (Linux/Windows/macOS), you need to set up Google OAuth credentials:
-
Create
lib/config/google_credentials.dart:cp lib/config/google_credentials.example.dart lib/config/google_credentials.dart
-
Get credentials from Google Cloud Console:
- Create OAuth 2.0 credentials (Desktop app type)
- Copy Client ID and Client Secret
-
Edit
lib/config/google_credentials.dartwith your credentials -
Build and run:
flutter run -d linux
See GOOGLE_SETUP.md for detailed instructions.
🔐 Security Notes
- Desktop credentials file (
lib/config/google_credentials.dart) is gitignored - Mobile uses SHA-1 fingerprint authentication (no secrets in code)
- All sync data encrypted in transit via HTTPS
- Local data stored in Hive encrypted boxes
📊 Technical Details
Sync Behavior
- Startup sync: Triggers when app launches (if auto-sync enabled and signed in)
- Change sync: Triggers silently on any data modification
- Manual sync: Available in Settings for on-demand sync
- Sync log: Stores last 24 hours of activity, auto-cleans older entries
Version Info
- Version: 1.1.1
- Build Number: 3
- Flutter: 3.9.2+
- Dart: 3.9.2+
📝 Changelog
Added
- Sync log viewer in Settings (last 24 hours)
- Auto-sync on app startup
- Auto-sync on data changes
- Config file for desktop OAuth credentials
- Setup script for easy credential configuration
- Dynamic version display in Settings
Fixed
- Mobile Google Sign-In session persistence
- Desktop OAuth 400 error with placeholder credentials
Changed
- Desktop OAuth now uses config file instead of environment variables
- Sync service initializes eagerly to restore sessions
- Version display reads from pubspec.yaml instead of hardcoded value
Security
- Added
lib/config/google_credentials.dartto .gitignore - Created example credentials file for developers
🔗 Links
✅ Verification
Verify package integrity with SHA256 checksums:
# Download checksums
wget https://github.com/11bDev/keystone/releases/download/v1.1.1/keystone_1.1.1_checksums.txt
# Verify
sha256sum -c keystone_1.1.1_checksums.txtExpected checksums:
a06b35f5995405c10b255cbbff940b0ab7c2351ba91e516c8075e7fa5368b70c keystone_1.1.1.apk
cc3c6be77f51267fa5bf5950bd0819d2ec40af8908df4c37399ef649a2219d38 keystone_1.1.1_amd64.deb
Full Changelog: v1.1.0...v1.1.1
v1.1.0 - Google Calendar Integration & UI Enhancements
Keystone v1.1.0 Release Notes
Release date: October 30, 2025
🎉 What's New
Google Calendar Integration
- Bidirectional Sync: Events now automatically sync with Google Calendar
- Add to Calendar Option: When creating events, choose to add them to Google Calendar
- Automatic Updates: Editing or migrating events updates them in Google Calendar
- Seamless Deletion: Deleting events removes them from Google Calendar too
Enhanced User Interface
- Responsive Calendar Layout:
- Desktop: Side-by-side calendar and events view
- Mobile: Vertical stacking for optimal screen usage
- Calendar constrained to 500px max width on desktop
- Collapsible Categories: Calendar view now has expandable sections for Tasks, Notes, and Journal Entries
- New Themes:
- Parchment Theme: Beautiful serif fonts perfect for reading and writing
- Newspaper Theme: Classic newsprint aesthetic (now the default!)
- Total of 5 themes: Light, Dark, Sepia, Parchment, Newspaper
Improved Task Management
- Enhanced Future View: Tasks grouped by month, then by date with full day names
- Date Labels: Display dates as "Monday the 21st" with proper ordinal suffixes
- Notes Context Menu: Long-press notes to edit or delete with confirmation
- Settings Refresh: Data properly refreshes after restore from Google Drive
Bug Fixes
- Fixed Google Drive sync 403 error on desktop (parents field issue)
- Improved error handling for calendar sync operations
- Better state management after data restore
🔧 Technical Changes
New Features
- Added
GoogleCalendarServicefor Calendar API integration - Extended Task model with
googleCalendarEventIdfield - OAuth scopes now include Google Calendar API access
- All task CRUD operations sync to Google Calendar when applicable
Security Improvements
- OAuth credentials moved to environment variables
- Added
.env.exampletemplate for easy setup - Created comprehensive
GOOGLE_SETUP.mdguide - Updated
.gitignoreto exclude sensitive credential files
Breaking Changes
flutter run -d linux \
--dart-define=GOOGLE_CLIENT_ID=your-id \
--dart-define=GOOGLE_CLIENT_SECRET=your-secretSee GOOGLE_SETUP.md for complete setup instructions.
📦 Installation
Android (APK)
File: keystone_1.1.0.apk (54 MB)
Requirements:
- Android 5.0 (API 21) or higher
- ~60MB storage space
Installation:
- Download
keystone_1.1.0.apk - Enable "Install from Unknown Sources" in Android settings
- Open the APK and install
Linux (Debian/Ubuntu)
File: keystone_1.1.0_amd64.deb (31 MB)
Requirements:
- Ubuntu 22.04+ or equivalent Debian-based distribution
- GTK 3.0+
- ~80MB storage space
Installation:
sudo dpkg -i keystone_1.1.0_amd64.deb
sudo apt-get install -f # Install dependencies if needed🔐 File Verification
Verify your downloads using SHA256 checksums:
3f5a8ee99ed2748819c6e0a99f11bd8552e5103d98baee60f21cd1ee2b91bf5c keystone_1.1.0.apk
b2b7ac4b160ad216b64e1af41aca9737f192b0b58dc6194a7ac975f093368517 keystone_1.1.0_amd64.deb
Verify:
sha256sum -c keystone_1.1.0_checksums.txt🚀 Getting Started
First-Time Setup
-
Google OAuth Setup (Required for sync features):
- Follow the comprehensive guide in
GOOGLE_SETUP.md - Set up OAuth credentials in Google Cloud Console
- Configure for both desktop and mobile
- Follow the comprehensive guide in
-
Initial Configuration:
- Launch the app
- Go to Settings → Sign in to Google Drive
- Choose to restore existing backup or start fresh
- Enable Auto Sync for automatic backups
Using Google Calendar Integration
-
Creating Events:
- Go to Tasks tab → Add button
- Select "Event" category
- Check "Add to Google Calendar" option
- Event will be created in your Google Calendar
-
Managing Events:
- Edit: Updates sync to Google Calendar automatically
- Migrate: Changes the event date in Google Calendar
- Delete: Removes from both app and Google Calendar
📚 Documentation
- GOOGLE_SETUP.md: Complete OAuth setup guide
- README.md: Full application documentation
- .env.example: Template for environment variables
🐛 Known Issues
- Desktop version requires OAuth credentials via environment variables
- Image picker not yet implemented for Linux desktop journal entries
- Auto-sync interval is fixed at 5 minutes (not configurable)
🔄 Upgrading from v0.0.1
-
Backup Your Data:
- If using v0.0.1, ensure you've synced to Google Drive
-
Install v1.1.0:
- Android: Simply install the new APK over the old one
- Linux: Install the new DEB package (
sudo dpkg -i keystone_1.1.0_amd64.deb)
-
Reconfigure OAuth (Desktop only):
- Desktop builds now use environment variables
- Update your OAuth credentials in Google Cloud Console
- Run with
--dart-defineflags (see GOOGLE_SETUP.md)
-
Restore Data:
- Sign in to Google Drive
- Choose to restore existing backup
- All your tasks, notes, and journal entries will be restored
🙏 Acknowledgments
Thank you to everyone who provided feedback on v0.0.1!
📝 Full Changelog
See the commit history for detailed changes:
- Google Calendar integration
- Responsive calendar layout with ExpansionTile
- Parchment and Newspaper themes
- Enhanced Future view with date grouping
- OAuth security improvements
- Bug fixes and stability improvements
Previous Release: v0.0.1
Keystone v0.0.1 - Initial Release
Keystone v0.0.1 Release Notes
Release Date: October 29, 2025
This is the initial release of Keystone, a cross-platform productivity app implementing the Bullet Journal methodology.
📦 Downloads
- Android APK:
keystone_0.0.1.apk(54 MB) - Linux Debian Package:
keystone_0.0.1_amd64.deb(16 MB)
✨ Features
Task Management
- ✅ Bullet Journal-style task tracking
- ✅ Task and Event categories
- ✅ Task states: pending, done, migrated, canceled
- ✅ Task migration to new dates
- ✅ Undo cancel functionality
- ✅ Optional notes on tasks
- ✅ Tag-based organization with hashtags
- ✅ Long-press context menu on mobile
- ✅ Overdue task highlighting
Note Taking
- ✅ Quick note creation
- ✅ Optional titles
- ✅ Multi-line content
- ✅ Tag-based organization
- ✅ Automatic timestamps
Journal
- ✅ Daily journal entries
- ✅ Image attachment support (mobile)
- ✅ Tag-based organization
- ✅ Timeline view
- ✅ Rich text entries
Calendar View
- ✅ Integrated calendar with all data types
- ✅ Event markers for days with items
- ✅ Grouped display by type
- ✅ Interactive task management
- ✅ Visual indicators for overdue tasks
Sync & Storage
- ✅ Google Drive automatic backup
- ✅ Manual sync options
- ✅ Backup restore on new device
- ✅ Platform-specific authentication (mobile & desktop)
- ✅ Local-first data storage with Hive
User Interface
- ✅ Material Design 3
- ✅ Dark mode support (follows system)
- ✅ Responsive dialogs optimized for mobile
- ✅ Scrollable content
- ✅ Toast notifications
🔧 Installation
Android
- Download
keystone_0.0.1.apk - Enable "Install from unknown sources" in settings
- Open the APK file to install
- Launch Keystone
Requirements: Android 5.0 (API 21) or higher
Linux (Debian/Ubuntu)
sudo dpkg -i keystone_0.0.1_amd64.deb
sudo apt-get install -fRequirements: Ubuntu 22.04+ or equivalent, GTK 3.0+
🐛 Known Issues
- Desktop OAuth requires manual setup on first launch
- Image picker not implemented for Linux desktop journal entries
- Auto-sync interval fixed at 5 minutes (not user-configurable)
- No search functionality across data types yet
📋 Minimum Requirements
Android
- OS: Android 5.0 (Lollipop, API 21) or higher
- RAM: 2GB recommended
- Storage: 20MB free space
Linux
- OS: Ubuntu 22.04+ or equivalent Debian-based distribution
- Libraries: GTK 3.0+, GLib 2.0
- RAM: 2GB recommended
- Storage: 50MB free space
🔐 Permissions
Android
- Internet: Required for Google Drive sync
- Storage: Required for database and images
- Camera: Optional, for journal photo attachments
Linux
- Network: Required for Google Drive sync
- File System: Required for database and OAuth tokens
🎯 Getting Started
- Launch the app
- Go to Settings (gear icon)
- Sign in to Google Drive
- Choose to restore existing backup or start fresh
- Start creating tasks, notes, and journal entries!
📝 Changelog
New Features
- Initial implementation of Bullet Journal task management
- Note-taking system with tags
- Journal entries with image support
- Integrated calendar view
- Google Drive synchronization
- Material Design 3 UI
- Dark mode support
- Long-press context menus
- Responsive dialogs
- Tag-based organization
Technical Details
- Flutter Version: 3.x
- Dart Version: 3.x
- State Management: Riverpod 2.6.1
- Database: Hive 2.2.3
- Cloud Sync: Google Drive API v3
- Calendar: table_calendar 3.1.2
🙏 Acknowledgments
- Built with Flutter
- Inspired by Bullet Journal
- Icons from Material Design Icons
🤝 Contributing
Contributions are welcome! See README.md for development setup instructions.
📄 License
MIT License - See LICENSE file for details
💬 Support
For issues or questions, please open an issue on GitHub.
Full Changelog: Initial release