Repository navigation
Scrub internal node names; make RBLN user site-packages a site value - #8
Merged
Merged
Conversation
…value Replace internal node hostnames and a personal home path in tests, goldens, docs and notes with neutral aliases (npu-node-1, npu-node-2, control-node, gb10-node-1, gb10-node-2, /home/<user>). The RBLN hostPath fallback (compile Job and serving Deployment) mounted a user-level site-packages under a hardcoded home directory. It is now the site value LMD_RBLN_HOST_SITE_PACKAGES (documented in README, README.ko and cluster.example.env); when unset only the system Python locations are mounted. Goldens pin the value, so their structure is unchanged. Refs #6 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gspark-etri
added a commit
that referenced
this pull request
Oct 20, 2026
) ## Background Public files contained internal cluster node hostnames and a personal home-directory path (#6). Most were in tests, goldens and docs. One spot used the home path **in logic**: the RBLN hostPath fallback (compile Job in `src/app/compile/manifest.rs` and the serving Deployment in `src/app/deploy/serving.rs`) mounted the node's `pip install --user` site-packages from a hardcoded home directory and put it on `PYTHONPATH`. ## Changes - **Site parameter instead of a hardcoded path**: new `LMD_RBLN_HOST_SITE_PACKAGES` (read in `App::new`, like the other `LMD_*` image settings, and passed through `build_compile_manifest` and `serving::Images`). When it is set, the compile Job and serving Deployment mount that directory at the same path and put it first on `PYTHONPATH`, the same as before. When it is unset, only the system Python locations are mounted and no home directory is assumed. lmd-top can't find a remote node's home directory while it generates a manifest, so this is configuration, not detection. It is documented in `README.md`, `README.ko.md` and `cluster.example.env`, which already holds the untracked site values. - **Aliases**: replaced every internal hostname and home-path occurrence (25 files, about 70 lines) with `npu-node-1`, `npu-node-2`, `control-node`, `gb10-node-1`, `gb10-node-2` and `/home/<user>`. This covers unit tests (`agent.rs`, `app.rs`, `collect.rs`, `coverage.rs`, `pod_health.rs`, `probe.rs`, `ui/tests.rs`), goldens, docs, `CHANGELOG.md`, `STATUS.md`, `.research/events.jsonl`, `assets/npu-lora/backends.py` and the epp-score-observer Dockerfile comment. - **Goldens**: the golden fixture sets the site value to `/home/<user>/.local/lib/python3.10/site-packages`, so the four RBLN compile/deploy goldens keep the same structure; only that string changed. A new test, `rbln_host_fallback_assumes_no_user_site_when_unset`, covers the unset case for both compile and deploy. ## Verification - On the project node (cargo 1.96), from a fresh clone of this branch: - `cargo clippy --locked --all-targets -- -D warnings`: clean (exit 0) - `cargo test --locked`: 448 passed, 1 ignored; 11 passed (integration); exit 0 - `cargo fmt --check`: clean (fixed in a follow-up commit after the first CI run) - GitHub CI (`check`, `epp-plugin`): green - Same output as before with the real site value: I set the golden fixture to the real site-packages path and ran `UPDATE_GOLDEN=1 cargo test golden`. All four RBLN goldens (`compile-rbln-{llama,qwen}`, `deploy-rbln-{llama,qwen}`) came out **byte-identical to `main`**. - A case-insensitive search of the tree for the internal names (taken from a private list) finds nothing. `check_sensitive.py`: clean. ## Compatibility and limits - **Operator action**: on a cluster that relies on the RBLN hostPath fallback with a `pip install --user` vendor stack, add `LMD_RBLN_HOST_SITE_PACKAGES=<that site-packages>` to `cluster.local.env`. Without it, the fallback mounts only the system locations. Setups using `LMD_COMPILE_IMAGE_RBLN` or `LMD_RBLN_TOOLCHAIN` are unaffected. - `build_compile_manifest` gains a `host_site` parameter and `serving::Images` gains a `rbln_host_site` field. Both are internal. - Not changed: links to the old GitHub repo location (`gspark-etri/lmd-top` in `Cargo.toml`, `install.sh`, `plugins/lmd-top.yaml`, docs). That is an account name rather than a node, and updating it is a separate change. - `STATUS.md` / `.research/events.jsonl` are written by the research-hub reporter, which records the machine's hostname. Future reports can bring a hostname back until the reporter is changed (hub side). - Git history is not rewritten. ## Related Issue Closes #6 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
gspark-etri
added a commit
that referenced
this pull request
Oct 20, 2026
) ## Background Public files contained internal cluster node hostnames and a personal home-directory path (#6). Most were in tests, goldens and docs. One spot used the home path **in logic**: the RBLN hostPath fallback (compile Job in `src/app/compile/manifest.rs` and the serving Deployment in `src/app/deploy/serving.rs`) mounted the node's `pip install --user` site-packages from a hardcoded home directory and put it on `PYTHONPATH`. ## Changes - **Site parameter instead of a hardcoded path**: new `LMD_RBLN_HOST_SITE_PACKAGES` (read in `App::new`, like the other `LMD_*` image settings, and passed through `build_compile_manifest` and `serving::Images`). When it is set, the compile Job and serving Deployment mount that directory at the same path and put it first on `PYTHONPATH`, the same as before. When it is unset, only the system Python locations are mounted and no home directory is assumed. lmd-top can't find a remote node's home directory while it generates a manifest, so this is configuration, not detection. It is documented in `README.md`, `README.ko.md` and `cluster.example.env`, which already holds the untracked site values. - **Aliases**: replaced every internal hostname and home-path occurrence (25 files, about 70 lines) with `npu-node-1`, `npu-node-2`, `control-node`, `gb10-node-1`, `gb10-node-2` and `/home/<user>`. This covers unit tests (`agent.rs`, `app.rs`, `collect.rs`, `coverage.rs`, `pod_health.rs`, `probe.rs`, `ui/tests.rs`), goldens, docs, `CHANGELOG.md`, `STATUS.md`, `.research/events.jsonl`, `assets/npu-lora/backends.py` and the epp-score-observer Dockerfile comment. - **Goldens**: the golden fixture sets the site value to `/home/<user>/.local/lib/python3.10/site-packages`, so the four RBLN compile/deploy goldens keep the same structure; only that string changed. A new test, `rbln_host_fallback_assumes_no_user_site_when_unset`, covers the unset case for both compile and deploy. ## Verification - On the project node (cargo 1.96), from a fresh clone of this branch: - `cargo clippy --locked --all-targets -- -D warnings`: clean (exit 0) - `cargo test --locked`: 448 passed, 1 ignored; 11 passed (integration); exit 0 - `cargo fmt --check`: clean (fixed in a follow-up commit after the first CI run) - GitHub CI (`check`, `epp-plugin`): green - Same output as before with the real site value: I set the golden fixture to the real site-packages path and ran `UPDATE_GOLDEN=1 cargo test golden`. All four RBLN goldens (`compile-rbln-{llama,qwen}`, `deploy-rbln-{llama,qwen}`) came out **byte-identical to `main`**. - A case-insensitive search of the tree for the internal names (taken from a private list) finds nothing. `check_sensitive.py`: clean. ## Compatibility and limits - **Operator action**: on a cluster that relies on the RBLN hostPath fallback with a `pip install --user` vendor stack, add `LMD_RBLN_HOST_SITE_PACKAGES=<that site-packages>` to `cluster.local.env`. Without it, the fallback mounts only the system locations. Setups using `LMD_COMPILE_IMAGE_RBLN` or `LMD_RBLN_TOOLCHAIN` are unaffected. - `build_compile_manifest` gains a `host_site` parameter and `serving::Images` gains a `rbln_host_site` field. Both are internal. - Not changed: links to the old GitHub repo location (`gspark-etri/lmd-top` in `Cargo.toml`, `install.sh`, `plugins/lmd-top.yaml`, docs). That is an account name rather than a node, and updating it is a separate change. - `STATUS.md` / `.research/events.jsonl` are written by the research-hub reporter, which records the machine's hostname. Future reports can bring a hostname back until the reporter is changed (hub side). - Git history is not rewritten. ## Related Issue Closes #6 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Background
Public files contained internal cluster node hostnames and a personal home-directory path (#6). Most were in tests, goldens and docs. One spot used the home path in logic: the RBLN hostPath fallback (compile Job in
src/app/compile/manifest.rsand the serving Deployment insrc/app/deploy/serving.rs) mounted the node'spip install --usersite-packages from a hardcoded home directory and put it onPYTHONPATH.Changes
LMD_RBLN_HOST_SITE_PACKAGES(read inApp::new, like the otherLMD_*image settings, and passed throughbuild_compile_manifestandserving::Images). When it is set, the compile Job and serving Deployment mount that directory at the same path and put it first onPYTHONPATH, the same as before. When it is unset, only the system Python locations are mounted and no home directory is assumed. lmd-top can't find a remote node's home directory while it generates a manifest, so this is configuration, not detection. It is documented inREADME.md,README.ko.mdandcluster.example.env, which already holds the untracked site values.npu-node-1,npu-node-2,control-node,gb10-node-1,gb10-node-2and/home/<user>. This covers unit tests (agent.rs,app.rs,collect.rs,coverage.rs,pod_health.rs,probe.rs,ui/tests.rs), goldens, docs,CHANGELOG.md,STATUS.md,.research/events.jsonl,assets/npu-lora/backends.pyand the epp-score-observer Dockerfile comment./home/<user>/.local/lib/python3.10/site-packages, so the four RBLN compile/deploy goldens keep the same structure; only that string changed. A new test,rbln_host_fallback_assumes_no_user_site_when_unset, covers the unset case for both compile and deploy.Verification
cargo clippy --locked --all-targets -- -D warnings: clean (exit 0)cargo test --locked: 448 passed, 1 ignored; 11 passed (integration); exit 0cargo fmt --check: clean (fixed in a follow-up commit after the first CI run)check,epp-plugin): greenUPDATE_GOLDEN=1 cargo test golden. All four RBLN goldens (compile-rbln-{llama,qwen},deploy-rbln-{llama,qwen}) came out byte-identical tomain.check_sensitive.py: clean.Compatibility and limits
pip install --uservendor stack, addLMD_RBLN_HOST_SITE_PACKAGES=<that site-packages>tocluster.local.env. Without it, the fallback mounts only the system locations. Setups usingLMD_COMPILE_IMAGE_RBLNorLMD_RBLN_TOOLCHAINare unaffected.build_compile_manifestgains ahost_siteparameter andserving::Imagesgains arbln_host_sitefield. Both are internal.gspark-etri/lmd-topinCargo.toml,install.sh,plugins/lmd-top.yaml, docs). That is an account name rather than a node, and updating it is a separate change.STATUS.md/.research/events.jsonlare written by the research-hub reporter, which records the machine's hostname. Future reports can bring a hostname back until the reporter is changed (hub side).Related Issue
Closes #6
🤖 Generated with Claude Code