Migrate from 0.5 to 0.6
Keep existing integrations and adopt transactional rendering, draft exits, registered layouts, and the new Playground paths.
Update the packages together#
Use the same exact 0.6.3 version for every Aeliqo package you install. Check the
package publication status before upgrading. The wire
contract version remains 1; existing resource definitions, data adapters,
React bindings, and headless runtime renders remain available.
Continue from 0.6 to 0.7#
The OAuth issuer requirement and createAppToolSession API belong to 0.7,
and are not part of the 0.6.3 packages. After completing this upgrade, follow
the 0.6 to 0.7 migration guide for issuer-bound
credentials and authenticated host-session ownership.
Handle unsaved forms#
Calling app.render with a new intent now returns needs-input when the
current form has unsaved drafts and the host has supplied no exit decision.
Your app chooses Save, Discard, or Stay through onDraftExit.
For an app that already saves through registered actions, a minimal discard
confirmation can be added to its existing createAeliqoApp options:
onDraftExit: () => window.confirm('Discard unsaved changes?')
? { status: 'discard' }
: { status: 'stay' },
Use your application's accessible dialog for a full Save/Discard/Stay flow.
A Save decision must return a save({ signal }) callback that reports an
Outcome<void> only after the host save succeeds. See App API
for the complete contract. Cancellation, a later draft edit, or changed
authority prevents an earlier decision from replacing the current form.
Read render receipts after publication#
renderer-ready now means the candidate task and its root presentation were
published together. If preparation or synchronous rendering fails, the previous
authorized task and UI remain current. Do not treat a rejected candidate as a
new committed task. app.subscribe continues to observe runtime lifecycle
state; use onPresentation to update a displayed view label after successful
rendering or container adaptation.
A custom renderer, including callbacks in nested Lit directives, must produce deterministic output from captured immutable inputs. Keep business effects in registered actions. If a host callback also fails while restoring its previous template, the candidate stays unpublished and the region is cleared. Correct the callback and remount before retrying; arbitrary host DOM effects cannot be rolled back by Aeliqo.
Register larger layouts#
AeliqoAppOptions.patterns and stateMappings add registered workspace and page
layouts to the same facade. Recipes receive every output through
RecipeContext.results; the primary result remains available. Pattern
callbacks receive a current, owned context.incumbent to author explicit
transfers. Follow From one view to a complete page for a
runnable progression with a header, sidebar, summary, trend, and breakdown.
State preservation remains conditional on compatible task semantics, current authority, exact result ownership, and validated mappings. A new query starts a new task. A selected identity that cannot be proved in the candidate result is reported as a failed transition instead of being silently reassigned.
Choose the new agent path#
The public Playground has manual controls and experimental native WebMCP. It no longer hosts a model composer, BYOK configuration, or MCP relay. Use WebMCP setup for the browser configuration and the local MCP example for HTTP/stdio or optional server-side BYOK. The SDK's open tool/model port remains independent of providers.
