Skip to content

v0.4.0

Choose a tag to compare

@sami-marreed sami-marreed released this 07 Oct 19:27
· 28 commits to main since this release

Summary

Release v0.4.0 is a large feature release. CUGA now supports multi-agent work through a new supervisor runtime with an agent registry and a composition UI. The full CugaAgent graph is retired; CugaLite and CugaSupervisor are the two supported agents. Event-driven agents arrive with channels, triggers and NL→Flow arming, including WhatsApp as a direct channel. The supported container image now includes an experimental memory workspace built on Evolve, with retention controls and a management API. CUGA can also run over the Agent Client Protocol (ACP) via stdio. We welcome first-time contributor @anupamamurthi.

On the agent side, CugaLite adds a pre-execute VERIFY gate for code blocks that change data, and tries alternatives before it declares a task impossible. The final answer is now configurable (LLM instructions, a deterministic function, or both). Policies are isolated per agent, so playbooks no longer apply to other agents. A rejected-call guard stops the agent from repeating identical rejected API calls. The LLM layer adds a watsonx Orchestrate (wxo) platform and preserves WatsonX reasoning. Security work removes internal error details from server and events responses, and Dependabot alerts were addressed. Pull requests now require a DCO sign-off.

Upgrade notes

  • The full CugaAgent graph is removed (#581). Use CugaLite or CugaSupervisor.
  • The evolve extra now requires altk-evolve>=1.5.2.
  • Pull requests now need a DCO Signed-off-by line (#897).

What's Changed

Supervisor & multi-agent

  • feat(supervisor): multi-agent registry, composition UI, and supervisor runtime by @sami-marreed in #433
  • feat: retire full CugaAgent graph; keep CugaLite and CugaSupervisor (#580) by @sami-marreed in #581

Memory (experimental)

Events & channels

  • feat(events & channels): event-driven agents — channels, triggers, and NL→Flow arming by @anupamamurthi in #602
  • feat(events & channels): Events followup tooling, deploy kit, rosters by @anupamamurthi in #603
  • feat(events & channels): WhatsApp as a direct channel (Meta Cloud API) by @anupamamurthi in #605

CugaAgent

  • feat(cuga-lite): pre-execute VERIFY gate for mutating code blocks by @sami-marreed in #739
  • fix(cuga_lite): exhaust alternatives before declaring a task impossible (#704) by @Sergey-Zeltyn in #706

Agent, policy & LLM

  • feat(agent): configurable final answer — LLM instructions, a deterministic function, or both (#621) by @segevshlomovIBM in #707
  • feat(llm): add wxo platform to LLMManager for watsonx Orchestrate routing by @laredo in #716
  • fix(policy): per-agent policy isolation — playbooks no longer bleed across agents (#767) by @offerakrabi in #773
  • fix(registry): rejected-call guard — stop re-issuing identical rejected API calls (#599) by @Sergey-Zeltyn in #733
  • fix(llm): preserve WatsonX reasoning by @sami-marreed in #796
  • fix(llm): correct stale RITS registrations — dead Gemma endpoint and 32k Mistral context window by @Sergey-Zeltyn in #725
  • fix(state): stop leaking the host wall clock into frozen-world-clock benchmark prompts (#705) by @Sergey-Zeltyn in #708

Integrations & CLI

Knowledge

  • fix(knowledge): lower embedding batch defaults so ingest fits a 4GB pod by @dolev31 in #714
  • fix(knowledge): let an explicit env override beat the RAG profile by @dolev31 in #713
  • fix(knowledge): ground demo starter in Sovereign Core capabilities by @sami-marreed in #906
  • docs: replace Knowledge Agent Sovereign Core PDF by @sami-marreed in #905

Security & dependencies

  • fix(security): stop sending internal error details to callers by @haroldship in #681
  • chore(security): enforce no exception detail in server responses (#721) by @haroldship in #723
  • fix(security): stop leaking exception text in the events layer by @haroldship in #769
  • chore(llm): use SHA-256 for the model cache key and record why alert 170 is dismissed by @haroldship in #678
  • fix(deps): remediate open Dependabot alerts by @haroldship in #763
  • fix(deps): address open Dependabot alerts (anyio, accelerate, undici, adm-zip) by @haroldship in #803

Docs, CI & tooling

  • ci: add required DCO check and document the external PR limit by @sami-marreed in #897
  • docs(contributing): clarify external contribution policy by @sami-marreed in #802
  • fix(skills): update cuga commit skill to not commit single files by @offerakrabi in #749
  • fix(tests): parse OAuth authorize URL instead of substring matching by @haroldship in #770

New Contributors

Full Changelog: v0.3.2...v0.4.0