v0.2.0
Minor release. Three packages bumped in lockstep and published to npm with provenance:
bazilion@0.2.0— CLI + bundled daemon@bazilion/client@0.2.0— hermetic HTTP client@bazilion/api-types@0.2.0— zero-dep wire types
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 onprofile_idto 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
userMdseeded only on freshly-created groups, member name collisions auto-suffixed (webby→webby-2→webby-3), pre-flight validates everyprofileId, 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.
- New tables
- 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. NewButton 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 getcannot 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-layoutinstead ofclassNameso the pre-paint.darkclass set byTHEME_INIT_SCRIPTsurvives React reconciliation — no more light/dark flicker when clicking around. (Shipped as PR #2 mid-cycle, included here for completeness.)
Install
npx bazilion serveUpgrading 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-typesremains 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