Skip to content

Conversation

@ompugao
Copy link
Owner

@ompugao ompugao commented Dec 20, 2025

No description provided.

- Initialize Tauri project with Android support
- Implement git commands (clone, pull, sync, status, init, configure_remote)
- Implement file commands (list_files, get_file_info, create, delete, rename)
- Implement note commands (read, write, render using patto parser)
- Implement task aggregation (categorized by deadline: overdue, today, this week)
- Add comprehensive .gitignore for Tauri/Rust/Android artifacts
- Add Zustand store for state management
- FileList component with sorting (modified/created/links)
- NoteView with internal link and URL handling
- NoteEditor with Tab indent and auto-save
- TaskPanel with deadline categories (overdue/today/week/later)
- GitConfig for workspace selection and HTTPS credentials
- Install zustand and @tauri-apps/plugin-dialog
- Add tauri-plugin-dialog for directory selection
- Replace dialog-only workspace selection with text input + Browse button
- Allows manual path entry when dialog is unavailable (Android, permissions)
- Added secondary-btn and button-row CSS styles
- Add remote URL input field
- Add Clone button for cloning repos to local path
- Add Init button for git init
- Add Set Remote button for configure_remote
- Add status message display for user feedback
Uses @tauri-apps/api/path appDataDir() to get app-internal storage
which Android always has permission to write to
git2 on Android with vendored OpenSSL lacks CA certificates.
Added certificate_check callback to return CertificateOk.
- Add nested ul indentation (1.5em per level)
- Add bullet point styling for patto-line/patto-item
- Add responsive image styling with max-width
- New renderer.rs with CSS class-based HTML (no inline styles)
- Uses data-depth attributes for indentation
- Image path resolution with asset:// protocol
- Updated notes.rs to use MobileHtmlRenderer
- Rewrote NoteView.css for new renderer classes
- Android: Shows Remote URL + Clone button only (auto app data dir)
- Desktop: Shows local path selector + Browse button only
- Added platform detection via @tauri-apps/plugin-os
- Git status section only shown on desktop
- Added fix_file_timestamps() to walk files and set mtime
- Added get_file_last_commit_time() to find last commit for each file
- Uses git revwalk and tree diff to find commit that modified file
- Reports count of fixed files in clone result message
- Make git_clone async with tokio::spawn_blocking
- Add transfer_progress callback to emit progress every 5%
- Frontend listens to clone-progress events and updates status
- Shows received/total objects with percentage
- Count total files first, then emit progress every 10%
- Shows 'Fixing timestamps: 15/42 (35%)'
- Pass AppHandle to fix_file_timestamps for event emission
- Walk commits once (oldest first) to build file→timestamp map
- Apply timestamps in single pass
- Progress: 0-50% analyzing commits, 50-100% setting timestamps
- Much faster for repos with many files and commits
Bug fixes:
- Images: Use file:// protocol instead of asset:// for Android
- Status bar: Added safe-area-inset-top padding to note-header
- Empty lines: Added min-height and :empty pseudo-element styling

New feature:
- Text search in note view with highlighting
- Match count and navigation (▲/▼ buttons)
- Keyboard shortcuts: Enter/Shift+Enter to navigate, Escape to close
- Smooth scroll to current match
Images:
- Use convertFileSrc from Tauri API to convert file:// URLs
- Fixes Android WebView security restrictions

Search:
- Make search button-triggered instead of live typing
- Use browser's window.find() for native performance
- Fixes IME (kanji input) issues
- Improved button visibility and layout
- Search toggle is now fixed FAB-style button
- Added zustand/middleware persist to store
- Persisted fields: workspacePath, gitCredentials, sortBy
- App will now remember workspace and git credentials after restart
- Auto-loads files on startup if workspace path is saved
- Use useMemo to create highlightedHtml with mark tags
- activeQuery separates typing from searching
- Proper match navigation with scroll to current
- Added get_image_base64 Tauri command to read images as data URLs
- Uses base64 encoding for cross-platform image loading
- Frontend calls command for https://asset.localhost images
- Works around Android WebView security restrictions
- Added base64 crate dependency
- FileList, TaskPanel, GitConfig headers now have status bar padding
- Matches the fix already applied to NoteView
- Uses calc(env(safe-area-inset-top, 24px) + 12px)
- Store only query + index, not DOM elements (avoids stale refs)
- Re-query elements fresh on each navigation
- Use native scrollIntoView({ block: 'center' })
- Simpler, faster navigation logic
- Fixed safe-area-inset-top on all page headers
- Refactor git_pull, git_sync, and get_all_tasks to be async in Rust using tokio::task::spawn_blocking.
- Add spin animations for Git sync and Task refresh buttons.
- Fix spin icon centering using flexbox and explicit dimensions.
@ompugao ompugao marked this pull request as ready for review December 23, 2025 12:44
@ompugao
Copy link
Owner Author

ompugao commented Dec 24, 2025

seperate out to https://github.com/ompugao/patto-mobile

@ompugao ompugao closed this Dec 24, 2025
@ompugao ompugao deleted the feat/mobileapp_tauri branch December 30, 2025 08:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants