zlh-grind/SESSION_LOG.md

40 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Session Log zlh-grind
Append-only execution log for GPT working in ZeroLagHub environment.
---
## 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.
---