chore: update project management and API integration#42
Conversation
SuperComboGamer
commented
Dec 12, 2025
- Added new scripts for server development and full application startup in package.json.
- Enhanced project management by checking for existing projects to avoid duplicates.
- Improved API integration with better error handling and connection checks in the Electron API.
- Updated UI components to reflect changes in project and session management.
- Refactored authentication status display to include more detailed information on methods used.
- Added new scripts for server development and full application startup in package.json. - Enhanced project management by checking for existing projects to avoid duplicates. - Improved API integration with better error handling and connection checks in the Electron API. - Updated UI components to reflect changes in project and session management. - Refactored authentication status display to include more detailed information on methods used.
Summary of ChangesHello @SuperComboGamer, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces a fundamental architectural shift, transforming the application from an Electron-centric desktop app into a versatile platform capable of running seamlessly in both web browsers and a simplified Electron environment. This was achieved by extracting all core application logic into a new, standalone backend server that communicates via a unified HTTP/WebSocket API. The change significantly enhances deployment flexibility, improves project and session management, and provides a more robust foundation for future development, ensuring a consistent user experience regardless of the operating mode. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This is a significant and well-executed architectural refactoring. The pull request introduces a standalone backend server in apps/server and refactors the Electron application to act as a thin client, communicating with the server via an HTTP/WebSocket API. This change decouples the frontend from the backend logic, enabling future web-based deployments while maintaining the Electron app.
Key changes include:
- A new
apps/serverpackage built with Express, containing all the core services previously in the Electron main process. - A new
HttpApiClienton the frontend (apps/app/src/lib/http-api-client.ts) that implements the same interface as the old IPC bridge, ensuring minimal changes to the UI components. - A simplified Electron main process (
main-simplified.js) that now primarily spawns the local server and handles native OS integrations like file dialogs. - Improved project and session management logic to prevent duplicates and handle errors more gracefully.
- Docker support for easy self-hosting of the new backend server.
The code is well-structured, and the inclusion of a plan.md demonstrates thoughtful planning. My review includes a couple of suggestions for improving error logging during server startup and a minor cleanup in the .gitignore file. Overall, this is an excellent pull request that greatly improves the application's architecture.
| } catch { | ||
| await new Promise((r) => setTimeout(r, 500)); | ||
| } |
There was a problem hiding this comment.
This catch block is empty, which means any errors during the server health check attempts will be silently ignored. This can make it very difficult to debug startup issues. It's better to log the error to understand why a retry is happening.
} catch (error) {
console.error(`[Electron] Server readiness check failed on attempt ${i + 1}. Retrying...`, error.message);
await new Promise((r) => setTimeout(r, 500));
}| # Build outputs | ||
| dist/ | ||
| .next/ | ||
| node_modules |
There was a problem hiding this comment.
This entry is redundant as node_modules/ is typically ignored at the root of a monorepo, which would cover this. If this is intended to be a specific rule, it's best practice to use a trailing slash (node_modules/) to ensure only directories are matched. Given the context, this line can likely be removed.
| import { createEventEmitter, type EventEmitter } from "./lib/events.js"; | ||
| import { initAllowedPaths } from "./lib/security.js"; | ||
| import { authMiddleware, getAuthStatus } from "./lib/auth.js"; | ||
| import { createFsRoutes } from "./routes/fs.js"; |
There was a problem hiding this comment.
- Removed unused Electron API methods and simplified the main process. - Introduced a new workspace picker modal for improved project selection. - Enhanced error handling for authentication issues across various components. - Updated UI styles for dark mode support and added new CSS variables. - Refactored session management to utilize a centralized API access method. - Added server routes for workspace management, including directory listing and configuration checks.
…ed accessibility - Relocated the button from the bottom sidebar to the header next to the AutoMaker logo. - Updated the button to be a compact icon-only version with a tooltip on hover. - Adjusted the header layout to accommodate the new button placement. - Removed the old button from the sidebar to streamline the UI.
- Deleted the "Agent Tools" navigation item from the sidebar. - Updated keyboard shortcuts and app store types to reflect the removal. - Cleaned up imports and references in relevant files. - Retained the `agent-tools-view.tsx` component for potential future use.
…ment - Added .automaker/images/ to .gitignore to prevent tracking of generated images. - Deleted obsolete agent-output.md and feature.json files related to removed "Agent Tools" feature. - Introduced a new script for uploading build artifacts to R2 and updating releases.json. - Enhanced GitHub Actions workflow to include artifact uploads for different platforms.
… selection - Replaced prompt-based directory input with a web-based directory picker in HttpApiClient. - Added server endpoint for resolving directory paths based on directory name and file structure. - Enhanced error handling and logging for directory and file selection processes. - Updated file picker to validate file existence with the server for better user feedback.
- Introduced a new FileBrowserProvider to manage file browsing state and functionality. - Added FileBrowserDialog component for user interface to navigate and select directories. - Updated Home component to utilize the file browser context and provide global access. - Enhanced HttpApiClient to use the new file browser for directory and file selection. - Implemented server-side route for browsing directories, including drive detection on Windows.
…handling - Introduced errorType property to the AutoModeActivity interface to categorize errors as "authentication" or "execution". - This addition improves the granularity of error reporting and handling within the application.
- Updated the build command for Electron to ensure it correctly references the workspace for the app. - This change improves the build process and resolves potential issues with workspace management.
- Updated CoursePromoBadge to accept a sidebarOpen prop, allowing it to render differently based on the sidebar's state. - Implemented tooltip functionality for the collapsed state, improving user interaction and accessibility. - Adjusted styles and structure to support both expanded and collapsed views of the badge.
- Added .automaker/ to .gitignore to prevent tracking of the entire directory. - Deleted outdated files including app_spec.txt, categories.json, memory.md, clean-code.md, and gemini.md from the .automaker context. - Enhanced the mcp-server-factory.js and spec-regeneration-service.js to enforce status management for new features, ensuring they default to "backlog" and clarifying status handling in comments. - Introduced a new file browsing endpoint in fs.ts to improve directory navigation while maintaining security constraints.
Resolved conflict in http-api-client.ts by adopting the server-side file browser dialog approach from fs/ui branch. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>