Repository navigation
Open
Labels
bugSomething isn't workingSomething isn't working
Description
AI Factory Operations Agent version
main branch (commit a5d07b6) / v0.0.1
Kubernetes version
1.30+
Installation method
Helm chart from source
Enabled modules and relevant configuration
modules:
kubernetes:
enabled: true
bcm:
enabled: true
observability:
enabled: true
grafana:
enabled: true
edit:
enabled: false # Default View mode
observability:
prometheusUrl: "" # When Prometheus is omitted or VictoriaMetrics/Loki used independently
loki:
url: "http://loki:3100"
Description
Several reproducible issues across extensions, diagnostic policies, and unit tests impact cluster investigations and developer workflows:
-
lspci -s <bridge> -vvvBlocked in View Mode:skills/gpu-networking/references/gpu-network-path.mdexplicitly instructs agents to inspect PCIe ancestor bridges usinglspci -s <bridge> -vvvorlspci -s "$bridge_bdf" -vvv.- However,
diagnostic-policy.tsvalidateslspciwithflags(/^(-[Dknmvx]+|-[a-zA-Z]{2,})$/). This rejects the-sflag (fails both the character set and min-length requirement) as well as the BDF address argument (e.g.0000:01:00.0does not begin with-). - Consequently, in View mode,
automation-guardclassifies the command as an unapproved Edit mutation and blocks it.
-
Phantom
bcm_search_docsTool Registration inbcm/index.ts:- In commit
f138c26d, BCM manuals were updated to be extracted directly from the UI image into the workspace, andSKILL.mdwas updated with: "Never callbcm_search_docs; that tool is not available". bcm_search_docswas removed fromopenclaw.plugin.jsoncontracts andbcm-mcp-ssh-server.py.- However,
bcm/index.ts(lines 909–933) still registersbcm_search_docsand dispatches to"search_bcm_docs". Because it was omitted fromREAD_ONLY_TOOLSinautomation-context.ts, it is blocked in View mode and fails if executed.
- In commit
-
Orphan
test_bcm_docs.pyFails Python Test Discovery:helm/mosaic-stack/tests/test_bcm_docs.pyunconditionally importsfiles/docs/download_bcm_docs.py, which is not present in the repository. Runningpython3 -m unittest discoverfails with an uncaughtFileNotFoundError.
-
Grafana Extension Crashes Agent Startup on Empty
prometheusUrl:observability/grafana.tsunconditionally executesresolveString(api.pluginConfig, "prometheusUrl")without a fallback.- If Grafana is enabled for Loki logs alone or without a separate Prometheus endpoint (e.g. when configured with
--set observability.prometheusUrl=""), OpenClaw crashes at startup withError: observability.prometheusUrl is required.
-
Path Prefix Discarded in
utils/mosaic-mcp.mjs:new URL(path, baseUrl)strips any pathname inMOSAIC_URLwhenpathbegins with/, breaking MCP clients connecting through subpath ingress routes (e.g.,https://cluster.internal/mosaic).
Reproduction steps
# 1. Verify lspci bridge diagnosis is rejected by diagnostic policy
node -e '
import("./helm/mosaic-stack/files/openclaw-seed/extensions/diagnostic-policy.ts")
.then(m => console.log("lspci -s bridge allowed:", m.isAllowedDiagnosticArgv(["lspci", "-s", "0000:01:00.0", "-vvv"])));
'
# 2. Verify test discovery failure due to missing download_bcm_docs.py
python3 -m unittest discover -s helm/mosaic-stack/tests
# 3. Verify Grafana plugin startup crash on empty prometheusUrl
node -e '
import("./helm/mosaic-stack/files/openclaw-seed/extensions/observability/grafana.ts")
.then(m => m.registerGrafanaTools({
pluginConfig: {
grafanaEnabled: true,
grafanaUrl: "http://grafana:3000",
prometheusUrl: "",
datasourceUid: "loki-uid",
datasourceType: "loki"
},
registerTool: () => {}
}));
'
# 4. Verify subpath loss in mosaic-mcp URL construction
node -e 'console.log(new URL("/api/openclaw/tools", "https://cluster.internal/mosaic").href)'Relevant sanitized logs
# lspci output:
lspci -s bridge allowed: false
# Test discovery output:
ERROR: test_bcm_docs (unittest.loader._FailedTest.test_bcm_docs)
ImportError: Failed to import test module: test_bcm_docs
FileNotFoundError: [Errno 2] No such file or directory: '.../helm/mosaic-stack/files/docs/download_bcm_docs.py'
FAILED (errors=1)
# Grafana plugin output:
Error: observability.prometheusUrl is required
at resolveString (.../grafana.ts:37:9)
at registerGrafanaTools (.../grafana.ts:363:25)
# URL resolution output:
https://cluster.internal/api/openclaw/tools # Note: /mosaic path prefix was droppedCode of Conduct
- I agree to follow the AI Factory Operations Agent Code of Conduct.
- I searched open issues and found no duplicate.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Activity
RohanAdwankar commentedon Oct 28, 2026
Thanks for reporting, I'll take a look.
Akshatshukla-25 commentedon Oct 31, 2026
@RohanAdwankar plz do
RohanAdwankar commentedon Nov 2, 2026
Hi @Akshatshukla-25 do you mind breaking down your PR into the separate changes you are requesting?
I see changes to the lspci policy which seem independent to the other tool use cases.
Akshatshukla-25 commentedon Nov 3, 2026
Hi @RohanAdwankar ,
sure I have closed the previous multi-component PR and opened a focused, standalone PR strictly covering the
lspcidiagnostic policy change: #92.I will submit the other tool extension fixes in a separate follow up PR.