Add Dec 21 session - devcontainer provisioning investigation, embedded installer execution model, artifact layout standardization
This commit is contained in:
parent
4d5bbe46e3
commit
f04aece118
@ -1,6 +1,7 @@
|
|||||||
# Session Log – zlh-grind
|
# Session Log – zlh-grind
|
||||||
|
|
||||||
Append-only execution log for GPT working in ZeroLagHub environment.
|
Append-only execution log for GPT-assisted development work.
|
||||||
|
Do not rewrite or reorder past entries.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -37,3 +38,49 @@ Append-only execution log for GPT working in ZeroLagHub environment.
|
|||||||
- Treat `container_type` as the canonical wire key until the next planned template rev.
|
- Treat `container_type` as the canonical wire key until the next planned template rev.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 2025-12-21
|
||||||
|
- Goal: Restore reliable end-to-end provisioning for devcontainers and agent-managed installs.
|
||||||
|
- Observed repeated failures during devcontainer runtime installation (node, python, go, java).
|
||||||
|
- Initial assumption was installer regression; investigation showed installers were enforcing contract correctly.
|
||||||
|
- Root cause identified: agent was not exporting required runtime environment variables (notably `RUNTIME_VERSION`).
|
||||||
|
|
||||||
|
### Devcontainer provisioning investigation
|
||||||
|
- Deep dive on zlh-agent devcontainer provisioning flow.
|
||||||
|
- Confirmed that all devcontainer installers intentionally require `RUNTIME_VERSION` and fail fast if missing.
|
||||||
|
- Clarified that payload JSON is not read by installers; agent must project intent via environment variables.
|
||||||
|
- Verified that installer logic itself (artifact naming, extraction, symlink layout) was correct.
|
||||||
|
|
||||||
|
### Embedded installer execution findings
|
||||||
|
- Agent executes installers as **embedded scripts**, not filesystem paths.
|
||||||
|
- Identified critical requirement: shared installer logic (`common.sh`) and runtime installer must execute in the **same shell session**.
|
||||||
|
- Failure mode observed: `install_runtime: command not found` → caused by running runtime installer without `common.sh` loaded.
|
||||||
|
- Confirmed this explains missing runtime directories and lack of artifact downloads.
|
||||||
|
|
||||||
|
### Installer architecture changes
|
||||||
|
- Refactored installer model to:
|
||||||
|
- `common.sh`: shared, strict, embedded-safe installation logic
|
||||||
|
- per-runtime installers (`node`, `python`, `go`, `java`) as declarative descriptors only
|
||||||
|
- Established that runtime installers are intentionally minimal and declarative by design.
|
||||||
|
- Confirmed that this preserves existing runtime layout:
|
||||||
|
`/opt/zlh/runtime/<language>/<version>/current`
|
||||||
|
|
||||||
|
### Artifact layout update
|
||||||
|
- Artifact naming and layout standardized to simplified form:
|
||||||
|
- `node-24.tar.xz`
|
||||||
|
- `python-3.12.tar.xz`
|
||||||
|
- `go-1.22.tar.gz`
|
||||||
|
- `jdk-21.tar.gz`
|
||||||
|
- Identified mismatch between runtime name and archive prefix (notably Java).
|
||||||
|
- Introduced `ARCHIVE_PREFIX` as a runtime-level variable to resolve naming cleanly.
|
||||||
|
|
||||||
|
### Final conclusions
|
||||||
|
- No regression in installer logic; failures were execution-order and environment-projection issues.
|
||||||
|
- Correct fix is agent-side:
|
||||||
|
- concatenate `common.sh` + runtime installer into one bash invocation
|
||||||
|
- inject `RUNTIME_VERSION` (and related vars) into environment
|
||||||
|
- Architecture now supports deterministic, artifact-driven, embedded-safe installs.
|
||||||
|
|
||||||
|
Status: **Root cause resolved; implementation pending agent patch & installer updates.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user