From 7ba92ed116f11b5ec5b8105b1b9734b5ef3929f9 Mon Sep 17 00:00:00 2001 From: Sam & Claude Date: Fri, 5 Jun 2026 00:38:25 +0200 Subject: [PATCH] Standardize ISO build checkouts under /home/clawdie/ai (Sam & Codex) --- AGENTS.md | 26 +++++------ BUILD.md | 4 +- TESTING.md | 2 +- build.cfg | 11 +++-- build.sh | 6 +-- doc/CANONICAL-BUILD-PATHS-HANDOFF.md | 65 ++++++++++++++++++++++++++ doc/CLAWDIE-CODEX-HANDOFF.md | 6 +-- doc/NVIDIA-UNIVERSAL-HANDOFF.md | 12 +++-- docs/PHASE4-TEST-REPORT-06.APR.2026.md | 8 ++-- runner/README.md | 12 ++--- scripts/run-bhyve-test.sh | 4 +- scripts/stage-clawdie-iso.sh | 6 +-- scripts/stage-colibri-iso.sh | 6 +-- skills/build-iso/scripts/build-iso.sh | 2 +- skills/iso-build-cleanup/SKILL.md | 26 +++++------ skills/iso-build/SKILL.md | 20 ++++---- skills/iso-publish/SKILL.md | 2 +- 17 files changed, 146 insertions(+), 72 deletions(-) create mode 100644 doc/CANONICAL-BUILD-PATHS-HANDOFF.md diff --git a/AGENTS.md b/AGENTS.md index 790bdfd..af57dae 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -21,14 +21,14 @@ Use this as the lightweight "who checks in where" matrix while work spans multiple repos. Pushed commits, mounted-image reports, manifests, or explicit handoff docs are the expected check-in surface. -| Agent lane / identity | Primary codebase(s) | Typical check-in artifact | -| ------------------------------ | ------------------------------------ | -------------------------------------------------------------- | -| **Pi ISO Developer** | `clawdie-iso` | Small pushed commit on active branch plus static-check result | -| **Codex ISO Builder** | `clawdie-iso`, adjacent `../colibri` | Build log, mounted-image sweep, publish manifest, smoke notes | -| **Hermes USB/IMG Deployer** | published ISO artifacts | Checksum/manifest verification plus flash-target confirmation | -| **Claude Reviewer / Tweaker** | `clawdie-iso` | Review/GUI-polish commit or explicit handoff note | -| **Opencode / Z.ai Integrator** | `clawdie-ai`, `colibri` | Provider smoke output, small manifest, or handoff doc | -| **Operator (Sam)** | all three repos | Final acceptance note, branch choice, release/publish approval | +| Agent lane / identity | Primary codebase(s) | Typical check-in artifact | +| ------------------------------ | ---------------------------------------------------------- | -------------------------------------------------------------- | +| **Pi ISO Developer** | `clawdie-iso` | Small pushed commit on active branch plus static-check result | +| **Codex ISO Builder** | `/home/clawdie/ai/clawdie-iso`, `/home/clawdie/ai/colibri` | Build log, mounted-image sweep, publish manifest, smoke notes | +| **Hermes USB/IMG Deployer** | published ISO artifacts | Checksum/manifest verification plus flash-target confirmation | +| **Claude Reviewer / Tweaker** | `clawdie-iso` | Review/GUI-polish commit or explicit handoff note | +| **Opencode / Z.ai Integrator** | `clawdie-ai`, `colibri` | Provider smoke output, small manifest, or handoff doc | +| **Operator (Sam)** | all three repos | Final acceptance note, branch choice, release/publish approval | ### Git Coordination Rules @@ -95,9 +95,9 @@ devices that require cleanup. ### Colibri Dependency The ISO build stages FreeBSD-native Colibri control-plane artifacts from the -adjacent `../colibri` checkout (`FEATURE_COLIBRI=YES` is the default lane). The -staging is wired into `build.sh` and `scripts/stage-colibri-iso.sh`; the ISO -does **not** build Rust while the image is mounted. +canonical `/home/clawdie/ai/colibri` checkout (`FEATURE_COLIBRI=YES` is the default +lane). The staging is wired into `build.sh` and `scripts/stage-colibri-iso.sh`; +the ISO does **not** build Rust while the image is mounted. - Build Colibri release artifacts on the FreeBSD/OSA host, not on Debian/Linux. - Build order, binary verification, and cleanup timing live in the `iso-build` @@ -108,8 +108,8 @@ does **not** build Rust while the image is mounted. `colibri-tui` is optional in staging code but desired for this USB target and should be verified alongside the other three. -**Invariant:** do not `cargo clean` the Colibri checkout until the ISO -preflight/build has consumed `../colibri/target/release`. +**Invariant:** do not `cargo clean` `/home/clawdie/ai/colibri` until the ISO +preflight/build has consumed `/home/clawdie/ai/colibri/target/release`. --- diff --git a/BUILD.md b/BUILD.md index 66419e2..1c1c2fd 100644 --- a/BUILD.md +++ b/BUILD.md @@ -59,14 +59,14 @@ the image is mounted. Default adjacent-checkout flow: ```sh -(cd ../colibri && cargo build --workspace --release) +(cd /home/clawdie/ai/colibri && cargo build --workspace --release) sudo ./build.sh --skip-fetch ``` Override locations when needed: ```sh -COLIBRI_REPO=/path/to/colibri sudo ./build.sh --skip-fetch +COLIBRI_REPO=/home/clawdie/ai/colibri sudo ./build.sh --skip-fetch COLIBRI_ARTIFACT_DIR=/path/to/colibri-target/release sudo ./build.sh --skip-fetch ``` diff --git a/TESTING.md b/TESTING.md index 4217721..3249acf 100644 --- a/TESTING.md +++ b/TESTING.md @@ -369,7 +369,7 @@ sudo ./scripts/bhyve-pf-allow.sh ### Run the boot verification ```sh -cd /home/clawdie/clawdie-iso +cd /home/clawdie/ai/clawdie-iso sudo ./scripts/bhyve-test.sh ``` diff --git a/build.cfg b/build.cfg index 4e2e464..45f46a6 100644 --- a/build.cfg +++ b/build.cfg @@ -79,11 +79,16 @@ EMBED_MODEL="${EMBED_MODEL:-}" EMBED_API_KEY="${EMBED_API_KEY:-}" EMBED_DIMENSIONS="${EMBED_DIMENSIONS:-1024}" +# Canonical build-host source checkout root. Keep all source repos under +# /home/clawdie/ai across agents/build hosts so detached worktrees and tmp builds do not +# depend on fragile ../ sibling layout. +CLAWDIE_AI_REPO="${CLAWDIE_AI_REPO:-/home/clawdie/ai/clawdie-ai}" + # Colibri Rust control-plane service (next ISO integration lane). # The ISO build stages prebuilt FreeBSD release binaries from COLIBRI_REPO or # COLIBRI_ARTIFACT_DIR; it does not compile Rust while the image is mounted. FEATURE_COLIBRI="${FEATURE_COLIBRI:-YES}" -COLIBRI_REPO="${COLIBRI_REPO:-../colibri}" +COLIBRI_REPO="${COLIBRI_REPO:-/home/clawdie/ai/colibri}" COLIBRI_ARTIFACT_DIR="${COLIBRI_ARTIFACT_DIR:-}" # Stage Colibri binaries by default, but do not block live boot on the daemon. # Hardware validation can start it manually after rc.d supervision is proven on @@ -93,10 +98,10 @@ COLIBRI_COST_MODE="${COLIBRI_COST_MODE:-smart}" # Clawdie agent — the simplified, operator-friendly Colibri lane. # One small Rust binary (glasspane + herdr + DeepSeek/Telegram), built from the -# same ../colibri checkout. Opt-in (default NO) so it does not disturb the +# same /home/clawdie/ai/colibri checkout. Opt-in (default NO) so it does not disturb the # current default build; flip to YES for the simplified operator image. # The two credentials are normally baked into the binary at build time: -# (cd ../colibri && CLAWDIE_TG_TOKEN=... CLAWDIE_DEEPSEEK_KEY=... \ +# (cd /home/clawdie/ai/colibri && CLAWDIE_TG_TOKEN=... CLAWDIE_DEEPSEEK_KEY=... \ # cargo build --release -p clawdie) # Leave them blank to ship a "bring your own key" binary configured via the # rc.d env file (/usr/local/etc/clawdie/clawdie.env) at runtime instead. diff --git a/build.sh b/build.sh index d7f6467..46c17ea 100755 --- a/build.sh +++ b/build.sh @@ -280,7 +280,7 @@ pkg_archive_for() { } resolve_colibri_paths() { - _resolved_colibri_repo="${COLIBRI_REPO:-${SCRIPT_DIR}/../colibri}" + _resolved_colibri_repo="${COLIBRI_REPO:-/home/clawdie/ai/colibri}" case "${_resolved_colibri_repo}" in /*) ;; *) _resolved_colibri_repo="${SCRIPT_DIR}/${_resolved_colibri_repo}" ;; @@ -297,7 +297,7 @@ resolve_colibri_paths() { } resolve_clawdie_ai_repo() { - _resolved_clawdie_ai_repo="${CLAWDIE_AI_REPO:-${SCRIPT_DIR}/../clawdie-ai}" + _resolved_clawdie_ai_repo="${CLAWDIE_AI_REPO:-/home/clawdie/ai/clawdie-ai}" case "${_resolved_clawdie_ai_repo}" in /*) ;; *) _resolved_clawdie_ai_repo="${SCRIPT_DIR}/${_resolved_clawdie_ai_repo}" ;; @@ -336,7 +336,7 @@ preflight_colibri_artifacts() { done } -# clawdie shares the ../colibri checkout; CLAWDIE_ARTIFACT_DIR overrides where +# clawdie shares the /home/clawdie/ai/colibri checkout; CLAWDIE_ARTIFACT_DIR overrides where # the prebuilt `clawdie` binary is found. resolve_clawdie_paths() { resolve_colibri_paths diff --git a/doc/CANONICAL-BUILD-PATHS-HANDOFF.md b/doc/CANONICAL-BUILD-PATHS-HANDOFF.md new file mode 100644 index 0000000..265d535 --- /dev/null +++ b/doc/CANONICAL-BUILD-PATHS-HANDOFF.md @@ -0,0 +1,65 @@ +# Canonical build paths handoff + +**From:** Pi ISO Developer + +**To:** Codex ISO Builder / Hermes USB-IMG Deployer + +**Status:** open until the next image is rebuilt from `/home/clawdie/ai` paths + +## Decision + +Use `/home/clawdie/ai` as the build-host source root across systems. Do not rely on +adjacent checkout fallbacks such as `../colibri` or `../clawdie-ai`. + +Canonical checkouts: + +```text +/home/clawdie/ai/clawdie-iso +/home/clawdie/ai/colibri +/home/clawdie/ai/clawdie-ai +``` + +Runtime/live-user paths such as `/home/clawdie/clawdie-ai` are separate and are +not part of this build-host source-root change. + +## Task checklist + +- [ ] Create `/home/clawdie/ai` on each build/validation host, owned by the operator user. +- [ ] Move or reclone the three source repos into the canonical paths above. +- [ ] Refresh each repo from Forgejo `origin/main` before building. +- [ ] Build Colibri release artifacts from `/home/clawdie/ai/colibri`. +- [ ] Build the ISO from `/home/clawdie/ai/clawdie-iso`. +- [ ] Confirm the build log no longer reports skipped `clawdie-ai` or `colibri` + source snapshots. + +## Rebuild command + +```sh +cd /home/clawdie/ai/colibri +git fetch origin --prune +git checkout main +git pull --ff-only +cargo build --workspace --release + +cd /home/clawdie/ai/clawdie-iso +git fetch origin --prune +git checkout main +git pull --ff-only +sudo env NVIDIA_UNIVERSAL=YES \ + FEATURE_CLAWDIE=YES CLAWDIE_ENABLE=NO COLIBRI_DAEMON_ENABLE=NO \ + CLAWDIE_AI_REPO=/home/clawdie/ai/clawdie-ai \ + COLIBRI_REPO=/home/clawdie/ai/colibri \ + CLAWDIE_ARTIFACT_DIR=/home/clawdie/ai/colibri/target/release \ + ./build.sh --skip-memstick-fetch --live-default-password +``` + +## Deletion criteria + +Delete this handoff after one rebuilt image confirms all three source snapshots +are present under `/home/clawdie/ai` in the live image and the build log contains +no source-snapshot skips for `clawdie-ai` or `colibri`. + +## Results + +_(Codex/Hermes: paste build host, commit SHAs, source-snapshot log lines, and +mounted-image source snapshot paths here.)_ diff --git a/doc/CLAWDIE-CODEX-HANDOFF.md b/doc/CLAWDIE-CODEX-HANDOFF.md index 7cd7497..9292eba 100644 --- a/doc/CLAWDIE-CODEX-HANDOFF.md +++ b/doc/CLAWDIE-CODEX-HANDOFF.md @@ -28,7 +28,7 @@ Both prerequisite PRs are merged to `main`. Codex is unblocked: ### 1. Build colibri (do NOT `cargo clean` afterward — the ISO consumes `target/release`) ```sh -cd /home/clawdie/colibri +cd /home/clawdie/ai/colibri git fetch origin && git pull --ff-only # Baked creds are compiled into the binary and are extractable from the image. # For a distributable image, OMIT both flags and use the rc.d env file instead @@ -42,7 +42,7 @@ ls -lh target/release/clawdie && file target/release/clawdie ### 2. ISO preflight ```sh -cd /home/clawdie/clawdie-iso +cd /home/clawdie/ai/clawdie-iso git fetch origin && git pull --ff-only sh -n build.sh sh -n scripts/stage-clawdie-iso.sh @@ -84,7 +84,7 @@ FEATURE_CLAWDIE=YES /usr/bin/script -q \ ### 6. Cleanup (only after the ISO build consumed the artifacts) ```sh -cd /home/clawdie/colibri && cargo clean && rm -rf /tmp/colibri-* +cd /home/clawdie/ai/colibri && cargo clean && rm -rf /tmp/colibri-* ``` ## Notes / caveats diff --git a/doc/NVIDIA-UNIVERSAL-HANDOFF.md b/doc/NVIDIA-UNIVERSAL-HANDOFF.md index 016f493..670c7c7 100644 --- a/doc/NVIDIA-UNIVERSAL-HANDOFF.md +++ b/doc/NVIDIA-UNIVERSAL-HANDOFF.md @@ -42,14 +42,16 @@ nvidia-settings` resolves purely from the file:// repo with no network. ```sh # colibri artifacts first (do NOT cargo clean after) -cd /home/clawdie/colibri && git fetch origin && git reset --hard origin/main +cd /home/clawdie/ai/colibri && git fetch origin && git reset --hard origin/main cargo build --workspace --release # universal image (set COLIBRI_REPO explicitly if building from a tmp worktree) -cd /home/clawdie/clawdie-iso && git fetch origin && git reset --hard origin/main -sudo env NVIDIA_UNIVERSAL=YES FEATURE_CLAWDIE=YES \ - COLIBRI_REPO=/home/clawdie/colibri \ - CLAWDIE_ARTIFACT_DIR=/home/clawdie/colibri/target/release \ +cd /home/clawdie/ai/clawdie-iso && git fetch origin && git reset --hard origin/main +sudo env NVIDIA_UNIVERSAL=YES \ + FEATURE_CLAWDIE=YES CLAWDIE_ENABLE=NO COLIBRI_DAEMON_ENABLE=NO \ + CLAWDIE_AI_REPO=/home/clawdie/ai/clawdie-ai \ + COLIBRI_REPO=/home/clawdie/ai/colibri \ + CLAWDIE_ARTIFACT_DIR=/home/clawdie/ai/colibri/target/release \ ./build.sh --skip-memstick-fetch --live-default-password ``` diff --git a/docs/PHASE4-TEST-REPORT-06.APR.2026.md b/docs/PHASE4-TEST-REPORT-06.APR.2026.md index 959dd6f..7d6e992 100644 --- a/docs/PHASE4-TEST-REPORT-06.APR.2026.md +++ b/docs/PHASE4-TEST-REPORT-06.APR.2026.md @@ -38,8 +38,8 @@ Phase 4 (shell integration) fixes all 3 blockers and completes the QML installer ```cpp if (QFile::exists("/usr/local/share/clawdie-iso/firstboot/firstboot.sh")) { firstbootPath = "/usr/local/share/clawdie-iso/firstboot/firstboot.sh"; // ISO -} else if (QFile::exists("/home/clawdie/clawdie-iso/firstboot/firstboot.sh")) { - firstbootPath = "/home/clawdie/clawdie-iso/firstboot/firstboot.sh"; // Dev +} else if (QFile::exists("/home/clawdie/ai/clawdie-iso/firstboot/firstboot.sh")) { + firstbootPath = "/home/clawdie/ai/clawdie-iso/firstboot/firstboot.sh"; // Dev } else { return false; // Error } @@ -110,7 +110,7 @@ installProcess->start("/bin/sh", QStringList() << "-c" - **Host:** FreeBSD 15.0-RELEASE - **Time:** 17:03:53 — 17:09:XX (6 minutes) - **Phases:** 7/7 complete -- **Output:** `/home/clawdie/clawdie-iso/tmp/output/clawdie-iso-unified-06.apr.2026.img` +- **Output:** `/home/clawdie/ai/clawdie-iso/tmp/output/clawdie-iso-unified-06.apr.2026.img` ### Build Stages Completed @@ -184,7 +184,7 @@ Boot Method: dd if=clawdie-iso-unified-06.apr.2026.img of=/dev/daX bs=1M ### Shell Syntax ✅ -- `sh -n /home/clawdie/clawdie-iso/firstboot/firstboot.sh` — valid +- `sh -n /home/clawdie/ai/clawdie-iso/firstboot/firstboot.sh` — valid ### Git Status ✅ diff --git a/runner/README.md b/runner/README.md index e72b60a..93edc00 100644 --- a/runner/README.md +++ b/runner/README.md @@ -19,22 +19,22 @@ The simplest automation — runs weekly, no external dependencies. ```sh # /etc/cron.d/clawdie-iso # Rebuild ISO every Sunday at 03:00, publish to CMS nginx downloads -0 3 * * 0 root /home/clawdie/clawdie-iso/build.sh && \ - /home/clawdie/clawdie-iso/scripts/publish.sh \ +0 3 * * 0 root /home/clawdie/ai/clawdie-iso/build.sh && \ + /home/clawdie/ai/clawdie-iso/scripts/publish.sh \ >> /var/log/clawdie-iso-build.log 2>&1 ``` Enable: ```sh -echo '0 3 * * 0 root /home/clawdie/clawdie-iso/build.sh && /home/clawdie/clawdie-iso/scripts/publish.sh >> /var/log/clawdie-iso-build.log 2>&1' \ +echo '0 3 * * 0 root /home/clawdie/ai/clawdie-iso/build.sh && /home/clawdie/ai/clawdie-iso/scripts/publish.sh >> /var/log/clawdie-iso-build.log 2>&1' \ > /etc/cron.d/clawdie-iso ``` Manual trigger: ```sh -cd /home/clawdie/clawdie-iso && sudo ./build.sh && sudo ./scripts/publish.sh +cd /home/clawdie/ai/clawdie-iso && sudo ./build.sh && sudo ./scripts/publish.sh ``` --- @@ -70,8 +70,8 @@ forgejo-runner register \ ```sh cat > /usr/local/etc/sudoers.d/forgejo-runner < "$LOG_FILE" echo "Log: $LOG_FILE" >&2 echo "" >> "$LOG_FILE" diff --git a/scripts/stage-clawdie-iso.sh b/scripts/stage-clawdie-iso.sh index 89ea490..5584996 100755 --- a/scripts/stage-clawdie-iso.sh +++ b/scripts/stage-clawdie-iso.sh @@ -5,11 +5,11 @@ # (glasspane + herdr + DeepSeek/Telegram). This script does NOT build it — build # or provide the artifact first, optionally with baked credentials: # -# (cd ../colibri && CLAWDIE_TG_TOKEN=... CLAWDIE_DEEPSEEK_KEY=... \ +# (cd /home/clawdie/ai/colibri && CLAWDIE_TG_TOKEN=... CLAWDIE_DEEPSEEK_KEY=... \ # cargo build --release -p clawdie) # # Usage: -# COLIBRI_REPO=../colibri scripts/stage-clawdie-iso.sh /path/to/image-root +# COLIBRI_REPO=/home/clawdie/ai/colibri scripts/stage-clawdie-iso.sh /path/to/image-root # CLAWDIE_ARTIFACT_DIR=/path/to/release scripts/stage-clawdie-iso.sh /path/to/image-root set -eu @@ -22,7 +22,7 @@ fi DESTDIR=$1 SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) REPO_ROOT=$(CDPATH= cd -- "${SCRIPT_DIR}/.." && pwd) -COLIBRI_REPO=${COLIBRI_REPO:-"${REPO_ROOT}/../colibri"} +COLIBRI_REPO=${COLIBRI_REPO:-"/home/clawdie/ai/colibri"} CLAWDIE_ARTIFACT_DIR=${CLAWDIE_ARTIFACT_DIR:-"${COLIBRI_REPO}/target/release"} CLAWDIE_STAGE_ENABLE=${CLAWDIE_STAGE_ENABLE:-YES} diff --git a/scripts/stage-colibri-iso.sh b/scripts/stage-colibri-iso.sh index fa85c37..9cdc439 100755 --- a/scripts/stage-colibri-iso.sh +++ b/scripts/stage-colibri-iso.sh @@ -2,10 +2,10 @@ # Stage prebuilt Colibri FreeBSD service artifacts into an ISO/image root. # # This script does not build Colibri. Build or provide artifacts first: -# (cd ../colibri && cargo build --workspace --release) +# (cd /home/clawdie/ai/colibri && cargo build --workspace --release) # # Usage: -# COLIBRI_REPO=../colibri scripts/stage-colibri-iso.sh /path/to/image-root +# COLIBRI_REPO=/home/clawdie/ai/colibri scripts/stage-colibri-iso.sh /path/to/image-root # COLIBRI_ARTIFACT_DIR=/path/to/release scripts/stage-colibri-iso.sh /path/to/image-root set -eu @@ -18,7 +18,7 @@ fi DESTDIR=$1 SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) REPO_ROOT=$(CDPATH= cd -- "${SCRIPT_DIR}/.." && pwd) -COLIBRI_REPO=${COLIBRI_REPO:-"${REPO_ROOT}/../colibri"} +COLIBRI_REPO=${COLIBRI_REPO:-"/home/clawdie/ai/colibri"} COLIBRI_ARTIFACT_DIR=${COLIBRI_ARTIFACT_DIR:-"${COLIBRI_REPO}/target/release"} COLIBRI_STAGE_ENABLE=${COLIBRI_STAGE_ENABLE:-YES} COLIBRI_STAGE_INCLUDE_TUI=${COLIBRI_STAGE_INCLUDE_TUI:-1} diff --git a/skills/build-iso/scripts/build-iso.sh b/skills/build-iso/scripts/build-iso.sh index f39c968..d15892d 100644 --- a/skills/build-iso/scripts/build-iso.sh +++ b/skills/build-iso/scripts/build-iso.sh @@ -2,7 +2,7 @@ # OBSOLETE: do not use this helper for current operator-USB builds. # # The active workflow is: -# - repo-local build from /home/clawdie/clawdie-iso +# - repo-local build from /home/clawdie/ai/clawdie-iso # - tmp/ caches and output artifacts in this repo # - default tmux window clawdie:3 named "iso" # - commit-suffixed raw .img, .img.gz, and .img.gz.sha256 artifacts diff --git a/skills/iso-build-cleanup/SKILL.md b/skills/iso-build-cleanup/SKILL.md index 6d4d6cd..3daabd1 100644 --- a/skills/iso-build-cleanup/SKILL.md +++ b/skills/iso-build-cleanup/SKILL.md @@ -32,7 +32,7 @@ ls -lh tmp/output du -xh -d 1 tmp/cache | sort -h ls -lah tmp/cache | sort -k5 -h | tail -n 30 find tmp/cache -maxdepth 1 -type f -ls -/sbin/mount | grep /home/clawdie/clawdie-iso/tmp/cache/mnt +/sbin/mount | grep /home/clawdie/ai/clawdie-iso/tmp/cache/mnt ``` This tells you whether the space is in: @@ -47,9 +47,9 @@ This tells you whether the space is in: Only run the unmounts that still exist: ```sh -sudo /sbin/umount /home/clawdie/clawdie-iso/tmp/cache/mnt/proc -sudo /sbin/umount /home/clawdie/clawdie-iso/tmp/cache/mnt/dev -sudo /sbin/umount /home/clawdie/clawdie-iso/tmp/cache/mnt +sudo /sbin/umount /home/clawdie/ai/clawdie-iso/tmp/cache/mnt/proc +sudo /sbin/umount /home/clawdie/ai/clawdie-iso/tmp/cache/mnt/dev +sudo /sbin/umount /home/clawdie/ai/clawdie-iso/tmp/cache/mnt ``` If one of these says “not mounted”, continue. @@ -66,8 +66,8 @@ sudo /sbin/mdconfig -lv Typical stuck state looks like: ```text -md0 vnode 28G /home/clawdie/clawdie-iso/tmp/cache/work.img -md1 vnode 28G /home/clawdie/clawdie-iso/tmp/cache/work.img +md0 vnode 28G /home/clawdie/ai/clawdie-iso/tmp/cache/work.img +md1 vnode 28G /home/clawdie/ai/clawdie-iso/tmp/cache/work.img ``` Detach the stale devices: @@ -84,8 +84,8 @@ If the unit numbers differ, detach the ones pointing at `tmp/cache/work.img`. Clear the work-image marker and the work image itself: ```sh -sudo rm -f /home/clawdie/clawdie-iso/tmp/cache/.md_device -sudo rm -f /home/clawdie/clawdie-iso/tmp/cache/work.img +sudo rm -f /home/clawdie/ai/clawdie-iso/tmp/cache/.md_device +sudo rm -f /home/clawdie/ai/clawdie-iso/tmp/cache/work.img ``` ## 5. Safe delete list @@ -95,11 +95,11 @@ before removing the newest commit-suffixed `.img.gz` artifact if it may be the current test image: ```sh -sudo rm -f /home/clawdie/clawdie-iso/tmp/output/*.img -sudo rm -f /home/clawdie/clawdie-iso/tmp/output/*.img.gz -sudo rm -f /home/clawdie/clawdie-iso/tmp/output/*.sha256 -sudo rm -f /home/clawdie/clawdie-iso/tmp/cache/memstick-s2.img -sudo rm -f /home/clawdie/clawdie-iso/tmp/cache/memstick-s2a.img +sudo rm -f /home/clawdie/ai/clawdie-iso/tmp/output/*.img +sudo rm -f /home/clawdie/ai/clawdie-iso/tmp/output/*.img.gz +sudo rm -f /home/clawdie/ai/clawdie-iso/tmp/output/*.sha256 +sudo rm -f /home/clawdie/ai/clawdie-iso/tmp/cache/memstick-s2.img +sudo rm -f /home/clawdie/ai/clawdie-iso/tmp/cache/memstick-s2a.img ``` Keep these if you want the next build to reuse caches: diff --git a/skills/iso-build/SKILL.md b/skills/iso-build/SKILL.md index 0e04c32..19a9f03 100644 --- a/skills/iso-build/SKILL.md +++ b/skills/iso-build/SKILL.md @@ -131,7 +131,7 @@ switch to `iso-build-cleanup`. ### Colibri artifact preflight `FEATURE_COLIBRI=YES` is the default for the next ISO lane. The ISO build -stages FreeBSD-native Colibri artifacts from the adjacent `../colibri` checkout; +stages FreeBSD-native Colibri artifacts from `/home/clawdie/ai/colibri`; it does **not** build Rust while the image is mounted. The daemon is staged but kept disabled at boot by default (`COLIBRI_DAEMON_ENABLE=NO`) until rc.d supervision has passed live-USB validation, so Colibri cannot block SDDM/XFCE @@ -143,7 +143,7 @@ from debby unless the native OSA build fails. Run this before the ISO build: ```sh -cd /home/clawdie/colibri +cd /home/clawdie/ai/colibri git fetch origin git status --short --branch git pull --ff-only @@ -165,7 +165,7 @@ target/release/colibri --help | head Then return to the ISO repo and run syntax/preflight checks: ```sh -cd /home/clawdie/clawdie-iso +cd /home/clawdie/ai/clawdie-iso git fetch origin git status --short --branch git pull --ff-only @@ -174,12 +174,12 @@ sh -n scripts/stage-colibri-iso.sh ``` Important cleanup timing: **do not run `cargo clean` immediately after the -Colibri build.** The ISO preflight/build consumes `../colibri/target/release`. +Colibri build.** The ISO preflight/build consumes `/home/clawdie/ai/colibri/target/release`. Only clean Colibri after the ISO build or after deciding those artifacts are no longer needed: ```sh -cd /home/clawdie/colibri +cd /home/clawdie/ai/colibri cargo clean rm -rf /tmp/colibri-* ``` @@ -191,11 +191,11 @@ USB target and should be verified with the other three binaries. `FEATURE_CLAWDIE` (default `NO`) stages the simplified `clawdie` agent — one small binary (glasspane + herdr + DeepSeek/Telegram) built from the same -`../colibri` checkout. Enable it for the simplified operator image. The two +`/home/clawdie/ai/colibri` checkout. Enable it for the simplified operator image. The two credentials are normally baked at build time: ```sh -cd /home/clawdie/colibri +cd /home/clawdie/ai/colibri CLAWDIE_TG_TOKEN="" \ CLAWDIE_DEEPSEEK_KEY="" \ cargo build --release -p clawdie @@ -207,15 +207,15 @@ file target/release/clawdie Leave the flags unset to ship a "bring your own key" binary configured via the rc.d env file (`/usr/local/etc/clawdie/clawdie.env`) at runtime. Same cleanup invariant as Colibri: do **not** `cargo clean` until the ISO build has consumed -`../colibri/target/release/clawdie`. ISO-repo preflight: +`/home/clawdie/ai/colibri/target/release/clawdie`. ISO-repo preflight: ```sh -cd /home/clawdie/clawdie-iso +cd /home/clawdie/ai/clawdie-iso sh -n build.sh sh -n scripts/stage-clawdie-iso.sh ``` -See `../colibri/docs/CLAWDIE-BUILD.md` and `../colibri/docs/CLAWDIE-AGENT-WIKI.md`. +See `/home/clawdie/ai/colibri/docs/CLAWDIE-BUILD.md` and `/home/clawdie/ai/colibri/docs/CLAWDIE-AGENT-WIKI.md`. ### Next build: carry the XFCE operator-USB fixes diff --git a/skills/iso-publish/SKILL.md b/skills/iso-publish/SKILL.md index 7803370..99e7d9a 100644 --- a/skills/iso-publish/SKILL.md +++ b/skills/iso-publish/SKILL.md @@ -13,7 +13,7 @@ public download target. ## Paths -- Repo root: `/home/clawdie/clawdie-iso` +- Repo root: `/home/clawdie/ai/clawdie-iso` - Build output: `tmp/output` - Public webroot: `/usr/local/www/osa/downloads/iso` - Public base URL: `https://osa.smilepowered.org/downloads/iso`