2026.9.0

1. Key highlights

  • Start the improvement on the modularity of the product by splitting some existing modules into smaller, more reusable, modules.

  • Continue improving our support for versioning and history

2. Breaking changes

  • Add npm package @obeo/obeo-cloud-platform-organizations Projects depending on @obeo/obeo-cloud-platform should add this module as peer dependencies.

  • Add maven project obeo-cloud-platform-webhooks-application

  • Add a new maven project named obeo-cloud-platform-accounts-domain to extract the management of Account. As a result, all imports to Account and its related services will have to be updated from the prefix fr.obeo.ocp.domain.boundedcontexts.account to fr.obeo.ocp.accounts.domain.

  • Add a new maven project named obeo-cloud-platform-webhooks-domain to extract the management of wehooks. As a result, all imports to ProjectWebhook and its related services will have to be updated from the prefix fr.obeo.ocp.domain.boundedcontexts.webhook to fr.obeo.ocp.webhooks.domain.

  • Move existing application code related to webhooks to obeo-cloud-platform-webhooks-application

  • Add the Project:delete_branch permission to control branch deletion.

  • Frontend packages do not provide UMD bundles anymore. They are now distributed as ES modules and CommonJS bundles only. Downstream consumers relying on the previous .umd.js artifacts or on direct browser script-tag usage must migrate to a bundler-based integration or consume the new CommonJS entry points instead.

  • Add the Project:rename_branch permission to control branch renaming.

  • Changed the method findOwnersByProjectId of IProjectOwnershipApplicationService to Optional<Object> findOwnerByProjectId(String projectId); The method to find owners in IOrganizationProjectOwnershipRepository, IProjectOwnershipRepository, IOrganizationProjectOwnershipSearchService, & IProjectOwnershipSearchService has also changed to return a single owner.

  • Field owners of GraphQL type Project has been renamed to owner, it now returns only one Owner.

  • Persist explicit relationships between project revisions and their snapshots. The database schema now stores project metadata and semantic data snapshot references on project_revision, and representation snapshot references in dedicated join tables. Existing relationships are populated automatically by a Liquibase migration.

  • Restore project revisions from their explicit snapshot relationships instead of inferring their content from timestamps. The snapshot search and restoration APIs now use snapshot identifiers, their timestamp-based variants have been removed.

3. Bug fixes

  • Send diagram description ID and selectionned objects IDs in AI Messages sent.

  • Fix an issue where switching between conversation modes would close the subscription and prevent assistant output being displayed to the user.

  • Authorize data image into the CSP policy, enabling AI chat avatars to display correctly.

  • Remove hidden diagram elements from LLM system prompts

  • Delete project revisions before their referenced snapshots when deleting a project.

  • Restore the ability to delete project revisions from the history view.

  • Add translation for revision count in English and French.

  • Fix redirect after OAuth-2.0 login when target URL has query parameters.

  • Fix organization list pagination so users can access organizations beyond the first page.

  • Fix people table pagination to prevent duplicated people between pages.

  • Fix project table pagination to prevent duplicated projects between pages.

  • Organization and member action menus now indicate when no action is available.

  • Some tables related to organizations had access to a global filter that was not working; these filters have been disabled.

4. New features

  • Add the ability to delete a changeset

  • Add the ability to rename a changeset

5. Improvements

  • Add some documentation on the OAuth2 support

  • Highlight the current branch in the changeset selector.

  • Improve the frontend package build by replacing UMD outputs with CommonJS outputs for reusable npm libraries. This removes Rollup warnings about missing global names for externalized peer dependencies while keeping React, MUI, Apollo and other shared dependencies outside the published bundles.