From a2a23d1e1db38f2a7c35452fe85d88b6fa8e15a7 Mon Sep 17 00:00:00 2001 From: jester Date: Sun, 21 Dec 2025 23:00:48 +0000 Subject: [PATCH] Replace SESSION_LOG.md with correct Dec 20-21 chronology (devcontainer provisioning work only) --- SESSION_LOG.md | 40 ++++------------------------------------ 1 file changed, 4 insertions(+), 36 deletions(-) diff --git a/SESSION_LOG.md b/SESSION_LOG.md index d66ce44..b553f26 100644 --- a/SESSION_LOG.md +++ b/SESSION_LOG.md @@ -5,47 +5,15 @@ Do not rewrite or reorder past entries. --- -## 2025-12-14 -- Goal: Stabilize zlh-agent provisioning pipeline for game + dev containers + addons without regressing game provisioning. -- Scope: Agent routing (ctype=dev), local artifacts strategy, addon skeleton, initial end-to-end tests. -- Adopted single base template approach (zlh-agent template) where agent installs roles at runtime. - ---- - ## 2025-12-20 -- Goal: Restore reliable end-to-end provisioning for **game + dev** without regressions; preserve the explicit orchestration steps/logging. - -### Current Architecture Reality (IMPORTANT) -- We are on **single base template**: `AGENT_TEMPLATE_VMID` is the only template in `.env`. -- In this workflow, **any zlh-agent code change requires rebuilding + pushing the binary into the template container**. - - That effectively means: **agent change = new template promotion**. - -### Key Findings / Fixes -- Game provisioning steps are functioning again and show clear step-by-step orchestration output (allocate VMID → clone → configure → start → IP → agent config → wait → DB save → edge publish). -- Dev provisioning failure was traced to a **wire contract mismatch** between API JSON and agent `state.Config` struct tags: - - Agent expects: `container_type` (snake_case) on the JSON wire - - API refactors were sending: `ctype` / `containerType` (camelCase) in some variants - - Result: `cfg.ContainerType == ""` on decode → agent routes into game path → errors like: - - `unsupported container identity (containerType="" game="")` - -### Decision (to minimize churn) -- Because agent changes force a template promotion in this pipeline, the correct short-term move is: - - **Update API to emit `container_type`** to match the existing agent contract - - Avoid touching agent code until we intentionally rev the template - -### Operational Guardrails -- Do NOT remove or "simplify" the explicit provisioning steps/logging; they are required for debugging and operator confidence. -- 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 +--- + +## 2025-12-21 - 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. @@ -66,7 +34,7 @@ Do not rewrite or reorder past entries. `/opt/zlh/runtime///current` ### Artifact layout update -- Artifact naming and layout standardized to simplified form: +- Artifact naming and layout changed to simplified form: - `node-24.tar.xz` - `python-3.12.tar.xz` - `go-1.22.tar.gz`