800 Commits

Author SHA1 Message Date
df1228ffa6 Refactor Windows installer progress parsing to improve file name handling
- Updated the parsing logic in `parseWindowsInstallerProgress` to extract the file name from the copy file path, ensuring only the file name is displayed in progress messages.
- Enhanced readability by renaming the variable from `relativePath` to `fileName` and added logic to handle paths correctly.
2026-08-09 13:40:02 +01:00
2068b7470b Refactor ObjectTable and ObjectTableNavigationButtons for improved state management
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Updated imports in ObjectTable and ObjectTableNavigationButtons to include getActiveFilterValues from TableStateContext.
- Simplified the useTableStatePersistence hook calls by removing unnecessary destructured values.
- Enhanced navigation button handlers with useCallback for better performance and readability.
- Added keyboard shortcuts for previous and next navigation, improving user experience.
2026-08-09 13:28:23 +01:00
68aed21cc5 Implement RPC request handling in Electrobun bridge and desktop RPC
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Introduced a new mechanism for handling RPC requests and responses in the Electrobun bridge, including timeout management for requests.
- Refactored the desktop RPC to utilize a centralized request handler, improving code organization and clarity.
- Added support for various RPC methods, enhancing communication between the renderer and the desktop environment.
2026-08-09 13:23:03 +01:00
bac09b6543 Merge branch 'electrobun' of https://git.tombutcher.work/tom/farmcontrol-ui into electrobun 2026-08-09 13:14:24 +01:00
0592f8e322 Enhance styling and functionality in App.css and DashboardNavigation component
- Added user-select properties to prevent text selection in the electron body, while allowing text selection in specific components.
- Updated z-index handling in the electron navigation wrapper for better layering.
- Modified the DashboardNavigation component to include isMaximized state, improving drag region logic for fullscreen and maximized states.
2026-08-09 13:14:20 +01:00
35ce3c39af Refactor ElectronContext for improved Electron detection and streamlined URL handling
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Simplified the `isElectron` function to directly return the result of `isElectrobunBridgeReady` or `isElectrobunDesktop`.
- Removed redundant checks and consolidated URL opening logic to enhance clarity and reduce code duplication.
- Updated event handling for Electron-specific features to utilize the desktopBridge API, improving maintainability and performance.
2026-08-09 12:09:45 +01:00
84a6a86bf3 Enhance Windows installer progress monitoring with improved outcome handling
- Refactored the `startWindowsInstallerProgressWatch` function to notify on installation success, failure, and stalling more reliably.
- Introduced a timeout mechanism to detect stalled installers, improving user feedback during the update process.
- Updated the `launchWindowsInstaller` function to pass new callback parameters for handling different installation outcomes, enhancing overall robustness.
2026-08-09 12:08:53 +01:00
bb2b8148c7 Refine Windows installer shutdown process for improved reliability
- Updated the `restartFarmControlAfterUpdate` function to terminate the Farm Control process directly, avoiding potential issues with tree kills that could affect the installer itself.
- Added a PowerShell command to clean up any lingering CEF helper processes after the main process exits, ensuring a smoother update experience without blocking file renames.
2026-08-09 11:37:14 +01:00
235b038ecc Refactor duplicate installation handling in AppUpdateProvider
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Updated state management for duplicate installations by setting default values to null, simplifying the logic for handling duplicates.
- Changed the initial state of duplicatePromptOpen to false, improving the user experience by preventing unnecessary prompts on load.
2026-08-09 11:19:55 +01:00
b254c0c94d Enhance AppUpdateProvider with improved duplicate installation handling
- Updated the state management for duplicate installations to include specific paths, enhancing clarity for users.
- Modified modal titles to include icons for better visual representation of update statuses.
- Adjusted modal properties for improved user experience during duplicate installation prompts.
2026-08-09 11:19:17 +01:00
7d79e0d206 Enhance MenuButton component in WindowAppMenu
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Added a new `logo` prop to the `MenuButton` component to conditionally adjust padding and margin based on the presence of a logo.
- Updated the `MenuButton` prop types to include the new `logo` boolean, improving flexibility in rendering menu items with logos.
2026-08-09 11:06:02 +01:00
557c334aa0 Refine Windows installer process for improved shutdown handling and error reporting
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Reduced the wait time for graceful shutdown of the Farm Control application from two minutes to two seconds, enhancing responsiveness during updates.
- Implemented additional checks to confirm the termination of the Farm Control process, providing clearer error messages if the process fails to stop.
- Adjusted the loop for verifying process termination to improve efficiency and reduce unnecessary delays.
2026-08-09 11:01:25 +01:00
28295f5912 Enhance Windows installer with parent process ID handling for improved update reliability
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Introduced a new variable to capture the parent process ID, allowing the installer to wait for the exact updater process instead of relying on executable names.
- Updated the `restartFarmControlAfterUpdate` function to handle the new parent PID, ensuring a more reliable shutdown of the Farm Control application during updates.
- Modified the `launchWindowsInstaller` function to pass the current process ID as an argument, enhancing the installer’s ability to manage application restarts effectively.
2026-08-09 10:37:02 +01:00
2bbecb0d6a Implement file enumeration and progress tracking in Windows installer
- Added a new PowerShell script to generate NSIS file lists, enabling the installer to track file copy progress.
- Updated the NSIS scripts to include macros for logging total bytes and individual file copy progress during installation.
- Enhanced the `winappupdate.js` to parse and display copy progress information, improving user feedback during updates.
2026-08-09 10:32:56 +01:00
67511e8b8c Enhance Windows installer update process with improved timing and error handling
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Increased sleep durations in the `restartFarmControlAfterUpdate` function to ensure smoother application restarts during updates.
- Refactored the `startWindowsInstallerProgressWatch` function to reduce polling interval for better responsiveness.
- Cleaned up code formatting for improved readability and consistency across the `appupdate.js` and `winappupdate.js` files.
2026-08-09 10:12:06 +01:00
6bf8648e1f Refine Windows installer update process to handle in-app updates more effectively
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Adjusted the success signal emission in the `restartFarmControlAfterUpdate` function to ensure the application quits and restarts correctly during in-app updates.
- Added a conditional check to control the progress success indication based on the update state, improving the user experience during installations.
2026-08-09 00:32:52 +01:00
de2c93d82f Introduce delay in Windows installer to improve update reliability
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Added a 3-second sleep before clearing leftover installation directories, allowing for smoother transitions during the update process and reducing potential conflicts with file locks.
2026-08-09 00:16:10 +01:00
a0ea239aa6 Enhance main window controls and introduce application menu
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Updated `mainWindow.js` to include a 'quit' action in the IPC handlers, allowing the application to close gracefully.
- Added a new `WindowAppMenu` component to manage application menu items, including options for 'About', 'Check For Updates', and 'Quit'.
- Refactored `DashboardNavigation` to integrate the new `WindowAppMenu`, improving the user interface for non-macOS platforms.
- Adjusted window control handling in `window.js` to support the new menu actions, ensuring consistent behavior across the application.
2026-08-09 00:09:42 +01:00
d7a7e798cb Enhance Windows installer update process with improved file handling and retry mechanisms
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Added a temporary path change to avoid renaming issues during the update process, ensuring smoother transitions between old and new installations.
- Implemented a retry mechanism for renaming the old installation directory, increasing reliability in scenarios where files are locked.
- Enhanced logging to provide clearer feedback during the installation and renaming steps, improving user experience.
2026-08-08 23:41:44 +01:00
2216a28ce3 Refactor Windows installer update process to improve file handling and cleanup
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Updated the `swapUpdateStaging` macro to streamline the update process by swapping the old and new versions of Farm Control more efficiently.
- Introduced a cleanup step to remove leftover `.old` directories from previous updates, enhancing the installer’s reliability.
- Improved logging for better visibility during the update and removal processes, ensuring users are informed of actions taken.
2026-08-08 23:16:03 +01:00
29bf25cc20 Refactor Windows installer update process for improved file handling
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Introduced new macros `tryRenameProbe` and `waitForInstallDirWritable` to enhance the update process by ensuring files are accessible before replacement.
- Updated the `swapUpdateStaging` macro to include checks for file locks and implement a retry mechanism for directory removal, improving reliability during updates.
- Enhanced detail logging for better visibility during the update process.
2026-08-08 22:35:37 +01:00
ddaeb3cfff Restrict application menu functionality to macOS
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Updated `applyApplicationMenu` and `setupApplicationMenuEvents` functions to return early if the platform is not macOS, ensuring that menu features are only available on macOS.
- Adjusted the `createMainWindow` function to conditionally call menu setup functions based on the operating system, improving cross-platform compatibility.
2026-08-08 22:19:39 +01:00
d2d64ef45d Refactor Windows installer for side-by-side updates and improved directory handling
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Updated the NSIS installer to support side-by-side updates, allowing the running application to remain active while a new version is staged in a separate directory.
- Modified the installation directory handling to ensure the correct paths are used for shortcuts and registry entries.
- Enhanced the update process to include a retry mechanism for folder swaps, improving reliability during updates.
- Adjusted comments and documentation for clarity on the update process and its implications.
2026-08-08 22:06:53 +01:00
8d689617f5 Add macOS volume icon for DMG packaging
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Introduced a new volume icon file `volicon.icns` for macOS DMG packaging, enhancing the visual presentation of the application during installation.
2026-08-08 20:58:05 +01:00
21a88e00d0 Add macOS headerpad fix for x64 binaries
Some checks reported errors
farmcontrol/farmcontrol-ui/pipeline/head Something is wrong with the build of this commit
- Introduced `fix-macos-headerpad.mjs` to address issues with Mach-O headerpad in x64 binaries, preventing corruption during code signing.
- Updated `ensure-electrobun-core.mjs` to call the new headerpad fix function, ensuring compatibility with macOS environments.
- This change resolves issue #485 by freeing load-command slots before signing binaries, enhancing stability on Intel Macs.
2026-08-08 20:57:37 +01:00
c1e0921c3e Update MSI wrapper to use dynamic log path and ensure cleanup on uninstall
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Modified the `ExeCommand` in `msi-wrapped.wxs` to log installation updates to the correct per-user directory.
- Added removal actions for update files and directories during uninstallation to maintain a clean environment.
2026-08-08 20:36:57 +01:00
9051b94767 Bump version
Some checks reported errors
farmcontrol/farmcontrol-ui/pipeline/head Something is wrong with the build of this commit
2026-08-08 20:24:33 +01:00
4ee72fdbac Add MSI wrapper support for Windows installer
Some checks reported errors
farmcontrol/farmcontrol-ui/pipeline/head Something is wrong with the build of this commit
- Updated `package.json` to include `msiWrapped` configuration for MSI installer generation.
- Introduced `msi-wrapped.wxs` file to define the MSI wrapper around the NSIS setup, enabling silent updates.
- Created `build-windows-msi.ps1` script to automate the MSI building process, integrating with the existing build workflow.
- Modified `finalize-desktop-artifacts.mjs` to call the new MSI build function, ensuring both NSIS and MSI installers are generated during the build process.
2026-08-08 20:21:50 +01:00
e32eda100a Enhance app update checks with improved error handling and duplicate installation detection
Some checks reported errors
farmcontrol/farmcontrol-ui/pipeline/head Something is wrong with the build of this commit
- Updated `AppUpdateProvider` to handle errors during startup checks for app updates and duplicate installations, improving robustness.
- Refactored logic to ensure duplicate installation checks are integrated into the update process, providing clearer feedback to users.
- Adjusted modal visibility conditions for duplicate installation prompts to streamline user experience.
2026-08-08 20:08:55 +01:00
c5d8d9cf70 Add duplicate installation checks and update handling in Electron context
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
2026-08-08 20:04:55 +01:00
e46e12f15d Add check for updates functionality in Electron context and menu
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Implemented `onCheckForUpdatesRequest` in `ElectronContext` to handle update requests from the renderer.
- Updated `AppUpdateProvider` to utilize the new check for updates functionality.
- Added "Check For Updates..." option in the desktop menu to trigger the update check.
- Enhanced event handling in the main window to support the new update check action, improving user experience for application updates.
2026-08-08 19:46:07 +01:00
3534a797fc Refactor About component to use getAppEngine for Electron context
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Replaced getElectronVersion with getAppEngine in the About component to retrieve the app engine type.
- Updated state management to reflect the app engine instead of the Electron version.
- Adjusted UI elements to display the app engine type, enhancing clarity for users regarding the application environment.
2026-08-08 19:40:30 +01:00
a5cad3b746 Integrate Electron context into NotificationProvider for responsive styling
- Added `ElectronContext` to the `NotificationProvider` to access the `isElectron` state.
- Updated the notification center's styling to conditionally apply a top margin based on whether the app is running in an Electron environment, enhancing the UI for better responsiveness.
2026-08-08 19:38:00 +01:00
998084160f Add app update engine handling and UI enhancements
- Introduced `getAppEngine` method in the Electron context to retrieve the current app update engine.
- Updated the Settings component to manage and display the app update engine, allowing users to select between 'Native' and 'Chromium'.
- Enhanced the app update logic to persist the selected engine and ensure proper handling during updates.
- Improved UI in the NewAppUpdate component to show the engine type associated with updates.
- Refactored app update settings management to include engine normalization and validation.
2026-08-08 19:37:51 +01:00
6b9e4bff63 Implement URL filtering in Electron navigation handlers
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Added checks in the Electron context to prevent navigation to '/favicon.ico', improving the handling of unwanted requests.
- Enhanced logging for navigation events to provide better visibility into the navigation process.
2026-08-08 19:05:35 +01:00
643dc46402 Update pnpm-lock.yaml to specify exact versions and add new dependency
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Changed the version specification for `electrobun` from caret (^) to exact version for consistency.
- Added `rcedit` as a new dependency with its version specified as 4.0.1.
- Updated `@types/node` dependency to version 25.2.0 for compatibility improvements.
2026-08-07 21:58:03 +01:00
2e08c454a7 Update dependencies and improve Electrobun configuration
Some checks failed
farmcontrol/farmcontrol-ui/pipeline/head There was a failure building this commit
- Changed the version specification for `electrobun` in `package.json` and `bun.lock` from caret (^) to exact version to ensure consistent builds.
- Enhanced `electrobun.config.ts` by adding path handling for reading `package.json`, improving file resolution and compatibility with module imports.
2026-08-07 21:56:52 +01:00
e81bc235a8 Remove unused installer icon handling in finalize-desktop-artifacts.mjs
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Deleted the logic for checking and applying the installer icon for macOS packages, streamlining the build process.
- This change simplifies the artifact finalization workflow by eliminating unnecessary steps related to the installer icon.
2026-08-04 23:39:57 +01:00
f52ca059a1 Enhance CEF bundling support and update build scripts
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Introduced `bundleCEF` configuration to control CEF bundling in the build process.
- Updated `Jenkinsfile` to support separate builds for CEF and native applications on Windows and macOS.
- Modified `build-macos.mjs` and `finalize-desktop-artifacts.mjs` to incorporate CEF bundling logic and adjust artifact naming accordingly.
- Enhanced logging to indicate CEF bundling status during builds, improving transparency in the build process.
2026-08-04 22:49:50 +01:00
482cc5dc86 Refactor DashboardNavigation to streamline notification context usage
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Removed unused `notificationCenterVisible` from the `DashboardNavigation` component, simplifying the context usage and improving code clarity.
2026-08-04 02:54:11 +01:00
be51fecba6 Update class logic in DashboardNavigation for electron navigation wrapper
Some checks failed
farmcontrol/farmcontrol-ui/pipeline/head There was a failure building this commit
- Adjusted the class name logic in the `DashboardNavigation` component to conditionally apply the 'electrobun-webkit-app-region-drag' or 'electrobun-webkit-app-region-no-drag' class based on the fullscreen state, enhancing the user interface for electron applications.
2026-08-04 02:40:53 +01:00
19ce749e80 Fix variable naming inconsistency in DashboardNavigation component
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Updated `isFullscreen` to `isFullScreen` for consistency with context naming conventions.
- Adjusted class logic in the navigation wrapper to reflect the updated variable name, ensuring proper styling application.
2026-08-04 02:29:26 +01:00
184a6621d9 Refactor DashboardNavigation and enhance CSS styles
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Updated `DashboardNavigation` to conditionally render controls based on authentication and platform.
- Improved user experience by displaying a "Farm Control" message when controls are hidden.
- Enhanced CSS for the electron navigation wrapper to include z-index and user-select properties for better UI handling.
2026-08-04 02:14:57 +01:00
d28bed7136 Enhance window management and navigation handling
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Added `isFullscreen` context to `DashboardNavigation` for improved UI responsiveness.
- Updated navigation class logic to conditionally apply styles based on fullscreen state.
- Refined window control logic in `window.js` to handle maximize/unmaximize actions more reliably, including asynchronous state synchronization on Windows.
- Introduced adjustments for window frame dimensions in `windows-work-area.js` to account for Win32 DWM overhangs, ensuring accurate maximized state detection and clamping.
2026-08-04 01:57:51 +01:00
eb1ee1e82b Update Windows installer to use FarmControl.exe and enhance process handling
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Replaced references to launcher.exe with FarmControl.exe in the installer script, ensuring consistency in application execution.
- Added taskkill command to stop running FarmControl processes during installation.
- Updated shortcut creation to point to FarmControl.exe for both desktop and start menu.
- Enhanced cleanup process to remove old executable backups and ensure proper application state after updates.
- Refactored updater logic to check for the presence of FarmControl.exe, improving application launch reliability.
2026-08-04 01:29:31 +01:00
893804a17c Add uninstaller icons and update packaging scripts
Some checks reported errors
farmcontrol/farmcontrol-ui/pipeline/head Something is wrong with the build of this commit
- Introduced `uninstaller.ico` and `farmcontroluninstaller.png` assets for the uninstaller.
- Updated `farmcontrol.nsi` to define and use the uninstaller icon.
- Modified build scripts to copy and handle the uninstaller icon during the packaging process.
- Enhanced pre-build script to include the uninstaller icon in the required assets check.
2026-08-04 01:18:44 +01:00
3c4dc329d0 Remove MSI installer support and related scripts
Some checks reported errors
farmcontrol/farmcontrol-ui/pipeline/head Something is wrong with the build of this commit
- Deleted the `msiWrapped` configuration from `package.json` and removed the associated `msi-wrapped.wxs` file to streamline the packaging process.
- Eliminated the `build-windows-msi.ps1` script, which was previously used for generating MSI installers, as part of the transition to a simpler installation method.
- Updated the `finalize-desktop-artifacts.mjs` script to remove references to the MSI build process, ensuring a cleaner artifact finalization workflow.
2026-08-04 01:15:29 +01:00
cfd0849cba Add app icon generation script and update related processes
- Introduced a new script `generate-app-icons.mjs` to automate the generation of application and installer icons.
- Updated error messages in the Windows MSI build script and the finalize artifacts script to reference the new icon generation command.
- Refactored the pre-build process to call the new icon generation script, ensuring required icons are created before building.
2026-08-04 01:11:18 +01:00
ee62045416 Add support for automatic restart after successful installation on Windows
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Implemented a new function to restart Farm Control after a successful installation, triggered by the `/RESTARTFC` option.
- Enhanced the installer script to wait for the application to close before relaunching, improving user experience during updates.
- Updated the app update process to conditionally schedule a restart based on the platform, ensuring compatibility with macOS.
2026-08-04 00:45:52 +01:00
6f2f7ed5c2 Enhance app update process with improved restart handling and Windows launcher resolution
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Added a delay in the app update process to ensure the UI reflects completion before quitting.
- Updated the Windows launcher resolution logic to prefer the installed launcher, improving post-update behavior.
- Refactored the restart script to use `.cmd` extension and optimized process handling for better reliability.
2026-08-04 00:24:38 +01:00