Skip to content
This repository was archived by the owner on Jan 19, 2026. It is now read-only.

Releases: ninepointlabs/keystone

Release v1.2.3 - Universal Navigation

Choose a tag to compare

released this 06 Nov 23:15

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 AppNavigationActions widget 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 widget
  • lib/features/calendar/calendar_screen.dart - Added navigation actions
  • lib/features/lists/lists_screen.dart - Added navigation actions
  • lib/features/lists/list_detail_screen.dart - Added navigation to detail view
  • lib/features/projects/projects_screen.dart - Added navigation actions
  • lib/features/projects/project_detail_screen.dart - Added navigation to detail view
  • lib/features/search/search_screen.dart - Added navigation actions
  • lib/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

  1. Pull Latest Changes:

    git pull origin master
    git checkout v1.2.3
  2. Update Dependencies:

    fvm flutter pub get
  3. 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


🔜 Future Enhancements

Based on this release, potential improvements include:

  1. Breadcrumb Navigation: Visual breadcrumb trail showing navigation history
  2. Quick Navigation Menu: Drawer or bottom sheet for quick access to all sections
  3. Navigation Shortcuts: Keyboard shortcuts for power users
  4. Recently Viewed: Quick access to recently viewed items/screens
  5. 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


📝 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

Choose a tag to compare

released this 06 Nov 15:19

🐛 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

Choose a tag to compare

released this 06 Nov 14:32

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 appModeProvider to track user's selected storage mode
  • Created ModeSelectionScreen with responsive UI
  • Updated AuthWrapper to 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 - Updated AuthWrapper for mode-based routing
  • lib/features/settings/settings_screen.dart - Added Data Storage section
  • pubspec.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

  1. Pull Latest Changes:

    git pull origin master
    git checkout v1.2.1
  2. Update Dependencies:

    fvm flutter pub get
  3. Build for Mobile:

    # Android
    fvm flutter build apk --release
    
    # iOS
    fvm flutter build ios --release
  4. 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


🔜 Future Enhancements

Based on this release, we're planning:

  1. Data Export/Import: Allow users to export local data and import to cloud
  2. Selective Sync: Choose which data categories to sync
  3. Conflict Resolution: Better handling of sync conflicts
  4. Offline Indicator: Visual indicator of sync status
  5. 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


📝 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

Choose a tag to compare

released this 06 Nov 13:44

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.html with 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_in to 6.3.0 for API compatibility
  • Added firebase_auth: ^5.3.3
  • Added authentication-related packages

Architecture

  • Created AuthService class for authentication logic
  • Implemented AuthWrapper for route protection
  • Added authStateChangesProvider stream 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

  1. Enable People API: Visit Google Cloud Console and enable the People API
  2. Configure Firebase Authentication: Enable Google sign-in provider in Firebase Console
  3. 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.html contains 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 component
  • lib/features/landing/landing_page.dart - Web landing page
  • lib/providers/auth_provider.dart - Authentication providers
  • lib/services/auth_service.dart - Authentication service
  • web/index.html - Web entry point with OAuth config
  • web/manifest.json - Web app manifest
  • web/icons/* - Web app icons

Modified Files

  • lib/main.dart - Added AuthWrapper and routing logic
  • lib/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

  1. People API Requirement: Must be manually enabled in Google Cloud Console
  2. Propagation Delay: API enablement may take a few minutes to activate
  3. 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

  1. Pull Latest Changes:

    git pull origin master
    git checkout v1.2.0
  2. Update Dependencies:

    fvm flutter pub get
  3. Enable People API:

    • Visit the Google Cloud Console link provided
    • Click "Enable" for People API
    • Wait 2-3 minutes
  4. Test Authentication:

    • Run on web: fvm flutter run -d chrome
    • Click "Get Started" on landing page
    • Try signing in with Google
  5. 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

Choose a tag to compare

released this 30 Oct 16:13

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-define flags needed for desktop builds
  • Added: lib/config/google_credentials.dart for 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.apk

Minimum 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 needed

Minimum 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:

  1. Create lib/config/google_credentials.dart:

    cp lib/config/google_credentials.example.dart lib/config/google_credentials.dart
  2. Get credentials from Google Cloud Console:

    • Create OAuth 2.0 credentials (Desktop app type)
    • Copy Client ID and Client Secret
  3. Edit lib/config/google_credentials.dart with your credentials

  4. 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.dart to .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.txt

Expected 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

Choose a tag to compare

released this 30 Oct 14:57

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 GoogleCalendarService for Calendar API integration
  • Extended Task model with googleCalendarEventId field
  • 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.example template for easy setup
  • Created comprehensive GOOGLE_SETUP.md guide
  • Updated .gitignore to exclude sensitive credential files

Breaking Changes

⚠️ Desktop builds now require environment variables:

flutter run -d linux \
  --dart-define=GOOGLE_CLIENT_ID=your-id \
  --dart-define=GOOGLE_CLIENT_SECRET=your-secret

See 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:

  1. Download keystone_1.1.0.apk
  2. Enable "Install from Unknown Sources" in Android settings
  3. 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

  1. 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
  2. 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

  1. 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
  2. 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

  1. Backup Your Data:

    • If using v0.0.1, ensure you've synced to Google Drive
  2. 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)
  3. Reconfigure OAuth (Desktop only):

    • Desktop builds now use environment variables
    • Update your OAuth credentials in Google Cloud Console
    • Run with --dart-define flags (see GOOGLE_SETUP.md)
  4. 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

Choose a tag to compare

released this 29 Oct 23:42

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

  1. Download keystone_0.0.1.apk
  2. Enable "Install from unknown sources" in settings
  3. Open the APK file to install
  4. 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 -f

Requirements: Ubuntu 22.04+ or equivalent, GTK 3.0+

🐛 Known Issues

  1. Desktop OAuth requires manual setup on first launch
  2. Image picker not implemented for Linux desktop journal entries
  3. Auto-sync interval fixed at 5 minutes (not user-configurable)
  4. 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

  1. Launch the app
  2. Go to Settings (gear icon)
  3. Sign in to Google Drive
  4. Choose to restore existing backup or start fresh
  5. 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

🤝 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