Commit graph

30 commits

Author SHA1 Message Date
Sam & Claude
700ef0ce8b fix(clawdie): pin clawdie_db_path in staged rc.conf for visibility (Sam & Claude)
Companion to colibri fix/clawdie-db-path. The rc.d default already derives
clawdie_db_path from clawdie_data_dir, but write it explicitly into the staged
rc.conf (and the rc.conf.sample) so the operator can see the DB lives in
clawdie's own dir (/var/db/clawdie/clawdie.sqlite), not the colibri daemon's.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 14:57:26 +02:00
Sam & Claude
cf1c58a95c feat: stage the simplified clawdie agent into the ISO (Sam & Claude)
Adds an opt-in FEATURE_CLAWDIE lane that stages the new one-binary clawdie
agent (glasspane + herdr + DeepSeek/Telegram) from the shared ../colibri
checkout, alongside the existing Colibri daemon staging.

- build.cfg: FEATURE_CLAWDIE (default NO), CLAWDIE_ARTIFACT_DIR, CLAWDIE_ENABLE,
  plus build-flag credential notes.
- scripts/stage-clawdie-iso.sh: install clawdie binary + rc.d + rc.conf sample
  + optional clawdie.env override template.
- build.sh: resolve_clawdie_paths, preflight_clawdie_artifacts,
  install_clawdie_service (creates clawdie user/group, enables rc.d like
  Clawdie-AI), status line, and call-site wiring. Gated; default build unchanged.
- iso-build skill: clawdie preflight section + a "carry the XFCE operator-USB
  fixes" reminder for the next build (SDDM-over-LightDM, clawdie-live-gpu KMS,
  hardened USB power policy).

sh -n clean on build.sh and stage-clawdie-iso.sh; markdown gate clean on
touched files.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 09:10:49 +02:00
7122055b69 Merge live boot XFCE Colibri fixes for main
Merge origin/pi/live-boot-xfce-colibri-fixes into origin/main for the next mainline operator USB build target. Resolved AGENTS.md in favor of the Forgejo/three-repo version from the build target rather than the stale line-numbered main copy.\n\nChecks: sh -n build.sh build-vps.sh firstboot/shell-deploy.sh live/operator-session/hw-report live/operator-session/clawdie-xfce-visuals-guard.sh scripts/build-and-log.sh scripts/stage-colibri-iso.sh scripts/write-artifact-manifest.sh; ./scripts/check-format.sh; git diff --check.
2026-06-02 08:54:19 +02:00
9ddd980850 Keep Colibri from blocking live boot and harden XFCE visuals
Reported on AMD live USB: colibri_daemon blocked rc.d boot until Ctrl-C; XFCE still showed default wallpaper and missing panel/start icons. Stage Colibri but disable daemon at boot by default, validate daemon(8) rc.d supervision, regenerate all icon caches, install Clawdie start icon into hicolor, add a visual guard, and expand hw-report XFCE/Colibri diagnostics.\n\nChecks: sh -n build.sh scripts/stage-colibri-iso.sh live/operator-session/clawdie-xfce-session-inner live/operator-session/hw-report live/operator-session/clawdie-xfce-visuals-guard.sh; ./scripts/check-format.sh; git diff --check; stage-colibri smoke with dummy artifacts.
2026-06-01 21:10:08 +02:00
9c14d8476e Add Colibri ISO workflow manifest runbooks
Checks: sh -n scripts/write-artifact-manifest.sh build.sh scripts/stage-colibri-iso.sh; ./scripts/check-format.sh; manifest smoke JSON parse.
2026-06-01 12:50:32 +02:00
234d33812e Normalize ISO Forgejo source-of-truth refs and agent matrix (Sam & Codex) 2026-06-01 05:30:41 +02:00
d1e5809c8f fix: stage Colibri newsyslog config into ISO (Sam & Codex)
Validation: sh -n build.sh; sh -n scripts/stage-colibri-iso.sh; scripts/stage-colibri-iso.sh /tmp/colibri-stage-newsyslog-test; git diff --check.
2026-05-31 18:50:40 +02:00
48e5ab0f7d Merge xfce-operator-usb: Colibri ISO staging (Sam & Claude)
# Conflicts:
#	AGENTS.md
2026-05-28 00:46:24 +02:00
ff4f3ea91f Wire Colibri service staging into ISO build (Sam & Claude) 2026-05-27 23:47:55 +02:00
4609452cbd Merge xfce-operator-usb: Track F Colibri, DeepSeek smoke, LLM provider harness 2026-05-24 23:21:02 +02:00
6a40ed0560 Pin live npm globals to pi only (Sam & Codex) 2026-05-24 20:30:13 +02:00
cea9bdaaa9 Pin ISO npm global CLI versions
Use packages/npm-globals.txt as the source of truth for offline npm CLI tarballs, update Pi to 0.75.5, and keep Claude Code out of the XFCE USB path.

