- Introduced `prole_cfg_data` to maintain configuration sections like Global, Network, and Kerberos Authentication.
- Implemented `_save_prole_cfg` to generate the `prole.cfg` file used for Ansible deployment.
- Captured environment and network settings into the configuration data structure.
- Integrated configuration updates throughout the installer workflow, ensuring comprehensive data capture for subsequent processes.
- Deleted ProleRouter-related YAML files (services, deployments, storage) and unused `call_openapi.py`.
- Updated installer to reference `prole-net/prole-scan` instead of outdated `net/scan`.
- Renamed `network_prompt.txt` to match the new directory structure.
- Moved prole-tools-app to prole-app at the project root to make it self-contained for transition to its own repository.
- Created prole-tools-app/dist/ directory to host build artifacts.
- Generated distribution artifacts (Prole Tools.app and Prole Tools.zip) using prole-app/build.sh package.
- Checked in the generated artifacts to prole-tools-app/dist/ (bypassing .gitignore for temporary release process).
Changes Summary
•
Renamed directory prole-tools-app/ to prole-app/.
•
Populated prole-tools-app/dist/ with the latest build output from prole-app/build.sh.
•
Staged all changes, including the forced addition of ignored artifacts in prole-tools-app/dist/.
- Refactored installer UI with updated canvas rendering, sidebar navigation, and footer buttons.
- Enhanced styling for macOS compatibility and consistent design across controls.
- Added Pytest-based unit tests for `screen.py` and `config.py`.
- Expanded dependency catalog with new tools like `tshark` and `pyshark`.
- Improved error tolerance for background rendering and added placeholders for Kerberos configuration.
- Added Ollama endpoint to `Config.swift` and `install.py`.
- Updated `ServiceChecker` to handle Ollama status checks and errors.
- Enhanced `StatusView` with a sixth traffic light for Ollama.
- Removed `init_primary_domain.sh` entirely; introduced `init_openbao.sh` with updated logic and streamlined functionality.
- Standardized script names to align with the OpenBao-centric workflow.
- Updated installer to dynamically fetch Prole database versions and reflect script changes.
- Improved TLS generation and k8s manifest handling for CloudNative-PG.
- Added new references to OpenBao initialization across scripts and UI components.
- Replace direct script invocation with `$PROLE_HOME/env.sh` wrapper for consistent environment setup across all components.
- Update runtime processes to dynamically resolve `$PROLE_HOME` or fallback to `$HOME/.prole`.
- Deprecate `init-port-forwards.sh` script bundling; remove from LaunchAgentManager and build system.
- Overhaul `env.sh` generation to include execution capability, customizable paths, and improved error handling.
- Standardize app name and paths to "Prole Tools" across all files and UI elements.
- Adjust build output to align with new structure, including executable naming and resource packaging.
feat(installer): clear overlay widgets on page switch; generate robust env.sh with safe PATH defaults
•
Fix UI bug where Environment page widgets persisted after navigation
◦
Destroy overlay widgets and clear page-specific canvas items in _clear_canvas_page()
•
Improve $PROLE_HOME/env.sh generation in _save_env_to_file()
◦
Export core PROLE_* directories
◦
Add portable _prole_add_path helper
◦
Prepend $PROLE_HOME/bin and common macOS paths: /opt/homebrew/bin, /usr/local/bin, /usr/bin, /bin, /usr/sbin, /sbin
◦
Export final PATH and include guidance for custom paths (e.g., Ollama app bundle)
Rationale: Ensures clean screen transitions in the installer and provides a minimal, safe PATH so shells launched by Prole.app can find docker and ollama by default.
- Remove Vagrant from dependency checks and UI; use Docker for workstation build.\n- Add WORKSTATION_VERSION ARG + OCI version label in workstation/Dockerfile; tag image as prole-workstation:<version>.\n- Add installer.workstation helpers: parse version, compose canonical docker build (auto platform flags on Apple Silicon).\n- Refactor install.py Workstation page to display/execute docker build; write logs to logs/workstation-docker-<ts>.log; update summary links.\n- Update Deploy page copy: "Build workstation Docker image".\n- Centralize footer buttons styling/layout with installer.screen.create_nav_footer and use it from install.py.\n- Update installer package docs to describe Docker-based workstation helpers.
- Set visible process/menu name to 'Prole Installer' via Foundation on macOS.
- Prefer .icns from built Prole.app for Dock icon; fallback to PNG from properties via AppKit.
- Keep Tk iconphoto as a universal fallback.
- Move image configuration to prole-app/prole.properties with new keys:
- icon=img/proleIcon.png
- background=img/proleLogoSepia.png
- Support legacy keys ui.icon and ui.background for backward compatibility.
Files:
- install.py: strengthen _set_app_identity for process title and Dock icon.
- installer/config.py: add getters prioritizing new keys (with fallbacks).
- prole-app/prole.properties: add canonical keys; retain legacy; document.
Result: On macOS the menu bar now shows 'Prole Installer' instead of 'Python' and the Dock uses the Prole 'P' icon by default. Non-macOS behavior unchanged.
- Default to Application Window mode with full app menu; status bar overlay remains available
- Restore clickable startup Splash Tip (5s) with animated GIF and live counter; use light theme (Aqua)
- Status bar item: monospaced "P" icon; left click shows overlay (status mode) or main window (app mode)
- Overlay: add Maximize button (□) to toggle back to main window; keep click‑through elsewhere
- Global hotkey Cmd+Opt+Shift+P toggles modes; Prole menu item mirrors the same toggle and updates title dynamically
- Application menu (Prole): Show Status Bar / Show Main Window (contextual), Refresh Now, Quit
- Application Window layout: non‑scrolling, vertical 1‑line rows (svc, k3s aggregate, local) with top‑right timestamp; bottom‑left controls (⟳ Refresh, _ Minimize)
- Parameterize endpoints via `prole.properties` (bundled + user override). Replace legacy raspberry with retropie defaults
- ServiceChecker + UI read endpoints from Config loader; tooltips/labels reflect configured hosts/ports
- Build script: generate `Info.plist` with `LSUIElement=false`; bundle resources (`prole-type.gif`, `prole.properties`); ad‑hoc codesign. Universal build supported
- Documentation: rewrite README with technical build/run/config details and operational posture
Files:
- proleStatus/Sources/: AppDelegate.swift, OverlayWindow.swift, StatusView.swift, StatusItemController.swift,
SplashTipWindowController.swift, MainWindowController.swift, AppStatusView.swift, ServiceChecker.swift, Config.swift
- proleStatus/build.sh
- proleStatus/prole.properties
- proleStatus/README.md
Notes:
- Build verified via `./build.sh build` (arm64). App starts in App Window mode with light theme; menu + hotkey + overlay toggle operate as intended
- Add root-level installer package: config, build, workstation, deploy
- Update install.py to import from installer.*
- Ensure build/deploy use top-level proleStatus only (no prole/proleStatus)
- Keep UI/behavior intact (wizard pages, embedded console)
This commit contains only files required to run ./install.py and the new installer/* modules.