feat(iso): live-rebuild lane covers zot + version-model cleanup #56

Merged
clawdie merged 3 commits from live-rebuild-zot-and-version-cleanup into main 2026-06-15 09:24:52 +02:00
4 changed files with 56 additions and 8 deletions
Showing only changes of commit 718d5deaa9 - Show all commits

View file

@ -7,12 +7,16 @@ All notable changes to Clawdie-ISO are documented here.
## [Unreleased]
### Added
- Live rebuild lane now covers the **whole agent stack**: `go` added to the live-operator package list and the `zot` source seeded at `/home/clawdie/ai/zot`, so a booted USB can rebuild zot (Go) as well as Colibri (Rust). See `docs/LIVE-COLIBRI-REBUILD.md`.
- Aider+Pi harness venv provisioning — `firstboot/shell-deploy.sh` now creates `/opt/clawdie/venv/aider` with pinned deps: `aider-chat==0.86.2`, `litellm==1.81.10`, `tree_sitter==0.20.4`
- Aider availability check in post-install verification (logs `aider` version at end of deployment)
### Improvements
- Updated firstboot completion messages to highlight Aider and Pi as primary harnesses (Codex listed as optional alternative)
### Versioning
- The image version tracks the `zot` release it is built on (resolved via `git describe`, falling back to `ZOT_VERSION`); the output is named `clawdie-<freebsd-codename>-<version>.img`. No separately invented ISO number.
---
## [0.9.0] — 2026-04-06
@ -54,9 +58,14 @@ All notable changes to Clawdie-ISO are documented here.
## Repository Status
| Repo | Status | Latest |
|------|--------|--------|
| clawdie-ai | Active | v0.9.0 |
| clawdie-iso | Active | v0.9.0 + Phase 0 |
| clawdie-shell | **Archived** | — |
| pi | Independent | v0.56.3 |
The agent stack is **zot (Go agent) + Colibri (Rust control plane)**; "Clawdie"
is the product name for the two together. The image version tracks zot.
| Repo | Status | Version source |
| ------------- | ----------------------------------- | ------------------------------- |
| zot | Active — the agent (front door) | pinned tag (`ZOT_VERSION`) |
| colibri | Active — control plane + installer | workspace `Cargo.toml` |
| clawdie-iso | Active — image builder | tracks zot (`git describe`) |
| clawdie-ai | Being pruned (features → zot/Colibri) | — |
| pi | Demoted — spawnable backend, not default | upstream npm |
| clawdie-shell | **Archived** (merged into clawdie-iso) | — |

View file

@ -1101,6 +1101,10 @@ EOF
seed_live_ai_source_repo "${SCRIPT_DIR}" "clawdie-iso"
seed_live_ai_source_repo "${_resolved_clawdie_ai_repo}" "clawdie-ai"
seed_live_ai_source_repo "${_resolved_colibri_repo}" "colibri"
# zot source so the live rebuild lane can rebuild the agent (Go) too, not
# just Colibri (Rust). Skipped automatically if the zot checkout is absent.
resolve_zot_paths
seed_live_ai_source_repo "${_resolved_zot_repo}" "zot"
chroot "${MOUNT_POINT}" chown -R clawdie:clawdie /home/clawdie/ai
}

View file

@ -32,10 +32,12 @@ box:
rust
pkgconf
git
go
```
`git` is already in the live operator package list. `rust` provides `cargo` on
FreeBSD. `pkgconf` is needed by common Rust native dependency build scripts.
`go` builds the zot agent (see "Rebuild zot" below).
Optional if future dependencies need them:
@ -56,7 +58,8 @@ pkgconf --version
```
If `rustc` or `cargo` is missing, the current USB cannot rebuild Colibri from
source without installing packages first or using a newer ISO.
source without installing packages first or using a newer ISO. Likewise check
`go version` before attempting a zot rebuild.
## Clone or update Colibri
@ -181,6 +184,35 @@ mdo -u root install -m 0644 /tmp/colibri-live-rebuild.sha256 /var/db/colibri/liv
Report both files with validation notes when handing findings back through git.
## Rebuild zot (agent)
zot is the Go agent staged as a prebuilt binary at `/usr/local/bin/zot`. The
source is seeded read-only at `/home/clawdie/ai/zot` (a `git archive` snapshot
with no `.git`), so rebuilds clone a fresh checkout, same as Colibri.
```sh
mkdir -p /home/clawdie/ai
cd /home/clawdie/ai
if [ ! -d zot-build/.git ]; then
git clone https://code.smilepowered.org/clawdie/zot.git zot-build
fi
cd zot-build
git fetch --prune origin
git checkout v0.2.29 # ship the tag the ISO version tracks
go build -trimpath -o bin/zot ./cmd/zot
```
Install into the running USB (privileged steps via `mdo`):
```sh
mdo -u root install -m 0555 bin/zot /usr/local/bin/zot
zot --version
```
zot has no rc.d service of its own — Colibri spawns it — so no service restart
is needed. Validate with `zot --version` and a Colibri spawn check.
## Fast rc.d-only repair
If only the service script is broken and no binary rebuild is needed, fetch the

View file

@ -21,10 +21,13 @@ bash
zsh
ohmyzsh
git
# Live Colibri rebuild lane: lets the running USB rebuild and redeploy Colibri
# Live rebuild lane: lets the running USB rebuild and redeploy the agent stack
# without a full ISO rebuild for every small service/runtime iteration.
# rust + pkgconf -> Colibri (Rust control plane)
# go -> zot (Go agent)
rust
pkgconf
go
tailscale
avahi-app
nss_mdns