Commit Graph

614 Commits

Author SHA1 Message Date
22c238fbf8 ... 2025-09-13 18:19:53 +02:00
f0859afe27 ... 2025-09-13 18:06:36 +02:00
445001529a ... 2025-09-13 17:52:21 +02:00
291ee62db5 ... 2025-09-13 17:48:16 +02:00
f539c10c02 ... 2025-09-13 17:37:27 +02:00
a6bba54b5f ... 2025-09-13 17:29:27 +02:00
801826c9ba ... 2025-09-13 17:25:16 +02:00
3441156169 ... 2025-09-13 17:15:38 +02:00
aa44716264 ... 2025-09-13 16:26:25 +02:00
Mahmoud-Emad
6c971ca689 feat: Add custom crun root and enhance container lifecycle
- Use custom `crun --root` for all container commands
- Implement `cleanup_crun_state` for factory reset
- Add retry logic for `crun create` on "File exists" error
- Improve OCI config with `set_terminal`, unique env/rlimits
- Add default mounts for `/dev/pts`, `/dev/shm`, `/dev/mqueue`, `/sys/fs/cgroup`
2025-09-10 13:44:32 +03:00
ae2c856e7c Merge branch 'development' of github.com:freeflowuniverse/herolib into development
* 'development' of github.com:freeflowuniverse/herolib:
  ...
  add example heromodels call
  add example and heromodels openrpc server
  remove server from gitignore
  clean up and fix openrpc server implementation
  Test the workflow
  feat: Add basic `heropods` container example
  refactor: enhance container lifecycle and Crun executor
  refactor: streamline container setup and dependencies
  refactor: externalize container and image base directories
  feat: Add ExecutorCrun and enable container node creation
  refactor: Migrate container management to heropods module
  refactor: simplify console management and apply fixes
  ...
  ...
  ...
  ...
  ...
  ...