---

Build: not run — ISO build not requested

Tests: pass — sh -n fetch-npm-globals and shell-npm-globals; pinned npm pack smoke passed
2026-05-24 20:12:27 +02:00
ff477a4a3b Add artifact manifest handoff for Hermes (Sam & Pi)
Adds a JSON manifest writer for published ISO artifacts, updates the publish skill to publish the manifest and Hermes deploy block, and records Hermes as the USB/IMG deploy role.

---

Build: not run — publish/deploy contract only

Tests: pass — sh -n scripts/write-artifact-manifest.sh; ./scripts/check-format.sh; git diff --check; manifest JSON validated with python3 -m json.tool
2026-05-22 21:01:57 +02:00
6185610b37 Codify markdown format gate (Sam & Codex)
---

Build: not run — docs/tooling only

Tests: pass — ./scripts/check-format.sh; sh -n scripts/check-format.sh; git diff --check
2026-05-20 13:26:04 +02:00
114dacffbe Isolate npm config during ISO builds (Sam & Claude)
Point build-time npm commands at empty repo-local npm config files so stale host global settings such as python=/usr/local/bin/python3.11 do not emit npm warnings or affect the generated operator USB.

---

Build: pass — sh -n build.sh; sh -n scripts/fetch-npm-globals.sh

Tests: pass — git diff --check; npm config get globalconfig with repo-local config
2026-05-16 21:05:06 +02:00
3480bfe4e0 Suppress npm update notices during ISO builds (Sam & Codex) 2026-05-16 18:10:04 +02:00
b6743695b5 Harden NetworkMgr mdo package override (Sam & Claude)
Remove the fetched legacy privilege package archive from the offline USB package cache after repacking NetworkMgr, and keep repack scratch files under repo tmp.

---

Build: pass — sh -n build.sh; node --check scripts/repack-networkmgr-for-mdo.mjs

Tests: pass — git diff --check; local NetworkMgr repack smoke test
2026-05-16 12:59:41 +02:00
0149fa5ccc Replace NetworkMgr sudo dependency with local mdo package override (Sam & Codex) 2026-05-16 12:52:03 +02:00
d5b93bd004 Bundle current pi package and enable evdev 2026-05-13 07:56:04 +02:00
448f4482bd feat(iso): bundle claude/gemini/pi npm CLIs for offline first-boot install
Ships @anthropic-ai/claude-code, @google/gemini-cli, and
@mariozechner/pi-coding-agent as prebuilt .tgz tarballs on the install
media so the agent runtime has its CLI dependencies on first boot
without network access.

Critical: installs to /home/clawdie/.npm-global to match the
npm_config_prefix set by shell-system.sh in /etc/profile.d/clawdie.sh,
so the clawdie user's PATH (and the agent's commandExists() probes)
actually resolve the binaries.

- scripts/fetch-npm-globals.sh: npm pack the 3 CLIs into tmp/npm-globals/
- firstboot/shell-npm-globals.sh: offline install as clawdie user with
  matching prefix, runs between pkg setup and deploy
- build.sh: fetch + bundle into ${SHARE}/npm-globals/
- firstboot.sh: source module and run_step before deploy

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 08:20:49 +00:00
139f7206b8 Make ISO builds cleaner by default (Sam & Codex)
---

Build: FAIL | Tests: FAIL — not run (deferred)
2026-04-05 14:19:32 +00:00
802c2cb5cc Harden bhyve tests and home.arpa defaults (Sam & Codex)
---

