90 Commits

Author SHA1 Message Date
8b8475d11d Add Windows installer files to MSI build process
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
- Updated the farmcontrol-server.wxs file to include SetupArchive and SetupMetadata files for the MSI packaging.
- Modified the build-windows-msi.ps1 script to accept new parameters for SetupArchive and SetupMetadata, enhancing the MSI build process.
- Refactored the finalize-desktop-artifacts script to find and handle multiple Windows installer files, ensuring proper artifact publication.
2026-08-01 20:04:14 +01:00
90da336696 Update macOS build process and enhance artifact finalization
- Replaced the macOS build command in package.json to use a new script for better architecture handling.
- Added a new script for building macOS applications that supports both arm64 and x64 architectures.
- Enhanced the finalize-desktop-artifacts script to improve artifact discovery and cleanup, ensuring proper handling of macOS DMG and app bundles.
- Updated functions to streamline the process of finding and publishing artifacts, improving overall reliability.
2026-08-01 20:01:55 +01:00
6ed2347214 Refactor Windows MSI build script to improve argument handling
All checks were successful
farmcontrol/farmcontrol-server/pipeline/head This commit looks good
- Introduced a new function, ConvertTo-WixVersion, to standardize version formatting for the MSI build process.
- Updated the PowerShell script to use arrays for passing arguments to the candle and light commands, enhancing readability and reliability.
- Ensured proper handling of paths with spaces by quoting arguments appropriately.
2026-08-01 19:58:13 +01:00
503fd6e0de Add printer configuration methods for speed, extrude, velocity, acceleration, and corner settings
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
- Implemented new methods in PrinterClient to set speed factor, extrude factor, max velocity, max acceleration, square corner velocity, and min cruise ratio.
- Enhanced error handling and logging for each method to ensure robust operation and user feedback.
- Updated PrinterManager to handle new actions for these settings, allowing for dynamic adjustments during operation.
2026-08-01 19:37:13 +01:00
d4f3ba0fca Add pdfjs-dist dependency to package.json and bun.lock
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
- Included pdfjs-dist version 5.6.205 in both package.json and bun.lock to enhance PDF handling capabilities.
- Updated related dependencies to ensure compatibility with the new pdfjs-dist version.
2026-07-28 23:15:44 +01:00
bee95563d8 Remove redundant path specification for macOS package installation in finalize-desktop-artifacts script
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
2026-07-28 22:42:01 +01:00
b4755174d9 Update postPackage script path in Electrobun configuration for consistency
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
2026-07-28 22:40:03 +01:00
f3ae50c788 Add Windows MSI packaging and finalize desktop artifacts script
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
- Introduced a new Windows Installer XML (WXS) file for packaging the Farm Control Server as an MSI.
- Added a PowerShell script to build the MSI from the WXS file.
- Implemented a new script to finalize desktop artifacts, handling the publication of macOS and Windows packages.
- Updated the Linux build script to improve artifact naming and organization.
- Enhanced the Electrobun configuration to include a post-package script for finalizing desktop artifacts.
2026-07-28 22:37:38 +01:00
603fe14d26 Update Vite configuration to use CommonJS for SVGO plugin import
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
- Replaced ES module import of `vite-plugin-svgo` with CommonJS `require` to ensure compatibility with the current module system.
- Added `createRequire` to facilitate the CommonJS import in an ES module context.
2026-07-28 22:19:44 +01:00
bb538fe454 Refactor Linux binary build script for improved exit code handling
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
- Updated the exit code handling in the Linux binary build script to use the `exited` property from the compile result.
- Simplified the process of exiting the script on failure, enhancing clarity and reliability.
2026-07-28 22:18:27 +01:00
b2db8f0aa0 Refactor Bun installation checks in Jenkinsfile
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
- Renamed the function from `ensureBunInstalled` to `checkBun` for clarity.
- Simplified the Bun version check process by removing installation commands, focusing solely on verifying Bun's presence.
- Updated stage names in the CI pipeline to reflect the new function and improve readability.
2026-07-28 22:16:32 +01:00
de895fed7d Enhance Bun integration in Jenkinsfile
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
- Introduced helper functions to manage Bun installation paths for both Unix and Windows environments.
- Wrapped Bun installation and dependency setup stages in a new `withBun` closure for improved readability and organization.
- Ensured consistent handling of Bun installation across different stages of the CI pipeline.
2026-07-28 22:14:36 +01:00
0b1530a405 Refine Bun installation script in Jenkinsfile
Some checks reported errors
farmcontrol/farmcontrol-server/pipeline/head Something is wrong with the build of this commit
- Simplified the error handling in the Bun installation script by removing the 'pipefail' option.
- Ensured the script remains robust while maintaining compatibility across Unix environments.
2026-07-28 22:12:31 +01:00
4fadd072bd Fix path formatting for Bun installation in Jenkinsfile
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
- Updated the path separator from backslashes to forward slashes for consistency across environments.
- Ensured the PATH variable is correctly set for Bun installation on Windows systems.
2026-07-28 22:11:11 +01:00
ef4f440db4 Add Bun installation checks to Jenkins pipeline
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
- Introduced a function to ensure Bun is installed on both Unix and Windows environments.
- Updated the Jenkinsfile to call this function during the setup stages, improving the reliability of the build process.
- Ensured the PATH is correctly set for Bun after installation.
2026-07-28 22:07:14 +01:00
fa389e3eb7 Update CI pipeline, documentation, and config for Bun/Electrobun.
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 22:03:23 +01:00
8453e7c7cf Switch package manager and runtime from Node/pnpm to Bun.
Update build scripts, entry points, and packaged-path detection for the new toolchain.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 22:03:20 +01:00
07cbd2e07c Simplify PDF utils dynamic imports for Bun runtime.
Remove pkg bytecode workarounds that are no longer needed outside Node pkg builds.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 22:03:14 +01:00
7d8031e009 Route IPC through desktop notify and remove CLI OTP prompting.
OTP authentication is now handled by the desktop UI instead of stdin prompts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 22:03:11 +01:00
97974ada12 Add Electrobun configuration and renderer bridge for desktop app.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 22:03:06 +01:00
f0b6059e70 Add desktop RPC layer replacing Electron IPC and window management.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 22:03:03 +01:00
1728c08e39 Rename UI source directory from src/electron to src/app.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 22:02:57 +01:00
01b3cc1aa1 Update Linux package build command and enhance PDF utility imports
All checks were successful
farmcontrol/farmcontrol-server/pipeline/head This commit looks good
- Modify the Linux package build command in package.json to include the --no-bytecode flag for improved compatibility with ESM packages.
- Refactor pdfUtils.js to handle dynamic imports more robustly, ensuring compatibility with pkg snapshots and improving error handling for ESM modules.
- Simplify image processing logic by removing unnecessary default property access for the sharp module.
2026-07-28 02:58:03 +01:00
5fe8d76310 Refactor PDF conversion utilities for dynamic imports and option handling
All checks were successful
farmcontrol/farmcontrol-server/pipeline/head This commit looks good
- Replace static imports with dynamic imports using a helper function to improve compatibility with pkg snapshots.
- Simplify options handling by destructuring parameters, enhancing readability and maintainability.
- Update image processing logic to utilize destructured width and height options for resizing.
2026-07-28 02:18:27 +01:00
4677e17c7f Refactor file upload and progress handling in PrinterFileManager and PrinterClient
All checks were successful
farmcontrol/farmcontrol-server/pipeline/head This commit looks good
- Implement retry logic for file uploads in PrinterFileManager to enhance reliability.
- Update progress tracking in PrinterClient to streamline deployment feedback.
- Simplify progress callback management in FileManager for improved clarity.
- Enhance logging for upload processes and error handling across components.
2026-07-28 00:22:35 +01:00
853784e361 Enhance command line utilities and logging functionality
All checks were successful
farmcontrol/farmcontrol-server/pipeline/head This commit looks good
- Refactor commandline.js to improve server status checks and OTP authentication handling.
- Introduce new functions for checking server status, printing server information, and setting log levels.
- Add support for command line flags to manage log levels and server information display.
- Implement logging level management in localserver.js, allowing dynamic log level adjustments via API.
- Create a new logging.js module to centralize log level validation and application.
- Update commandlineutils.js to include utility functions for flag handling and improved CLI output.
2026-07-27 23:51:54 +01:00
e2600f8242 Refactor logging in PrinterDatabase and PrinterManager, and streamline config saving in SocketClient
- Update logging in PrinterDatabase to correctly reference the printer state type.
- Remove redundant call to stopWaiting() in PrinterManager for cleaner code execution.
- Ensure config saving in SocketClient occurs unconditionally for improved reliability.
2026-07-27 23:15:20 +01:00
3ca730ecee Add data directory management and enhance command line output
All checks were successful
farmcontrol/farmcontrol-server/pipeline/head This commit looks good
- Introduce functions to determine and create default data directories for both production and development environments in config.js.
- Update commandline.js to display the configured data directory and config path in the command line output.
- Modify filemanager.js to ensure the existence of a dedicated files directory within the data directory.
- Enhance localserver.js to include the data directory and config path in the server response, providing better context for users.
2026-07-27 18:15:29 +01:00
cb799ae8b7 Add command line handling for server status and authentication
- Introduce a new command line utility in commandline.js to manage server status checks and OTP authentication.
- Refactor index.js to utilize the new command line handling, improving clarity and separation of concerns.
- Enhance localserver.js to include connection status in the server response, providing more detailed information about the server state.
2026-07-27 18:09:50 +01:00
9a68358432 Enhance server initialization error handling and logging
All checks were successful
farmcontrol/farmcontrol-server/pipeline/head This commit looks good
- Introduce a check for the Farm Control Server status during initialization, providing clearer feedback when the server is not running.
- Improve error handling by logging specific failure messages instead of throwing errors, enhancing user experience during startup.
2026-07-27 02:17:34 +01:00
1525667f54 Update chalk dependency to version 5.4.1 and enhance server initialization logging
All checks were successful
farmcontrol/farmcontrol-server/pipeline/head This commit looks good
- Downgrade chalk from version 6.0.0 to 5.4.1 in package.json and pnpm-lock.yaml to ensure compatibility.
- Add a call to stopWaiting() in the server initialization process to improve user experience during startup.
2026-07-27 02:06:03 +01:00
ee9895d562 Update configuration and enhance CLI logging functionality
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
- Change log level in development config from "debug" to "info" for improved clarity.
- Add new dependencies: chalk and cli-spinners for enhanced CLI output.
- Introduce command line utility functions for better logging and spinner management.
- Refactor various components to utilize the new CLI logging methods, improving user feedback during operations.
- Update package and lock files to reflect new dependencies.
2026-07-27 02:03:17 +01:00
20080929f9 Update build discarder configuration in Jenkinsfile to retain the last 20 builds, improving build management. 2026-07-27 00:21:10 +01:00
22c96768a5 Add sleep delay before displaying server info in after-install script. 2026-07-27 00:20:27 +01:00
e04c06493b Delete builds older than 25.
All checks were successful
farmcontrol/farmcontrol-server/pipeline/head This commit looks good
2026-07-26 23:56:12 +01:00
d649ce42ff Add build discarding properties to Jenkinsfile
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
Introduce a build discarder configuration in the Jenkinsfile to retain the last 10 builds, improving build management and resource utilization.
2026-07-26 23:46:43 +01:00
3f5f02b087 Enhance SocketClient functionality and improve host update handling
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
Add a new method to handle host updates in SocketClient, ensuring that updates are processed correctly based on the host ID. Additionally, improve logging in index.js to include the first tag of the host for better visibility. This change streamlines the management of host information and enhances the overall logging clarity.
2026-07-26 23:42:48 +01:00
d616a45f21 Improve logging for host tags and streamline build information display
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
Refactor the logging in index.js to handle cases where host tags are absent, ensuring a clear output of "Tags: n/a" when no tags are available. Additionally, simplify the build information logging for better readability by consolidating logger.info calls.
2026-07-26 23:34:32 +01:00
9f927b1ef5 Enhance build process and server version management
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
Refactor build-linux-bundle.mjs to include package version and build number from environment variables and package.json. Update headless.js to streamline initialization and improve error handling. Introduce serverVersion.js to centralize version information retrieval, replacing redundant code in localserver.js. Enhance logging in index.js to display build number and version more clearly.
2026-07-26 23:27:08 +01:00
4d35df3051 Refactor headless mode initialization and enhance index.js structure
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
Replace the previous headless mode implementation in headless.js with a streamlined init function in index.js that accepts options. This change improves modularity and error handling during initialization. The logger setup and socket client connection have been removed from headless.js, centralizing the logic in index.js.
2026-07-26 23:21:07 +01:00
a62df6a5c6 Enhance build metadata handling and server info logging
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
Add a function to write build metadata to src/buildInfo.json during the build process in Jenkinsfile. Update local server to include version and build number in the /info endpoint response. Modify index.js to log detailed host information when the --info flag is used. Update .gitignore to include src/buildInfo.json and adjust config.json with new host credentials.
2026-07-26 23:14:04 +01:00
997b374e0e Add before-remove script for package uninstallation and streamline after-remove script
All checks were successful
farmcontrol/farmcontrol-server/pipeline/head This commit looks good
Introduce a new before-remove.sh script to stop and disable the farmcontrol-server service before package removal. Update after-remove.sh to only reload systemd, simplifying the uninstallation process. Modify build-linux-packages.sh to include the new before-remove script in the packaging process.
2026-07-26 22:56:42 +01:00
2e95075d3e Implement local server for OTP authentication and enhance socket client functionality
All checks were successful
farmcontrol/farmcontrol-server/pipeline/head This commit looks good
Add a LocalServer class to handle OTP authentication requests and server status checks. Update index.js to integrate local server functionality, including checks for server status and OTP authentication flow. Enhance SocketClient with connection waiting and improved OTP authentication handling. Update config.json with a new authCode for the host.
2026-07-26 22:48:02 +01:00
55b4c1a42e Add PDF conversion utilities and update build scripts for Linux packaging
All checks were successful
farmcontrol/farmcontrol-server/pipeline/head This commit looks good
Introduce a new pdfUtils.js file for on-demand PDF conversion using pdf-to-img and sharp. Update package.json to include new build scripts for Linux packaging, enhancing the build process with public package handling. Add .npmrc for public hoisting patterns and create build-linux-packages.sh for streamlined package creation.
2026-07-26 21:47:21 +01:00
d1592bf55e Refactor build scripts in package.json to enhance Mac and Linux build processes. Introduce new build:linux-bundle script, update dependencies, and remove deprecated WorkingDirectory from farmcontrol-server.service. Add import-meta-url.js for improved module handling in headless mode.
All checks were successful
farmcontrol/farmcontrol-server/pipeline/head This commit looks good
2026-07-26 21:37:20 +01:00
c04ce32431 Enhance part stock and stock event creation in PrinterDatabase. Update part retrieval to include partSku, improve logging for part stock creation, and add stock event creation with detailed information for subjobs.
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
2026-07-26 21:21:42 +01:00
8c6176b593 Enhance alert management in PrinterDatabase and PrinterClient. Introduce unique alert IDs using randomUUID, refactor alert removal methods to filter by code, and implement new methods for handling motion errors and axis movements. Update logging for improved clarity.
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
2026-07-26 21:12:07 +01:00
8da48a158f Update MacOS build command in Jenkinsfile and add specific build script for Mac architecture in package.json.
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
2026-07-26 19:30:27 +01:00
db8e035c86 Remove console.log statements for weight and filament detection in PrinterClient and PrinterDatabase. Update precision of currentFilamentUsed logging to 8 decimal places. Add placeholder for homeAxis method in PrinterClient.
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
2026-07-26 18:38:15 +01:00
57e0c5a30d Fix download progress calculation in FileManager and improve error handling in PrinterDatabase. Refactor PrinterClient to manage current filament state more effectively.
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
2026-07-26 16:54:18 +01:00