clawdie-iso/CHANGELOG.md

134 lines
6.6 KiB
Markdown
Raw Normal View History

# Clawdie Changelog
docs: purge historical cruft (Lumina/LightDM/QML/Qt6) + de-stale README Broad removal of obsolete decisions and dead subsystems across docs and code: Deleted - firstboot/gui/** — entire Qt6/QML installer subsystem (qml-installer, helloworld, Phase4 notes) — never the active live-session path - live/installer-session/** — orphaned QML installer session - .archive/completed-work/** — 14 historical planning/impl docs - ROADMAP-v1.0.0.md, RELEASE-NOTES-v0.9.0.md — Lumina/LightDM/Qt6-era history - .opencode/plans/phase0-gpu-fix-unified-iso.md — stale Lumina/LightDM plan - dated/handoff docs: PHASE4-TEST-REPORT, COLIBRI-XFCE-HANDOFF, CLAWDIE-CODEX-HANDOFF, CANONICAL-BUILD-PATHS-HANDOFF README de-stale - present-tense intro (drop xfce-operator-usb branch framing) - harness reality: pi (npm global) + Colibri daemon staged/rc.d-enabled; clawdie + zot as opt-in build flags - GPU: NVIDIA auto-detect + universal driver lane (drop "conservative fallback") - drop dead "historical installer/QML files in-tree" limitation CHANGELOG - drop dead "## Archive" + Qt6 "## For v1.0.0" sections - correct stale sudo wording: live image uses mac_do/mdo, not sudo/doas - drop RELEASE-NOTES-*.md pointer (file removed) build.sh - WARN no longer mentions removed QML build stage .gitignore - drop firstboot/gui qml-installer/helloworld ignore rules Live decision guardrails retained (SDDM-over-LightDM notes); BUILD.md qt6 package deps retained (current runtime deps, not history). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 11:29:12 +02:00
All notable changes to Clawdie-ISO are documented here.
---
## [Unreleased]
_Nothing yet._
---
## [0.11.0] — 20.jun.2026
### Versioning
- Unify the Clawdie release version across **clawdie-iso and colibri** at `0.11.0`.
This supersedes the 0.10.0 decoupling for these two components, which always
ship together. zot and clawdie-ai keep their own versions, recorded as
provenance in `build-manifest.json`.
### Added
- **Out-of-the-box Join Hive provisioning.** Entering Bitwarden credentials
pulls the DeepSeek key from Vaultwarden, restarts the daemon, and confirms the
auto-spawned agent — the live image now provisions itself from the vault on
first boot (`COLIBRI_AUTOSPAWN_PI` staged in `provider.env`).
- **Tailscale auto-join from Vaultwarden.** Join Hive fetches a
`tailscale-auth-key` item and brings the tailnet up once on first boot; the
key is consumed after use (not cached locally), with Vaultwarden as the source
of truth.
- **Opt-in Mother MCP link** (`clawdie-enable-mother`): publishes the node's
Colibri pubkey to Vaultwarden for hive authorization and registers `mother` in
the external MCP registry (jq-merged so existing servers survive).
- `jq` added to the live-operator and jail package lists for the MCP config path.
### Changed
- zot agent pinned to **v0.2.42** (was v0.2.29).
- Live operator-session scripts hardened: identity wallpaper off host-global
`/tmp` with multi-monitor apply; Join Hive captures the generator's output
path; vault fetch work dir moved to a `0700` runtime dir; scratch/tmp policy
documented in `AGENTS.md`.
- Added first-party poudriere build-server scripts (`scripts/poudriere/`) and
retargeted `docs/POUDRIERE-BUILD-SERVER.md` to the `mother-build` host and
`pkg.clawdie.si`.
### Removed
- Duplicate `sysutils/colibri` FreeBSD port; the colibri repo is the single
source of truth. `build.sh`'s release gate fails if it reappears here.
---
## [0.10.0] — 2026-06-15
**Codename:** Operator Image
First numbered milestone since the architecture settled on **zot (agent) +
Colibri (control plane)**. Not production, but a real, flashable operator image:
the XFCE live experience is stable and the Colibri service bugs are fixed, so the
image is meant to work out of the box. Work continues from here toward `1.0.0`.
### Versioning
- The ISO now carries its **own product version** and no longer borrows zot's number. `ISO_VERSION` is explicit (set in `build.cfg`); `auto`/zot-tracking is gone and a build with no version fails fast. Component versions (zot, colibri, clawdie-ai, clawdie-iso) are recorded as provenance in `build-manifest.json`.
- `build-manifest.json` now records `colibri_commit`/`colibri_modified` — the image stages adjacent colibri binaries, so the commit that produced them is captured for reproducibility.
### Added
- `colibri-live-rebuild` helper staged at `/usr/local/bin` (with the Colibri service): one command to rebuild + redeploy Colibri from source on a booted USB (clone/build/stop/install/restart/validate/record). See `docs/LIVE-COLIBRI-REBUILD.md`.
- Image-size headroom guard: the build reports `df`/`du` on the mounted live filesystem and **fails before shipping** if free space is under a floor (`IMAGE_MIN_FREE_MB`, default 1024) — catches a 32 GB-stick overflow at build time, not on the stick.
- 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)
### Fixed
- Colibri daemon now handles SIGTERM (graceful socket cleanup + agent reaping on `service stop`), refuses to steal a live socket, and fails closed if it cannot bind a control socket (colibri PR #75).
### Improvements
- Updated firstboot completion messages to highlight Aider and Pi as primary harnesses (Codex listed as optional alternative)
---
## [0.9.0] — 2026-04-06
**Codename:** Unified Architecture
### Breaking Changes
- ✂️ Unified ISO: Single `./build.sh` builds for all targets (VPS, baremetal, cloud)
- ✂️ Removed `--target` and `--gpu-driver` flags (runtime detection now handles this)
docs: purge historical cruft (Lumina/LightDM/QML/Qt6) + de-stale README Broad removal of obsolete decisions and dead subsystems across docs and code: Deleted - firstboot/gui/** — entire Qt6/QML installer subsystem (qml-installer, helloworld, Phase4 notes) — never the active live-session path - live/installer-session/** — orphaned QML installer session - .archive/completed-work/** — 14 historical planning/impl docs - ROADMAP-v1.0.0.md, RELEASE-NOTES-v0.9.0.md — Lumina/LightDM/Qt6-era history - .opencode/plans/phase0-gpu-fix-unified-iso.md — stale Lumina/LightDM plan - dated/handoff docs: PHASE4-TEST-REPORT, COLIBRI-XFCE-HANDOFF, CLAWDIE-CODEX-HANDOFF, CANONICAL-BUILD-PATHS-HANDOFF README de-stale - present-tense intro (drop xfce-operator-usb branch framing) - harness reality: pi (npm global) + Colibri daemon staged/rc.d-enabled; clawdie + zot as opt-in build flags - GPU: NVIDIA auto-detect + universal driver lane (drop "conservative fallback") - drop dead "historical installer/QML files in-tree" limitation CHANGELOG - drop dead "## Archive" + Qt6 "## For v1.0.0" sections - correct stale sudo wording: live image uses mac_do/mdo, not sudo/doas - drop RELEASE-NOTES-*.md pointer (file removed) build.sh - WARN no longer mentions removed QML build stage .gitignore - drop firstboot/gui qml-installer/helloworld ignore rules Live decision guardrails retained (SDDM-over-LightDM notes); BUILD.md qt6 package deps retained (current runtime deps, not history). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 11:29:12 +02:00
- ✂️ Dropped `doas`/`sudo` from the live image — privileged operations use FreeBSD `mac_do`/`mdo`
- ✂️ clawdie-shell repo archived (merged into clawdie-iso)
### New Features
- 🎯 Runtime GPU detection (Intel, AMD, NVIDIA 390/470/590)
- 🎯 Runtime display detection (VPS headless, baremetal with desktop session)
- 🎯 PF firewall with glasspane VNC (secure remote browser access)
- 🎯 Tailscale integration (mandatory, with optional opt-out)
2026-04-08 18:24:48 +00:00
- 🎯 12 shell modules for modular firstboot orchestration
### Improvements
- 📈 Comprehensive REQUIREMENTS.md (pre-install checklist)
- 📈 NETWORKING.md with architecture diagrams
- 📈 SHELL-MODULES.md with all 8 module specifications
- 📈 BUILD.md with detailed build process
- 📈 Integration tests for full module flow validation
- 📈 Preflight validation scripts
### Deprecations
- ⚠️ PLAN-UNIFY.md (archived — planning complete)
- ⚠️ IMPLEMENTATION-PLAN.md (archived — implementation merged)
- ⚠️ clawdie-shell repo (archived — use clawdie-iso main)
### Performance
- ISO size: 50 GB (includes all packages for offline installation)
- Build time: ~13 minutes (with package cache)
- GPU support: 3 NVIDIA versions + AMD + Intel firmware (all bundled)
---
## Repository Status
The agent stack is **zot (Go agent) + Colibri (Rust control plane)**; "Clawdie"
is the product name for the two together. The image carries its own product
version; component versions are recorded as provenance in `build-manifest.json`.
| 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 | product version (`ISO_VERSION`) |
| clawdie-ai | Being pruned (features → zot/Colibri) | — |
| pi | Demoted — spawnable backend, not default | upstream npm |
| clawdie-shell | **Archived** (merged into clawdie-iso) | — |