Commit graph

30 commits

Author SHA1 Message Date
8febb8e506 Merge pull request 'pi/main-live-boot-xfce-colibri-fixes' (#4) from pi/main-live-boot-xfce-colibri-fixes into main
Simplifying Clawdie service
2026-06-04 20:04:23 +02:00
949ddbdeca Merge xfce-operator-usb: Colibri ISO staging (Sam & Claude)
# Conflicts:
#	AGENTS.md
2026-06-04 20:04:23 +02:00
b163cf1014 Merge xfce-operator-usb: Track F Colibri, DeepSeek smoke, LLM provider harness 2026-06-04 20:04:23 +02:00
e5496c247e Make installer image UEFI bootable 2026-06-04 20:04:23 +02:00
f81f487560 Align ISO config docs with post-install setup 2026-06-04 20:04:23 +02:00
014edc1d9f Clean up docs: fix /login wording, add VPS doc link, remove dead build.cfg IMAGE_NAME, delete stale handoff (Sam & Claude) 2026-06-04 20:04:23 +02:00
8cc2cca60e Add ISO build manifest metadata 2026-06-04 20:04:22 +02:00
f9cc62bb02 Bundle current Clawdie AI for install validation 2026-06-04 20:04:22 +02:00
3a9954f9ec Boot live installer session and narrow install-time contract (Sam & Codex) 2026-06-04 20:04:22 +02:00
23f4f1aaec feat(firstboot): unify setup import across USB and VPS 2026-06-04 20:04:22 +02:00
26d2214bd5 Default ISO code hosting: git (no Forgejo)
---

Build: n/a | Tests: n/a (bash -n ok)
2026-06-04 20:04:22 +02:00
225b6f1667 bump: Version 0.9.1 — v1.0.0 embeddings + CMS + Crowdin (Sam & Claude) 2026-06-04 20:04:22 +02:00
42f0c6922b Bump version to 0.9.0 (Sam & ZAI)
Phase 0 complete: Unified ISO with GPU fix

Changes warrant minor version bump:
- Breaking change: unified ISO (no --target flag)
- Critical fix: GPU driver installation
- New features: desktop detection,- Documentation: sudo unification

Roadmap to v1.0.0:
- v0.9.0: Unified ISO (current)
- v0.9.1: Qt6 GUI Phase 1-2
- v0.9.2: Qt6 GUI Phase 3
- v1.0.0: Qt6 GUI Phase 4
2026-06-04 20:04:22 +02:00
c3599469e0 feat: rename cloud→vps, fix domain naming (Sam & Claude)
Breaking changes:
- --target cloud renamed to --target vps
- Default domain changed from "home.arpa" to "${agentname}.home.arpa"

Changes:
- build.cfg: TARGET="vps" (was cloud)
- build.sh: --target vps, error messages updated
- firstboot.sh: AGENT_DOMAIN defaults to ${agentname}.home.arpa
- vps/firstboot-vps.sh: TARGET=vps
- Rename cloud-path-test.sh → vps-path-test.sh
- Update integration-test.sh: clawdie.home.arpa
- Update MODULE-MANIFEST.md, shell-system.sh examples
- Update BUILD.md: "VPS target" (was "VPS/cloud target")

Why:
- "vps" is more precise than "cloud" (VPS != always cloud)
- ${agentname}.home.arpa follows mDNS standard
- .local collides with mDNS (as noted in shell-env.sh)

Migration: Update build scripts from --target cloud to --target vps
2026-06-04 20:04:22 +02:00
033d9ba0f4 feat: recommend Tailscale with optional opt-out (Sam & Claude)
- Change default FEATURE_TAILSCALE from NO to YES
- Add build-time warning if TAILSCALE_AUTHKEY not set
- Update firstboot wizard: Tailscale moves to screen 2
- Add summary screen showing Tailscale status
- Update shell-tailscale.sh to handle missing auth key gracefully
- Update BUILD.md with new recommended/optional flow

User experience:
  - With auth key: Tailscale auto-connects (secure)
  - Without auth key: Warning shown, build continues (public SSH)
  - Wizard allows enabling/disabling with clear warnings

No breaking changes - existing builds still work.
2026-06-04 20:04:22 +02:00
0aee135c43 Add EMBED_API_KEY and EMBED_DIMENSIONS to .env pipeline
The .env template was missing two vars that src/config.ts reads at
runtime.  Without them embeddings silently fall back to wrong defaults
(768 dims vs the 1024 the pgvector schema expects).

- shell-env.sh: add EMBED_API_KEY + EMBED_DIMENSIONS to template
- build.cfg: add matching defaults (1024 dims)
- firstboot.sh: export the new vars
- cloud-path-test.sh: add EMBED var checks (now 19 total)

Build: not tested | Tests: PASS (cloud-path 19/19, integration 7/7)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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
28f2100a47 feat: add local LLM choice and model seeding 2026-06-04 20:04:21 +02:00
93a690db85 feat: enable forgejo by default in firstboot 2026-06-04 20:04:21 +02:00
74752134c1 feat(build): bake new agent config vars into ISO image
build.cfg now uses ${VAR:-} pattern so env vars take precedence,
enabling cloud builds with arbitrary agent config via environment.

build.sh step 6 now injects all new fields (AGENT_GENDER,
PI_TUI_PROVIDER, PI_TUI_MODEL, API keys, Telegram, embeddings)
into the baked build.cfg inside the image.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-04 20:04:21 +02:00
e46d955527 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-06-04 20:04:21 +02:00
01cbe6e962 refactor: replace XFCE/MATE/KDE with Lumina across all files
- Create packages/pkg-list-lumina.txt with Lumina desktop environment packages
- Delete pkg-list-xfce.txt, pkg-list-mate.txt, pkg-list-kde.txt
- Remove desktop-installer from pkg-list-desktop-base.txt
- build.cfg: DEFAULT_DESKTOP=lumina (sole supported DE)
- build.sh: use pkg-list-lumina.txt instead of pkg-list-xfce.txt
- BUILD.md: update DEFAULT_DESKTOP comment
- CLAWDIE-ISO.md: add deprecation notice, update all DE references to Lumina only

Lumina is the sole supported FreeBSD-native desktop environment as per
LUMINA-INTEGRATION.md and CLAWDIE-ISO-REFACTORED.md specifications.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-04 20:04:21 +02:00
53d83b26c0 chore: Switch default domain from .local to .internal, bump to v0.9.0
- Update default agent domain: clawdie.local → clawdie.internal
- Avoids mDNS conflicts and uses RFC-compliant .internal TLD
- Update baremetal wizard prompt to show .internal example
- Bump CLAWDIE_VERSION from 0.8.2 to 0.9.0 (cloud/baremetal + SSH support)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-04 20:04:21 +02:00
17f0259d6d build: Add SSH key and system password support
- Add --ssh-key flag for providing SSH public key at build time
- Add --root-password and --clawdie-password flags for custom system passwords
- Update build.cfg with SSH_PUBLIC_KEY, ROOT_PASSWORD, CLAWDIE_USER_PASSWORD
- Bake all security-related vars into ISO for firstboot access

Enables secure passwordless SSH auth and custom password provisioning.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-04 20:04:21 +02:00
b430d9053c build.cfg: Add TARGET, ASSISTANT_NAME, AGENT_DOMAIN, TZ defaults
Add deploy target configuration and cloud pre-bake variables.
Cloud builds accept these via CLI flags; baremetal leaves them blank
for interactive collection via bsddialog wizard.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-04 20:04:21 +02:00
4de842b1e5 build.cfg: Add GPU_DRIVER default
Add GPU_DRIVER configuration variable (defaults to empty) to enable --gpu-driver
flag parametrization at build time. Supports 6 variants:
- intel | amd | nvidia-590 | nvidia-470 | nvidia-390 | vesa | "" (auto-detect)

This allows build.sh to bake GPU driver selection into the ISO, bypassing live
pciconf detection at firstboot and guaranteeing ONE reboot instead of TWO.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-04 20:04:21 +02:00
969f1d4007 build: Upgrade ISO builder for Clawdie Shell v0.9.0
Changes:
- Increase image size from 8G → 25G (accommodate bundled packages)
- Refactor image prep: create fresh 25GB UFS image with proper MBR/BSD partitioning
  (replaces simple memstick copy; enables larger filesystem + offline package cache)
- Remove KDE/MATE desktop options (focus to XFCE only)
- Fix FreeBSD download URL path (15.0 ISO-IMAGES)
- Add bsdinstall post-install hook variables (nonInteractive, PARTITIONS, DISTRIBUTIONS)
- Implement idempotent mdconfig reattachment for interrupted builds

Build workflow:
  ./build.sh --fetch-only    # Fetch packages (no root needed)
  ./build.sh --skip-fetch    # Assemble ISO (requires root for mdconfig/gpart/newfs)

Tested on FreeBSD 15.0-RELEASE-p4.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-04 20:04:21 +02:00
fa2391727d fix(build): use EU date format for user-facing ISO filename
Change IMAGE_NAME from YYYYMMDD to DD.mmm.YYYY per AGENTS.md convention.
No numeric-only months — ambiguous for humans and LLMs.

Output: clawdie-iso-17.mar.2026.img (instead of clawdie-iso-20260317.img)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-04 20:04:21 +02:00
61b00accb4 feat: initial clawdie-iso skeleton
USB installer for Clawdie-AI. Combines FreeBSD base install,
desktop-installer GPU/DE setup, and Clawdie-AI deployment into
a single rc.firstboot wizard flow.

Skeleton includes:
- build.cfg: FreeBSD 15.0-RELEASE-p4, amd64, XFCE default
- build.sh: 7-step build outline (fetch → inject → repack), stubs
- installerconfig: bsdinstall post-install hook, copies firstboot/ to HDD
- firstboot/rc.d/clawdie-firstboot: runs once on first HDD boot
- firstboot/firstboot.sh: tiered bsddialog wizard (identity, desktop,
  pi profile, auto-generated secrets, AGENTS.md seeding, npm prefix setup)
- firstboot/gpu-detect.sh: pciconf PCI ID → kld/xorg driver mapping
- CLAWDIE-ISO.md: full design doc (copied from clawdie-ai)

VirtualBox excluded. pkg latest default. LLM keys deferred to pi first-run.

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