jason.woltje
db330c12c7
feat(release): self-determination - ensure at launch, drift warnings, M20 packages/* decision ( #38 )
...
- release.sh ensure: aligned no-op; drift -> package-if-needed + health-gated
activate (M3 gate-then-flip, automated)
- ensure_release_aligned in common.sh: invoked by hello/verify/agent;
MOSAIC_ENSURE_SKIP guards recursion; run-task warns on drift without
auto-aligning (workers/suites never trigger builds or model gates)
- ROADMAP: M20 decision recorded - v2 adopts packages/* monorepo at usurpation
- BUILD-LOG Phase 20 + tool-race process note
Live-verified: post-reset pointer loss auto-restored via health-gated
ensure; drift warning fires on desired-version bump; idempotent no-op on
aligned state.
Closes #38
2026-09-03 14:42:09 -05:00
jason.woltje
8eb81ebec1
feat(onboard): user onboarding - no default USER.md, guided creation ( #37 )
...
- bootstrap no longer creates user/USER.md (owner direction)
- scripts/onboard.sh: name REQUIRED (interactive loop or --name),
optional fields prompted (profession, marital, age, gender, education,
location, timezone, skillset, interests, hobbies, pets); flag-driven
non-interactive mode for automation
- templates/USER.md: canon skeleton, placeholder rendering, unfilled
optional = (not provided)
- agent.sh: auto-runs onboarding when profile missing (TTY gate);
headless run-task warns and continues without user context
- user profile dispatched to all launches (M14 layer)
Closes #37 (onboarding requirements from owner layout review)
2026-09-03 12:30:42 -05:00
jason.woltje
9bd4f1c405
feat(agents): agent seats - per-agent SOUL, role, definitions dir ( #36 )
...
- agents/<name>/ holds agent.json (strictly validated: version, name,
role?, capabilities?, workspace?, session?) + SOUL.md (persona prose)
- agent.sh: definition loading (quote-safe node defaults file), runtime
SOUL copy to dataRoot/agents/<name>/, MOSAIC_AGENT_SOUL_FILE ->
loader fills the SOUL slot from the seat's persona (contract SOUL =
default persona; governance never overridden)
- seat.json written once at instantiation (seatVersion, name, role, at)
- identity section gains agent role; compose passthrough for role+SOUL
- live user context (M14) + seat SOUL compose the full persona:
governance -> persona -> identity -> user -> mission
- RELEASE -> 0.0.10; packaged and health-gated activated
- example seat committed: agents/researcher
Closes #36
2026-09-03 11:56:38 -05:00
jason.woltje
7db4c5c2ed
feat(agent): interactive TUI launcher + identity + TOOLS.md ( #35 )
...
- scripts/agent.sh <name>: launches interactive pi TUI in the container
with contracts + optional mission + agent identity + named session +
optional workspace/tools; the Mosaic alternative to vanilla pi
- pi adapter: MOSAIC_INTERACTIVE branch (clean TUI, no -p, no initial
prompt); headless exec rebuilt via positional args (no word-splitting
on the request); MOSAIC_AGENT_NAME optional in headless
- loader: AGENT IDENTITY section when the launcher names the agent
- compose: fixed command removed (request defaults live in run-agent.sh);
MOSAIC_INTERACTIVE/MOSAIC_AGENT_NAME passthrough
- docs/TOOLS.md: full on-demand tool reference; AGENTS.md routes to it
- RELEASE -> 0.0.8 (container change); build verified
Closes #35
2026-09-03 11:24:56 -05:00