Skip to content

v0.2.73

Choose a tag to compare

@larryro larryro released this 25 May 21:11
4234126

v0.2.73 — Code sandbox, projects, and mobile shell

Adds an isolated code-execution sandbox for runnable artifacts, project workspaces that bundle files/instructions/threads/agents, an installable PWA with a mobile-native shell, voice mode for streaming output, prompt template versioning, and a top-to-bottom marketing site rebuild. Also unifies org identity, hardens audit-log writes, and ships a new tale doctor CLI command.

🔒 Security

  • Drop orgSlug from the public action surface — all multi-tenant endpoints now key off org ID only, removing a class of slug-collision and impersonation footguns (#1734).
  • Allow audit-log chain writes through RLS so genesis + append rows commit under the same scope (#1726).
  • Sandbox containers run on an --internal bridge with NET_ADMIN-installed iptables rules that reject IMDS (169.254.169.254) and RFC1918 ranges, with a tinyproxy-based hostname allowlist (pypi, npmjs, GitHub package endpoints) gating all egress (#1727).
  • New SANDBOX_TOKEN HMAC secret between Convex and the sandbox spawner; auto-generated on first deploy and rotated headlessly on upgrade (#1727).

🚀 Features

  • Code-execution sandbox + runnable artifacts — new ephemeral container-per-call spawner runs Python/JS code with package-registry-restricted egress and per-container memory/PID caps (#1727).
  • Projects — shared workspaces that bundle files, custom instructions, threads, and agents under a single scoped surface, with archive, rename, sharing, and read-only viewer support (#1735).
  • Agent skills + thread workspace + canvas pane + mobile shell — agents gain reusable skills, threads expose a workspace view, the canvas pane is reorganized, and the mobile experience gets a dedicated shell (#1737).
  • PWA + mobile-native shell — platform is now installable as a Progressive Web App with a mobile-native shell, migrated onto the shared @tale/ui package (#1733).
  • Voice mode — streaming assistant output can now be played back as audio via TTS chunk tables and an opportunistic GC cursor (#1717).
  • Prompt template versioning — prompt templates carry full revision history with diff view (#1705).
  • Prompt categories — first-class scoped entities for organizing prompt templates, with member 2FA surfacing and settings polish landing alongside (#1721, #1722).
  • In-app changelog viewer — surfaces release notes inside the app for cross-version upgrades (#1709).
  • Paste-link video ingestion — paste a video URL into chat to ingest it via the new videoLinkJobs pipeline (#1724).
  • Assistant overlay on automation editor — open the AI chat directly over the automation editor for in-context edits (#1736).
  • Provider detail drawer + API-key suffix masking — inspect provider configs with the last few characters of API keys visible for verification (#1729).
  • AI providers search + pagination in the provider picker (#1728).
  • @tale/seo package — unified SEO + LLM-artifact generation across services, with plugin-based build-time precompile (#1718, #1719).
  • llms.txt across services — every public service now publishes a discoverable LLM artifact (#1707).
  • PII detection — new governance PII detector with three modes, multi-language address detection, IBAN/credit-card validation, and NFC normalization (#1710).
  • Shared AppShell unifies frontend provider stacks across services (#1716).
  • tale doctor CLI command for host preflight checks (sandbox-relevant items today; extensible) (#1727).
  • Hardware comparison gains a cables & network-equipment row, server-rack tier, and multi-node section.
  • Globe icon on the language switcher trigger.

🛠 Improvements

  • Marketing home rebuilt from .pen designs with new sections, dark mode, and animations (#1723, #1730).
  • Marketing site restructured into a clean folder layout with block-level dedup and polish (#1725).
  • Automation metrics page redesigned (#1703); automation chat input reaches parity with the main chat (#1706).
  • Provider drawer reorganized — headers outside the Card, ghost buttons, collapsible options guide (#1732).
  • Docs pages and tone of voice rewritten end-to-end; agent-skills docs reorganized; i18n tone + terminology pass (#1708, #1713).
  • Hardware page now derives every layout from a single catalog source.
  • Form labels drop the trailing "(optional)" suffix in favor of the required-star convention.

🐛 Fixes

  • Chat + dashboard no longer flash a wrong layout on initial load (#1720).
  • Language picker changes apply without a page refresh (#1714).
  • BETTER_AUTH_SECRET gets a safe default in local dev so signup works on a fresh clone.
  • Pricing slider now spans 0 – 1,000+ with a 25-user default.
  • Marketing site pinned to light mode; hash-scroll preload bug fixed; hardware spec values, AMD chip naming, and paren styling refreshed.
  • Mermaid edge labels with parentheses now render in docs.

📝 Other

  • Test files colocated next to source — all __tests__/ folders dropped (#1715).
  • Mintlify removed from docs; cluster-naming residue and marketing-icons / RackKey / unused root class-variance-authority dependency cleaned up.

Upgrade

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

The upgrade introduces two new lockstep services (sandbox and sandbox-egress) that ship and version with the platform image — both are pulled and started automatically by the default deploy path. A new SANDBOX_TOKEN secret is auto-generated on first deploy (headless deploys included). The personalization-toggle and other backfills run automatically inside migrations.runAll on deploy.

Note: the artifacts table was removed in favor of the new thread_files + sandbox + projects modules. Deployments that already hold rows in this table will need to drop them before tale deploy succeeds — for demo-stage installs this is typically a no-op.

Contributors

@yannickmonney, @larryro, @Israeltheminer, @Adeola-Adekoya


Full Changelog: v0.2.72...v0.2.73