Skip to content

Scrub internal node names; make RBLN user site-packages a site value - #8

Merged
gspark-etri merged 2 commits into
mainfrom
fix/6-scrub-node-names
Oct 20, 2026
Merged

gspark-etri merged 2 commits into
mainfrom
fix/6-scrub-node-names

Conversation

@gspark-etri

@gspark-etri gspark-etri commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

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

gspark-etri and others added 2 commits October 20, 2026 10:28
…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
gspark-etri merged commit 229f02f into main Oct 20, 2026
2 checks passed
@gspark-etri
gspark-etri deleted the fix/6-scrub-node-names branch October 20, 2026 01:36
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>
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.

Remove internal node hostnames and home paths from public files

1 participant