Commit graph

17 commits

Author SHA1 Message Date
940404d612 docs: document Python 3.11/3.12 coexistence with FreeBSD defaults
FreeBSD pkg repos build against PYTHON_DEFAULT=3.11, so system packages
(git, libinput, npm-node24) pull python311 as transitive deps. We keep
python312 as the application Python — it wins the python3 symlink via
sort -V. Document this in BUILD.md, build.sh, package lists, and
bootstrap.html so the dual-version reality is explicit and intentional.
2026-06-21 09:36:28 +02:00
79ea3b4590 build(iso): drop py311-only extras from Python 3.12 lane 2026-06-17 14:56:38 +02:00
e2e74e8418 build(iso): upgrade FreeBSD Python 3.11 -> 3.12
Standardize the ISO on the agreed Python 3.12 floor (operator + Hermes +
Claude consensus; see layered-soul/docs/TOOLCHAIN.md).

- pkg lists: python311->python312, py311-{pip,aider_chat,pillow}->py312-*
- build.sh: derive the installed python3.N for the python3/python symlink so a
  future bump needs only a pkg-list change, never an edit here
- shell-deploy.sh: create the Aider venv with 'python3 -m venv' (resolves via
  the symlink) instead of a hardcoded python3.11
- import-clawdie-skills.sh: python3 fallback instead of python3.11
- BUILD.md: doc references

Aider kept (bumped, not dropped): redundant coding tooling is intentional per
the agent matrix.

Pre-merge gate: confirm FreeBSD pkg coverage on osa —
  pkg search '^py312-aider_chat' '^py312-pygobject'
(common modules pillow/pip are safe).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 14:38:20 +02:00
b163cf1014 Merge xfce-operator-usb: Track F Colibri, DeepSeek smoke, LLM provider harness 2026-06-04 20:04:23 +02:00
3a9954f9ec Boot live installer session and narrow install-time contract (Sam & Codex) 2026-06-04 20:04:22 +02:00
20f89f7fdd Add btop to host package baseline
---
Build: not run | Tests: not run
2026-06-04 20:04:22 +02:00
850b77ddbe Mirror fd-find in host package list 2026-06-04 20:04:22 +02:00
4135f9aa40 pkg(host): add dnsmasq for hierarchical *.home.arpa resolution
mDNS resolves single-label names under .home.arpa (e.g.
mevy.home.arpa) but cannot resolve multi-label names like
blog.mevy.home.arpa because no single device "owns" the compound
name. The Clawdie multitenant naming policy uses hierarchical site
naming (<site>.<tenant>.<base>), so a local DNS resolver is required.

dnsmasq is a small (~2 MB) FreeBSD-native DNS server used by most
home routers and homelabs. Bundling it with the ISO removes the
"works on my machine" failure mode for fresh installs that try to
reach blog.mevy.home.arpa.

Mirrors the addition that will land in clawdie-ai's
infra/packages/host-baseline.txt once the multitenant naming policy
note is approved.
2026-06-04 20:04:22 +02:00
819aa43485 Update PostgreSQL 17 → 18 in package lists and docs
Reflects the PG 18 upgrade already applied in the main repo.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-04 20:04:22 +02:00
e454b3d9a8 Add rustup post-install requirement 2026-06-04 20:04:22 +02:00
20a3825e54 feat: add just command runner to host baseline (Sam & Claude)
Bundles the 'just' command runner on the USB image. Provides
discoverable project commands via justfile in Clawdie-AI.

---
Build: pass | Tests: not run (Linux)
2026-06-04 20:04:22 +02:00
9aa63183fb Deduplicate Aider package entry 2026-06-04 20:04:22 +02:00
c687b90034 Add Aider prerequisites to ISO 2026-06-04 20:04:22 +02:00
8ca0544d2a feat: bundle Aider and Forgejo packages, add ZAI_API_BASE to .env seed (Sam & Claude)
Add py311-aider_chat to host baseline for the controlplane harness
(Aider + Pi multi-agent orchestrator). Add forgejo package to jail
list for the code service. Bake ZAI_API_BASE into firstboot .env
to fix litellm endpoint mismatch discovered during Aider testing.

---
Build: pass | Tests: not run (Linux)
2026-06-04 20:04:22 +02:00
d65ef7c33f Add Tailscale firstboot module (Sam & Codex) 2026-06-04 20:04:21 +02:00
16252fb67c iso: sync clawdie-ai v1.0.2 + codex baseline (Sam & Codex) 2026-06-04 20:04:21 +02:00
3d21e5fa36 feat: CI/CD pipeline, package lists, offline pkg-cache seeding
.forgejo/workflows/build.yml:
- Forgejo Actions pipeline: push to main + weekly cron + manual dispatch
- Two-stage: fetch-only (no root) → assemble ISO (root via sudo)
- Publishes ISO to CMS nginx downloads; Codeberg release entry (metadata only)
- Uploads packages/ as workflow artifact for pkg-cache seeding

packages/:
- pkg-list-host.txt     — host baseline (mirrors clawdie-ai infra/packages/)
- pkg-list-jails.txt    — union of all jail package lists
- pkg-list-desktop-base.txt — Xorg + drm base for all DEs
- pkg-list-xfce.txt / kde.txt / mate.txt / nvidia.txt — per-DE packages

build.sh:
- --fetch-only flag: downloads packages + memstick, no root, CI step 1
- Real pkg fetch loop: reads all pkg-list-*.txt, deduplicates, runs pkg fetch
- pkg repo step: generates offline repo metadata after fetch
- Resolves "latest" Clawdie version via Codeberg API

firstboot/firstboot.sh:
- Seeds zroot/pkg-cache from USB packages/ after desktop install
- npm run install-all runs fully offline — no internet needed for jails
- Creates ZFS dataset if not present, falls back to plain directory

runner/README.md:
- forgejo-runner install + register on FreeBSD
- Scoped sudoers entry (build.sh + publish.sh only)
- rc.d service setup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 20:04:21 +02:00