Skip to content

Projects, channel-scoped bindings, and the automations/skills vocabulary#11

Merged
pgagnidze merged 17 commits into
mainfrom
feat/projects-and-vocabulary
Jun 5, 2026
Merged

Projects, channel-scoped bindings, and the automations/skills vocabulary#11
pgagnidze merged 17 commits into
mainfrom
feat/projects-and-vocabulary

Conversation

@pgagnidze

@pgagnidze pgagnidze commented Jun 5, 2026

Copy link
Copy Markdown
Member

Summary

Introduces Projects (a per-channel view of the agent, keys, skills, and automations bound to a channel) and makes the channel the single thing bindings attach to. Renames the user-facing vocabulary to industry terms: birds to automations, docs to skills, nests to projects. Reworks the sidebar so the four resource libraries (Agents, Skills, Keys, Automations) live behind one "Resources" tabbed item, cutting the persistent nav from nine items to six. Existing deployments keep working: the config-key rename is back-compat, and the binding-model change preserves any bindings already in the database.

Breaking changes

  • API routes: /api/birds is now /api/automations, and /api/docs is now /api/skills. New binding writes accept targetType: channel only (existing non-channel rows are preserved, see migration notes).
  • CLI: browserbird birds is now automations (with fly renamed to run), and docs is now skills. keys bind and skills bind take <name> <channel> without the type argument.
  • Slack: /bird is now /automation, and its fly subcommand is now run.
  • Scheduled-automation env var: BROWSERBIRD_BIRD_DATA is now BROWSERBIRD_AUTOMATION_DATA.

Migration notes (3 live deployments)

  • No database migration. The birds, docs, and *_bindings tables and their identifiers are unchanged. New bindings are channel-only, but existing bird-scoped key or skill bindings are preserved on both read and write, so nothing is dropped and the change is reversible.
  • The browserbird.json config key birds is renamed to automations. Old files are read transparently and rewritten to the new key on the next config save, so no manual edit is required.
  • Deployed Slack apps need their slash command changed from /bird to /automation by hand. Updating the manifest does not re-register the command on apps that are already installed.
  • Any scheduled automation that reads $BROWSERBIRD_BIRD_DATA in its prompt or scripts needs updating to $BROWSERBIRD_AUTOMATION_DATA. The directory it points to is unchanged, so existing data is preserved.

Testing

tsc, eslint, prettier, 83 backend tests, and svelte-check (252 files) all pass. The test runner now also discovers top-level test files that were previously skipped. A review pass over the full diff surfaced and fixed a binding-edit regression (the channel-only write path used to reject any resource that still held a legacy bird binding) plus a few stale references. Both are covered here, the binding fix with a regression test.

Follow-ups (not in this PR)

  • Reserved bb-cli and bb-web channels for conversations started from the web UI or CLI.
  • A read-only audit of the 3 deployments before this lands.

pgagnidze added 17 commits June 5, 2026 12:44
@pgagnidze pgagnidze merged commit 49cc8a5 into main Jun 5, 2026
4 checks passed
@pgagnidze pgagnidze deleted the feat/projects-and-vocabulary branch June 5, 2026 10:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant