Skip to content

feat(omnigent): implement portable host runtime packaging (Task A) - #49

Closed
nicklongmore86 wants to merge 4 commits into
techjarves:mainfrom
nicklongmore86:feature/omnigent-host-runtime
Closed

nicklongmore86 wants to merge 4 commits into
techjarves:mainfrom
nicklongmore86:feature/omnigent-host-runtime

Conversation

@nicklongmore86

Copy link
Copy Markdown

Summary

Implements Task A: Runtime Packaging for the Omnigent Host Add-on on ClaudeCode-Portable.

Key Changes

  1. Hash-Locked Standalone Python 3.12 Runtime:

    • Pinned Astral python-build-standalone (release 20261003) in provision/assets.json for 4 Unix targets:
      • darwin-x64 (a8fd7a91852f19b6d959793ef41fad048631ccb2a334a9ecdf573255298f7978)
      • darwin-arm64 (316a463172740e71d8dca1f2730784e325f3f720941137b5d674d5801a632213)
      • linux-x64 (f937814031eab4698ca6d07ec606ede1825768f3f3e99af76d9db3900bee03c5)
      • linux-arm64 (95c01982c9fcb9d95b0acfdb5eb8a6e0099dd11edf062314a474228d93f2b765)
    • Extended provision/download.py to extract standalone Python, normalize bin/python3, verify share/terminfo definitions, and stage binary-only dependencies into tools/omnigent-runtime.
  2. Binary-Only Dependency Specification:

    • Created tools/omnigent-runtime-requirements.txt specifying pinned host agent dependencies (omnigent==0.16.0, fastapi, websockets, psutil, pexpect, pyte, etc.) using --only-binary :all: to guarantee zero target compilation.
  3. Relative Wrappers with Interactive Prompting & Machine Identity:

    • Implemented launch/lib/omnigent-host.sh and tools/omnigent-host.
    • Interactive Server URL Prompting: Prompts for server URL on first launch if not configured; validates URL scheme (http, https, ws, wss); saves to credentials/omnigent-server-url (mode 600).
    • Per-Machine Host Identity: Mints stable UUID4 per physical hardware machine derived from machine ID, saves to credentials/omnigent-hosts.json on the drive, sets OMNIGENT_HOST_ID and OMNIGENT_HOST_NAME, and prevents cross-machine session resumption.
    • Relocation Resilience & Zero-Host Footprint: Sets PYTHONHOME, PYTHONNOUSERSITE=1, PYTHONPATH, TERMINFO, TERMINFO_DIRS, HOME, and TMPDIR relative to mounted drive paths. Zero files written to the host filesystem.
  4. Testing & Verification:

    • Extended tests/drive_provision_test.py (10 unit tests covering Python assets, pip CLI lookup, safe extraction, terminfo preservation, and checksum coverage).
    • Extended tests/drive-launcher.test.mjs (covering server URL prompting/validation, per-machine identity isolation, moved-path runtime environment, and relative CLI invocation).
    • Updated START-HERE.md and docs/DRIVE-SPEC.md.

Gates

  • npm test: 97 collected / 96 passed / 1 skipped (pwsh)
  • python3 -m unittest discover -s tests -p 'drive_provision_test.py': 10 passed
  • Shellcheck: passed clean across launch/linux.sh, launch/macos.command, launch/lib/*.sh, provision/*.sh, and tools/omnigent-host
  • npm run check: passed (syntax and runtime reference checks)

nicklongmore86 and others added 4 commits October 8, 2026 10:25
* Build partitioned portable drive with native Claude and Codex

Add verified release provisioning, native-volume launchers, shared subscription credentials, session supervision, partition safety checks and host-write audits. Keep Node scoped to the dashboard and document prep and platform limits.

Co-authored-by: omnigent <noreply@omnigent.ai>

* Harden portable credentials, audit scratch and launcher cleanup

Normalize Claude token CR/LF on save and load, traverse audit root symlinks, isolate and clean audit scratch, add null-identity refusal regressions, poll child cleanup, and support distro npm layouts. Harden native argument quoting and error retrieval.

Co-authored-by: omnigent <noreply@omnigent.ai>

* Assert normalized token in Windows regression fixture

Co-authored-by: omnigent <noreply@omnigent.ai>

* Set native GPT types and no-default-letter flags for foreign volumes

Use explicit type GUIDs and set bit 63 only on APFS/ext4 partitions. Add exact dry-run command coverage and document format-prompt warnings, post-diskutil verification and hardware guidance.

Co-authored-by: omnigent <noreply@omnigent.ai>

---------

Co-authored-by: omnigent <noreply@omnigent.ai>
Add WSL2 mode with drive-resident ext4 state and native CLI support
- Add pinned Astral standalone Python 3.12 archives for 4 Unix targets (linux-x64, linux-arm64, darwin-x64, darwin-arm64) to provision/assets.json.
- Extend provision/download.py to extract portable Python, verify terminfo, and stage binary-only dependencies into tools/omnigent-runtime.
- Implement relative wrapper tools/omnigent-host and launch/lib/omnigent-host.sh with interactive server URL prompting and per-machine host identity tracking.
- Add pinned tools/omnigent-runtime-requirements.txt.
- Add tests in tests/drive_provision_test.py and tests/drive-launcher.test.mjs.
- Update docs/DRIVE-SPEC.md and START-HERE.md.
@nicklongmore86

Copy link
Copy Markdown
Author

Closing: intended for fork nicklongmore86/ClaudeCode-Portable

@nicklongmore86
nicklongmore86 deleted the feature/omnigent-host-runtime branch October 8, 2026 19:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant