Skip to content

Proposal 0009: align bb_jido with Jido v2.2#15

Merged
jimsynz merged 1 commit into
mainfrom
update-0009-jido-v2.2
May 18, 2026
Merged

Proposal 0009: align bb_jido with Jido v2.2#15
jimsynz merged 1 commit into
mainfrom
update-0009-jido-v2.2

Conversation

@jimsynz
Copy link
Copy Markdown
Contributor

@jimsynz jimsynz commented May 18, 2026

Summary

Jido v2.0 (Feb 2026), v2.1 (March 2026), and v2.2 (March 2026) landed several breaking changes between acceptance of proposal 0009 and the start of implementation. This PR revises the proposal in place so the code sketches compile against current Jido.

Key changes

  • Plugin-first integration. Jido v2 removed actions: from use Jido.Agent; capabilities now live inside Plugins (the v2 rename of "Skills"). The proposal's BB.Jido.Agent macro is replaced by BB.Jido.Plugin.Robot, which owns robot state, default actions, default bb.* signal routes, and mounts the PubSubBridge for its agent.
  • Signal routing, not callbacks. handle_instruction/2 and handle_signal/2 on agents are gone. Worked examples (Manipulator, Coordinator) now use signal_routes: mappings plus Jido.Plugin.handle_signal/2 pre-routing hooks, with actions emitting %Jido.Directive.Emit{…} to chain steps.
  • Instance-scoped supervision. Apps must add {Jido, name: MyApp.Jido} and use Jido.start_agent/3 — reflected in the Supervised in Application example.
  • AI planning rewrite. jido_ai v2 exposes planning as plain Jido Actions (Jido.AI.Actions.Planning.Plan etc.) rather than Jido.AI.plan/2. The SmartAgent example now attaches a PlannerPlugin.
  • Dependency bump. {:jido, "~> 2.2"} and {:jido_ai, "~> 2.1"}. Note Elixir ~> 1.18 requirement.
  • API Corrections table expanded with the v2 changes (Plugin rename, supervision model, namespace move, etc.).
  • Open question chore: add CI workflow with REUSE compliance and canary job #8 resolved. PubSubBridge stays the v0.1 choice; verified against Jido v2.2.

Test plan

  • Review the revised BB.Jido.Plugin.Robot shape against the latest Jido.Plugin macro docs
  • Confirm bb.* signal route names are stable enough for downstream packages to depend on
  • Sanity-check the Manipulator action's directive-chaining pattern against Jido.Directive.Emit semantics
  • pipx run reuse lint (passing locally)

Jido v2.0 (Feb 2026) and follow-ups landed several breaking changes
after the proposal was accepted:

- `actions:` option removed from `use Jido.Agent`; capabilities now
  live inside Plugins (Skill→Plugin rename)
- `handle_instruction/2` and `handle_signal/2` agent callbacks gone;
  replaced by `signal_routes:` plus `Jido.Plugin.handle_signal/2`
- `Jido.Agent.run_action/3` no longer public; agents use `cmd/2`
  (pure) or signal dispatch through `AgentServer`
- Instance-scoped supervision: `{Jido, name: MyApp.Jido}` plus
  `Jido.start_agent/3`
- Built-in actions moved from `Jido.Actions.*` to `Jido.Tools.*`
- `jido_action` and `jido_signal` now standalone packages

Revises the worked examples (Manipulator, Coordinator, Simple Agent,
AI Planning, supervision), introduces `BB.Jido.Plugin.Robot` as the
v0.1 integration surface (replacing the `BB.Jido.Agent` macro), bumps
the version pin to `~> 2.2`, expands the API corrections table, and
resolves open question #8 (sensors vs PubSubBridge).
@jimsynz jimsynz merged commit c982c7a into main May 18, 2026
2 checks passed
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