Skip to content

v0.2.0

Choose a tag to compare

@rullopat rullopat released this 25 May 11:47
64cf6c2

Minor release. Three packages bumped in lockstep and published to npm with provenance:

Highlights

  • Profile Groups (BAZ-002) — preconfigured team templates. A profile group is a reusable roster: an ordered list of members, each pointing at an existing profile with optional per-member overrides (model, reasoning level, agent name). One transactional spawn into a target group materialises the whole team. Tracking issue: BAZ-002.
    • New tables profile_groups + profile_group_members (RESTRICT on profile_id to prevent dangling references; CASCADE from group → members).
    • HTTP: GET|POST|PATCH|DELETE /api/profile-groups, PUT /api/profile-groups/:id/members, POST /api/profile-groups/:id/spawn.
    • CLI: bazilion profile-group create|list|show|update|edit|delete|spawn.
    • Spawn semantics: target group auto-created if its slug doesn't exist, optional userMd seeded only on freshly-created groups, member name collisions auto-suffixed (webbywebby-2webby-3), pre-flight validates every profileId, full rollback (with retry-with-backoff cleanup of orphan agent dirs) on any failure.
    • Wire types in @bazilion/api-types: ProfileGroup, ProfileGroupMember, ProfileGroupDetail, ProfileGroupWithCount, plus the request/response envelopes.
  • Web UI: templates tab. Profiles and Profile Groups now live under a single templates entry in the top nav, surfaced via a sub-tab strip. The sidebar's + new ▾ dropdown grew two labeled sections — spawn agent from template (profiles) and spawn group from template (profile groups) — with a one-click modal each.
  • Empty-group CTA. Navigating to a group with zero members shows a "Spawn team from template" card so you can fill the roster in one click instead of crafting it agent by agent.
  • Shared <Button> component. New Button variant="primary|ghost|danger" wraps the existing CSS classes so the variant decision can't be silently forgotten — closes the class of bug where bare <button type="button"> fell through to Tailwind preflight and lost all styling (the original "save members" button was the index case). Touched files migrated; the rest convert opportunistically.
  • Friendly error on profile delete. Deleting a profile that's still referenced by a profile group used to surface a raw FOREIGN KEY constraint failed; now you get cannot delete profile "X": N profile group(s) still reference it: …. The web UI also surfaces daemon errors on delete (previously silently swallowed).
  • Theme flash on navigation fixed. Root layout uses data-layout instead of className so the pre-paint .dark class set by THEME_INIT_SCRIPT survives React reconciliation — no more light/dark flicker when clicking around. (Shipped as PR #2 mid-cycle, included here for completeness.)

Install

npx bazilion serve

Upgrading from 0.1.1

No breaking changes. The new profile_groups / profile_group_members tables are added by migration 0002_profile_groups.sql, which the daemon runs idempotently on startup — no manual step required.

If you're already running the daemon, restart it (pnpm tsx apps/cli/src/index.ts serve) so the migration runs and the new /api/profile-groups routes register.

Notes

  • Requires Node 22.12+.
  • @bazilion/api-types remains hermetic — no Node-only imports — so mobile and browser clients can consume the new entity types without pulling in daemon code.

Full changelog: v0.1.1...v0.2.0