Build: not run | Tests: not run
2026-04-04 09:49:01 +00:00
60d6406953 fix(bhyve): isolate VM network on dedicated bhyve0 bridge (10.99.0.0/24)
Moves bhyve VMs off warden0 (jail bridge) to avoid ARP/routing conflicts
with running agent jails. Auto-picks unused tap interface, adds PF NAT
idempotently, cleans up tap on exit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 05:42:26 +00:00
b8d9ca23dd Clarify vmm device checks in host preflight (Sam & Codex) 2026-04-01 21:55:00 +00:00
066670a490 Add host preflight for bhyve readiness (Sam & Codex) 2026-04-01 19:39:46 +00:00
6aec2b031a feat: make firstboot agent-name-agnostic for multi-agent deployments
Derive AGENT_NAME from ASSISTANT_NAME instead of hardcoding "clawdie".
Database names, users, and identity vars now follow the agent name.

Add configurable fields to build.cfg and shell-env.sh:
- AGENT_GENDER, PI_TUI_PROVIDER, PI_TUI_MODEL
- ZAI_API_KEY, OPENROUTER_API_KEY, EMBED_BASE_URL, EMBED_MODEL
- TELEGRAM_BOT_TOKEN, FEATURE_TELEGRAM (pre-bakeable for cloud)

Add gender selection to baremetal wizard (bsddialog radiolist).
Update bhyve-test.sh with --name flag, tap0/bridge auto-setup,
sparse disk reuse, and reduced default disk size (25G).

Tested: dry-run env generation produces correct Mevy config
(agent_name=mevy, db=mevy, provider=zai, model=glm-5).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 13:31:36 +00:00
4483a81530 fix: locale-safe date in build.sh + dynamic ISO detection in bhyve-test.sh
- build.sh: force LC_TIME=C so date +%b always outputs "Mar" not "Mar."
  Prevents double-dot filenames (e.g. 30.mar..2026.img) on sl_SI locale
- bhyve-test.sh: auto-detect newest baremetal .img or accept path as $1
  Removes hardcoded filename that breaks after each new build

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 13:10:34 +00:00
fbf7cb7e7b feat(scripts): add build-and-log.sh — build ISO + publish HTML log
Wraps build.sh, captures stdout+stderr with tee, generates a styled
HTML page matching the site's dark theme (DM Mono terminal block,
status badge, duration). Publishes two copies:
  - /docs/iso-build-log.html  (always latest)
  - /docs/iso-build-YYYY-MM-DD.html  (dated archive permalink)

Usage: sudo ./scripts/build-and-log.sh [build.sh args...]

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 13:05:01 +00:00
18fec48be9 feat(firstboot): resume/reset flags, checkpoint guards + move bhyve scripts
firstboot.sh:
- Set SHELL_{GPU,NVIDIA,PKG,ENV,DEPLOY}_TEST=1 before sourcing modules
  (prevents double-execution on source — same bug fixed in integration-test)
- Add --resume: run_step() skips steps already recorded in progress file
- Add --reset: clears progress file, starts over from scratch
- Add --help
- Wizard tracked as checkpoint so --resume skips re-prompting the user
- run_step() helper: guard → run → mark done in one call

scripts/bhyve-test.sh (was tmp/bhyve-test-setup.sh):
- Moved to tracked scripts/ directory (tmp/ is gitignored)
- Timeout 300→1800s (full install is 20–25 min, not 5)

scripts/run-bhyve-test.sh (was tmp/run-bhyve-test.sh):
- Moved to scripts/, log output redirected to logs/ (also gitignored)

BUILD.md, TESTING.md, IMPLEMENTATION-PLAN.md:
- Update all bhyve script references to scripts/bhyve-test.sh

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 13:00:24 +00:00
783985c1b9 feat(build): unblock ISO payload injection
1. Determine memstick partition layout: /dev/\${MD}s2a (UFS)
2. Implement payload injection in build.sh steps 5-6
3. Create scripts/publish.sh to copy ISO to CMS nginx /downloads/
4. Fix --fetch-only to not require root (use temp pkg config)

All 4 quickstart tasks now unblocked. Next: test in bhyve VM.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-17 11:58:13 +00:00