Make the Linux local node bundle relocatable

Task 10178 · Done · Coder · created · updated

Supersedes draft 10145. Reproduction (Task 10133, Ubuntu 24.04 VM): the native node (`infra/local-edition/node/jaah-local-node install`) comes online and is placed tasks, but every launch fails `launch_failed` (AC-9 blocked; AC-16, AC-18–20 blocked behind it). `Dockerfile.node` builds only from the monorepo. Cause: runner launch and hooks spell packaged root paths — `/usr/local/bin/skynet-credential` (`apps/jaahd/account_auth.py` CREDENTIAL_HELPER on Linux), `/usr/lib/skynetd/skynet-git-credential`, and `/usr/lib/skynetd/...` hook/plugin paths — none of which exist on a no-root native install. The bundle closure (`tools/build_jaahd_bundle.py` MANIFEST: `infra/host/fleet-harness`, harness `tools/*.py`, `infra/jaah/node_reprovision.py`, `packages/governance`) is not in `tools/local_edition/manifest.toml`, and PRD §7 forbids shipping `infra/host/`/`infra/jaah/`. Fix: make the Linux local node relocatable the way macOS already is (`host_platform` `lib_root`, `runner_env.rehome_lib_paths`, credential client under the bundle's `bin/`); have the installer render the credential client, `jaah-call` and git helper under the user's data dir; move what a local node needs out of `infra/host`/`infra/jaah` so `node/stage_bundle.py` stages from the public tree and `Dockerfile.node` builds there. Out of scope: CP caps, bootstrap/`app.local_node`, compose/install.sh/publisher, cloud node packaging (must be unchanged). Done means: - On an Ubuntu 24.04 host without sudo, `jaah-local-node install` from the built tree, then a coder task on `jaah-ai/jaah-local-e2e-fixture` clones under the node's working area and opens a PR (AC-9; cite PR URL). - `docker build -f Dockerfile.node .` succeeds in a tree built by `tools/local_edition/build_tree.py`; `check_tree.py` 0 findings. - `./dc check quick` green; cloud node tests green.

Outcome

Linux local node runs relocatable from the user's data dir (clients in bundle bin/, paths follow the bundle, no infra/host); node image builds from the public tree. PR #6960 merged, deploy green. Full AC-9 PR run still blocked by 10177/10179 (10184). Memory: none applied.

Pull request

Artifacts

Activity

  • Ready
  • Runner started
  • Runner ended (done)