Skip to content

Enhance Electron app integration and add Python RPC server#249

Open
clstaudt wants to merge 11 commits into
swiftfrom
electron
Open

Enhance Electron app integration and add Python RPC server#249
clstaudt wants to merge 11 commits into
swiftfrom
electron

Conversation

@clstaudt
Copy link
Copy Markdown
Contributor

  • Added a new tuttle-rpc.spec file for bundling the Python RPC server with PyInstaller.
  • Implemented pack-electron target in the Makefile to build the Electron app bundle.
  • Created pack_electron.py script to manage the build process for the Electron app, integrating the Python sidecar.
  • Updated .gitignore to include Electron build artifacts and un-ignore the tuttle-rpc.spec file.
  • Introduced the PythonBridge class to facilitate communication between the Electron app and the Python backend.
  • Added essential Electron files including main.ts, preload.ts, and configuration files for Vite and TypeScript.
  • Developed the initial React components and API structure for the Electron app, enabling interaction with the Python server.

clstaudt added 11 commits May 10, 2026 14:52
- Added a new `tuttle-rpc.spec` file for bundling the Python RPC server with PyInstaller.
- Implemented `pack-electron` target in the Makefile to build the Electron app bundle.
- Created `pack_electron.py` script to manage the build process for the Electron app, integrating the Python sidecar.
- Updated `.gitignore` to include Electron build artifacts and un-ignore the `tuttle-rpc.spec` file.
- Introduced the `PythonBridge` class to facilitate communication between the Electron app and the Python backend.
- Added essential Electron files including `main.ts`, `preload.ts`, and configuration files for Vite and TypeScript.
- Developed the initial React components and API structure for the Electron app, enabling interaction with the Python server.
…ent features

- Introduced LLM integration for AI-powered document processing, including configuration management and model discovery.
- Added new dependencies for llama-index-core and llama-index-llms-ollama in `pyproject.toml`.
- Implemented document text extraction and structured entity extraction for contacts, clients, contracts, and projects.
- Enhanced `ClientsView`, `ContractsView`, and `ProjectsView` components in the Electron app to support document import and parsing functionalities.
- Updated RPC server methods to handle new entity extraction logic and improve data serialization for nested relations.
- Introduced new UI components for managing parsed entities, including import functionality and error handling for document parsing.
- Refactored existing views to maintain consistency and improve user experience across the application.
- Replaced ProviderButton components with a select dropdown for provider selection.
- Added conditional rendering for Ollama URL and Anthropic API key input fields based on selected provider.
- Updated input types for API key to password for security.
- Enhanced model selection logic to accommodate different providers.
- Removed unused ProviderButton component to streamline code.
+ Created `.cursorrules` for lean-ctx MCP tool preferences.
+ Added `AGENTS.md` for agent instructions on lean-ctx usage.
+ Introduced `LEAN-CTX.md` detailing tool preferences and read modes.
+ Established `.cursor/rules/lean-ctx.mdc` for CLI-redirect rules.
+ Included `.lean-ctx/graph.meta.json` for graph metadata tracking.
+ Enhanced documentation for proactive tools and session management.
+ Introduced `app_db.py` for managing `~/.tuttle/app.db`, including user registry and app settings.
+ Added `RegisteredUser` and `AppSetting` models for user and settings management.
+ Implemented methods for user operations: listing, adding, removing, and setting active users.
+ Enhanced LLM configuration management by integrating with the centralized database.
+ Updated RPC server to support user management operations and settings retrieval.
+ Refactored Electron app components to handle user registration and switching functionality.
+ Added `UserRegistrationDialog` for creating new users in the Electron app.
+ Introduced `TimelineView` for event visualization with search and filter capabilities.
+ Added `TimelineView` import to `Shell` component.
+ Implemented event loading, filtering, and grouping by month in `TimelineView`.
+ Enhanced UI with search input and category filters for better user interaction.
+ Added loading and empty state handling in `TimelineView` for improved UX.
+ Introduced `TaxIntent` and `SalaryIntent` in `_get_intent` for handling tax and salary operations.
+ Added new RPC methods for fetching spendable income, income tax estimates, and quarterly VAT.
+ Implemented `SalaryView` and `TaxReservesView` components for displaying salary and tax data in the Electron app.
+ Integrated new views into the `Shell` component for navigation.
+ Enhanced loading states and data handling for improved user experience.
+ Implemented `users.update_profile` method in RPC server for profile updates.
+ Enhanced `SettingsView` to manage user profile data, including address handling.
+ Added loading and saving states for profile operations in the UI.
+ Integrated profile data fetching and state management in `SettingsView`.
+ Updated UI components for improved user interaction and feedback during profile updates.
…omponents

- Deleted `app.py`, `fix_controls.py`, and various view files for clients, contacts, and authentication.
- Removed `pack_app.py` and `test_app_bundle.py` scripts for app packaging.
- Updated `Makefile` to streamline Electron app build process.
- Adjusted `pyproject.toml` to reflect dependency changes and added new project scripts.
- Enhanced `README.md` with architecture details and updated installation instructions.
- Introduced GitHub Actions workflow for automated Electron app packaging.
- Added experimental native macOS client documentation in `TuttleMac/README.md`.
+ Modified CSS for `invoice-minimal` and `invoice-modern` to enhance layout and styling.
+ Refactored HTML structure to implement DIN 5008 format for invoices.
+ Added language support for invoice labels and date formatting in rendering.
+ Updated `SettingsView` to manage invoicing preferences including template and language selection.
+ Enhanced demo data installation to support invoice rendering with selected preferences.
+ Improved user experience by integrating language and template settings into the invoicing workflow.
…or macOS EventKit dependency; enhance demo.py calendar generation; implement EventKit bridge in eventkit_bridge.py; extend RPC server for time tracking; integrate TimeTrackingView in Electron app
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.

1 participant