v0.2.80
v0.2.80 — Hardened org-first config migration
This release hardens the org-first config-layout migration introduced in earlier versions. The Convex entrypoint now self-heals provider secrets that an interrupted upgrade left behind at legacy paths, and the CLI resolves project context before any irreversible directory renames so a migration can no longer be left half-finished. It also fixes an infinite render loop in the governance editors plus minor chat and settings UI polish.
🐛 Fixes
- Recover provider API-key secrets stranded by an interrupted org-first migration: the Convex entrypoint now self-heals legacy-path
*.secrets.jsoninto the org-first layout on every boot. It is idempotent, never clobbers a secret the UI already wrote to the new path, copies (not moves) so the legacy files remain as rollback insurance, and validates the org slug before migrating per-org secrets. This fixes spurious "No API key configured" errors on deployments whose host directories were migrated but whose container secrets were not. (#1760) - Resolve the project ID before any irreversible host-directory renames in
tale startandtale update: a missing project context now fails fast instead of leaving a project half-migrated (host moved, container not). (#1760) - Stop an infinite re-render loop in the Budget and Default Model governance editors by memoizing on the policy config value rather than the query wrapper object. (#1760)
- Fix the chat welcome view centering. (#1760)
🛠 Improvements
- Show a loading skeleton for the retention policy timeline while it loads. (#1760)
Upgrade
Run tale upgrade to update the CLI, then tale deploy to apply the new version.
No manual migration is required — the provider-secret self-heal runs automatically on boot. Operators still on the legacy flat layout with custom non-secret edits may optionally run tale deploy --override-all -y to migrate host-side config, then tale migrate config-layout --cleanup-old once they've verified health.
Contributors
Full Changelog: v0.2.79...v0.2.80