2025-09-09 06:30:52 +04:00
74a23105da ... 2025-09-09 06:30:45 +04:00
Timur Gordon
cd0cec3619 add example heromodels call 2025-09-08 19:50:17 +02:00
Mahmoud-Emad
41c8f7cf6d feat: Add basic heropods container example
- Initialize `heropods` factory using Podman
- Create, start, and stop a custom `alpine` container
- Execute a command within the container
- Add debug log for container command execution
2025-09-08 14:29:26 +03:00
Mahmoud-Emad
196bcebb27 refactor: enhance container lifecycle and Crun executor
- Refactor container definition and creation flow
- Implement idempotent behavior for `container.start()`
- Add comprehensive `ExecutorCrun` support to all Node methods
- Standardize OCI image pulling and rootfs export via Podman
- Update default OCI config for persistent containers and no terminal
2025-09-08 13:54:40 +03:00
Mahmoud-Emad
7001e8a2a6 refactor: externalize container and image base directories
- Add `base_dir` field to `ContainerFactory`
- Initialize `base_dir` from `CONTAINERS_DIR` env or user home
- Replace hardcoded `/containers` paths with `base_dir` variable
- Update image `created_at` retrieval to use `os.stat`
2025-09-07 16:42:34 +03:00
Mahmoud-Emad
a74129ff90 refactor: Migrate container management to heropods module
- Remove `herorun` module and related scripts
- Introduce `heropods` module for container management
- Enhance `tmux` module with pane clearing and creation
- Update `Container` methods to use `osal.Command` result
- Improve `ContainerFactory` for image & container handling
2025-09-07 15:56:59 +03:00
53552b03c2 ... 2025-09-07 14:47:58 +04:00
7f52368a2d ... 2025-09-07 11:43:22 +04:00
66dbcae195 ... 2025-09-07 06:40:45 +00:00
a247ad2065 ... 2025-09-07 10:17:16 +04:00
9f424d9d33 ... 2025-09-07 07:59:58 +04:00
bbac841427 ... 2025-09-07 07:21:40 +04:00
Mahmoud-Emad
8d03eb822d feat: add HeroRun remote container management library
- Introduce Executor for remote container orchestration
- Add Container lifecycle management with tmux
- Support Alpine and Alpine Python base images
- Auto-install core dependencies on remote node
- Include full usage examples and updated README
2025-09-03 18:32:47 +03:00
Mahmoud-Emad
dd400ba6fa style: improve code formatting; refactor module imports
- Apply consistent alignment for struct fields and parameters
- Standardize string literal delimiters to single quotes
- Refactor module import strategy in `models` package
- Enhance asset formatting for precise decimal display
- Remove unused imports and redundant `+}` syntax artifacts
2025-09-03 11:36:02 +03:00
Mahmoud-Emad
b84e9a046c feat: add declarative tmux pane command management
- Implement Redis-backed command state tracking
- Use MD5 hashing to detect command changes in panes
- Kill and restart pane commands only when necessary
- Ensure bash is the parent process in each pane
- Add pane reset and emptiness checks before command execution
2025-09-02 19:10:34 +03:00
Mahmoud-Emad
b3fe4dd2cd feat: add multi-line command support for tmux panes
- Refactor `send_command` to handle multi-line input
- Implement `send_multiline_command` to execute temp scripts
- Create temporary bash scripts for multi-line commands
- Add documentation and examples for multi-line commands
2025-09-02 16:02:46 +03:00
Mahmoud-Emad
52a1d2f80d feat: add real-time logging for tmux panes
- Introduce `tmux_logger` app for categorized output
- Implement pane logging via `tmux pipe-pane`
- Add `log`, `logpath`, `logreset` options to panes
- Update `Pane` struct with logging state and cleanup
- Refactor `logger.new` to use `LoggerFactoryArgs`
2025-09-01 19:48:15 +03:00
8ee02d175e ... 2025-09-01 16:15:25 +02:00
Mahmoud-Emad
4afedc6541 chore: remove deprecated tmux example scripts and testing docs
- Delete `TESTING.md`
- Remove `tmux_cleanup.heroscript`
- Remove `tmux_setup.heroscript`
- Update `cleanup_test.heroscript` to delete session
2025-08-31 19:54:16 +03:00
Mahmoud-Emad
97760cfe87 feat: Implement comprehensive process cleanup for tmux
- Add `Pane.kill_processes` for main and child processes
- Include fallback process group cleanup for panes
- Implement window-level process cleanup
- Integrate session-level process cleanup
- Add tmux process cleanup test scripts
2025-08-31 19:26:45 +03:00
Mahmoud-Emad
b957394d2a Merge branch 'development_decartive' of https://github.com/freeflowuniverse/herolib into development_decartive 2025-08-31 17:56:14 +03:00
Mahmoud-Emad
7d28129f06 feat: implement dynamic pane resizing
- Add `resize_panes_equal()` to `Window`.
- Dynamically apply `tmux` layouts based on pane count.
- Implement `get_width()` and `get_height()` for `Pane`.
- Update test to create 4 panes and use equal resizing.
2025-08-31 17:56:03 +03:00
cb43ec7f1a ... 2025-08-31 13:46:27 +02:00
9657e9aa97 Merge branch 'development' into development_decartive
* development: (53 commits)
  ...
  feat: Implement theming and modal UI improvements
  ...
  ...
  ...
  ...
  ...
  ...
  zinit client fixes
  git herocmd improvements
  ...
  ...
  ...
  ...
  ...
  ...
  ...
  ...
  ...
  ...
  ...
2025-08-31 13:22:58 +02:00
a25a12d4c9 ... 2025-08-31 13:22:52 +02:00
Mahmoud-Emad
4b0b5a26f8 feat: Add declarative tmux module functions
- Implement `tmux.session_ensure` for idempotent create
- Implement `tmux.window_ensure` with 1 to 16 pane layouts
- Implement `tmux.pane_ensure` to configure individual panes
- Add new declarative tmux example scripts
- Update docs for imperative and declarative paradigms
2025-08-31 11:59:23 +03:00
6edbfef12a ... 2025-08-29 10:44:46 +02:00
ce6cf3aa9c ... 2025-08-29 09:48:44 +02:00
03bb86bd72 ... 2025-08-29 09:48:13 +02:00
0f6d6f731a ... 2025-08-29 06:13:50 +02:00
0f2d9f0aba ... 2025-08-28 21:28:03 +02:00
0221c0a28c ... 2025-08-28 21:21:57 +02:00
03961b291b ... 2025-08-28 20:42:59 +02:00
66d2ef2d97 ... 2025-08-28 19:18:56 +02:00
0a02ea353a ... 2025-08-28 18:46:24 +02:00
fac9276479 ... 2025-08-28 18:27:32 +02:00
8440b18e2f ... 2025-08-28 17:37:57 +02:00
e340ad01ea ... 2025-08-28 17:19:32 +02:00
fb87adf87d ... 2025-08-28 16:02:28 +02:00