Skip to content

v0.2.66

Choose a tag to compare

@larryro larryro released this 30 Apr 03:35
d956f58

v0.2.66 — Google Drive integration, workflow installations, and LLM fallback chains

A new Google Drive integration ships with an example sync workflow, and the "installed" state for workflows moves out of the workflow JSON file and into a new wfInstallations table so install state is org-scoped data rather than file content. Workflows and LLM steps gain a models[] fallback chain that fails over to the next model on transient errors, and a new "Upload configs" entry on the agents and automations pages lets you drop in JSON bundles directly from the UI.

🚀 Features

  • Google Drive integration. New first-party connector under examples/integrations/google_drive/ with an OAuth-flavored connector.ts and a ready-to-install examples/workflows/google_drive/sync.json template. (#1650)
  • Workflow installations are now first-class data. Whether a workflow is installed for an org now lives in a new wfInstallations table (keyed by organizationId + workflowSlug, with contentHash and installedBy), instead of an installed: boolean field inside the workflow JSON. Workflow JSON also gains a requires.integrations[] block ({ name, operations?, minVersion? }) so a template can declare which integrations it depends on, and the engine now validates those dependencies before scheduling. (#1650)
  • models[] fallback chains for LLM workflow steps. Workflow config.models and LLM step config.models accept an ordered list of model refs; on a failover-eligible error (transient provider failures, etc.) the engine moves to the next entry, with circuit-breaker tracking on transient failures. Workflow-level models is inherited by any LLM step that defines neither model nor models — step-level overrides still win. model and models are mutually exclusive on the same step. Existing single-model configs are unchanged. (#1652)
  • Upload configs from the dashboard. Agents and Automations pages get a new "Upload configs" entry in their action menus, opening a dialog that parses uploaded JSON bundles into the right destination. (#1651)

🛠 Improvements

  • Convex workflow file actions take organizationId instead of orgSlug. readWorkflow, listWorkflows, and related actions now resolve the org slug internally from organizationId, keeping callers consistent with the rest of the platform API. (#1650)
  • Stricter validation when starting workflows from a file. Integration dependencies declared in requires.integrations are validated against installed integrations (and minimum versions) before a run is scheduled. (#1650)

🐛 Fixes

  • Canvas no longer auto-opens on assistant messages. Code blocks in chat no longer pop the Canvas pane open every time the assistant produces output — opening Canvas is now an explicit user action again. (#1648)

💥 Breaking Changes

  • installed and enabled are removed from workflow JSON. The workflowJsonSchema no longer accepts these fields. "Installed" state is now persisted in the wfInstallations Convex table; enabled had no consumers and is gone. Existing workflow files with these fields keep parsing (zod strips unknown keys), but their previous "installed" status will not appear in the UI until you run the backfill migration below. (#1650)

Upgrade

Run tale upgrade to update the CLI, then tale deploy to apply the new version.

Migration Guide (only if you had workflows marked installed: true on v0.2.65 or earlier)

The new wfInstallations table is empty after deploy. To carry over your previously-installed workflows and clean up legacy fields in the JSON files, run the per-org backfill migration once for each org:

bunx convex run migrations/backfill_wf_installations:backfillWfInstallations \
  '{ "orgSlug": "<your-org-slug>", "organizationId": "<your-org-id>" }'

The migration:

  • Inserts a wfInstallations row for every workflow JSON with legacy installed: true.
  • Rewrites those JSON files to drop the legacy installed / enabled fields (history snapshot is taken first).
  • Is idempotent and safe to re-run.

It returns a { installed, skipped, rewritten, failed } summary. If you have no previously-installed workflows, you can skip this step entirely.

Contributors

@larryro


Full Changelog: v0.2.65...v0.2.66