Skip to content

Changelog ​

All notable changes to Uranus are documented here.

[1.7.0] - 2026-10-03 ​

Merged to main as PR #2 (2026-10-02), PR #3 and PR #4 (2026-10-03). Everything below is deployed.

Added ​

Reliability ​

  • Claim check (claim-check.ts) — when a turn had tools but no successful write-style tool call, the reply is asked whether it claims an action; a claim is pushed back once with a correction and replaced on a repeat. When writes did happen, the decision model compares the reply with the tools that succeeded (over-claim). Logged as jev_decisions kind claim_check.
  • Model policy (model-policy.ts) — every model call names a role; resolution runs override → settings.llm.roles → tenant policy.models → defaults, with chains, capability and gateway filtering, a 20-call health window with automatic skip, sticky canary shares and a daily budget tier. GET /models/policy, POST /models/eval (dry-run executor, stored in model_evals, migration 080). See Model Policy.
  • Cloudflare Clef as the default decision model (@cf/cloudflare/clef → clef-flash), Jev-API compatible and first-party, so typed decisions run on every conversation without the partner-AI consent step. typesafe/jev remains available through the decision role.

Learning loop ​

  • turn_traces (migration 079) record every turn's tool calls, including gateway turns which previously stored none.
  • Closed tasks are scored for the learned skills they used and queued; the alarm sweep distils them into skills rows (category learned) with triggers, tool-exact steps and pitfalls. Matched procedures are injected into the prompt's volatile tail. Skills → Learned tab; POST /skills/learned/distill-conversation/:id and a Learn from this conversation button in chat.

Platform ​

  • cron.ts — schedules match in the agent's calendar timezone with standard day-of-month / day-of-week semantics, names, steps and 7 as Sunday.
  • Tool-turn and Escalation model selectors, and a Model policy card (resolution, health, evals), on the LLM Models page.

Fixed ​

  • Security — /a2a and /a2a/stream require a bearer token (platform secret, an API key minted for the agent, or the connection's shared secret). Approval-required tools on customer gateway turns are queued to the owner's inbox instead of running. requireApprovalAbove applies again (per-call approval context). Contact access profiles are enforced when a tool executes. execute_sql is tenant-scoped (allowlisted tables shadowed by agent_id CTEs). The alarm sweep processes only the agent's own calendar tasks. Code Mode tools pass the same gates.
  • The app-intent classifier no longer turns "create a contact / reminder" into an app build.
  • Task tools are loaded whenever the conversation has an open task; clear_ongoing_task reports when nothing is open.

Changed ​

  • One agentic loop — the streaming loop is a wrapper that passes an SSE sink; the drifted copy is gone.
  • Conversation mutex — turns on one conversation queue in order on every chat path (dashboard, gateway, internal); nothing steals the lock after 30 s.
  • The failure cap ends the turn with a tool-less final call instead of logging "Breaking loop" and continuing.
  • Decision-model usage is charged to whichever model answered; distillation usage is metered.

[1.6.0] - 2026-09-25 ​

Merged to main as PR #1 (2026-09-23) plus the dashboard coverage branch (2026-09-25).

Added ​

Typed decisions (Jev) ​

  • typesafe/jev partner model via the authenticated AI Gateway — jev.ts (jevRun, resolveDecision), typed noul / choice / score questions with calibrated probabilities. Every call site has a non-partner fallback
  • Tool-category routing (jev-tools.ts) — one decision per message replaces the regex trigger table; regex kept as fallback. Prompt Studio → Tool Categories gains a routing on/off switch and load threshold (settings.toolRouting). Code Mode's selective prompt path goes through the same router; MCP-connected agents always get the custom category
  • Knowledge-lookup gate — shouldTriggerRAGJev asks one yes/no question before auto-RAG
  • browser_task (jev-browser.ts) — Jev-driven multi-step browser loop in one tool call: done / needs_input / needs_confirmation (stops before consequential steps; confirm=true spends one approval) / blocked / uncertain / stuck / max_steps / driver_unavailable. Candidates beyond 200 refs reachable via described elements + region pick; failed steps re-read the page; press_enter clicks the last typed field; secret-looking inputs masked
  • Workflow Decision node — model-judged branching with threshold and top-two margin (default 0.15), explicit default output (panel warns which output is the silent fallback), 10 s timeout and step.do retries in deployed Workflows; codegen emits resolveDecision verbatim
  • Decision log — jev_decisions table (073), Diagnostics → Decision log card with kind filter, GET /jev-decisions

Task memory ​

  • agent_tasks table (074) — per-conversation (and contact / business) tasks with status incl. waiting_user / waiting_external, JSON step list, next step, context, wake_at, superseded_by. Replaces agent_state.ongoing_task (migrated once)
  • set_ongoing_task / get_ongoing_task / clear_ongoing_task re-pointed at the table and scoped to the conversation; prompt injects only this conversation's open tasks
  • Jev auto-close each turn (completed? / abandoned? at ≥ 0.75, logged as task_close); wake sweep in alarm() re-activates due tasks and leaves a system note
  • Chat page open-tasks panel; GET /tasks, PATCH /tasks/:id

Durable turns and compaction ​

  • Turn checkpoints (turn-checkpoint.ts) — both loops write a trimmed checkpoint (tool calls/results, browser session ids) to DO storage after every tool round; a stalled turn (> 45 s) is resumed on the next request with its completed results instead of re-running tools
  • Non-destructive compaction (compaction.ts, conversation_overlays 075) — 70 % verbatim tail / 10 % protected head / 20 % overlays bound to message ranges; the oldest uncovered stretch is compacted in the background. summarizeOlderMessages removed; legacy single-blob summary kept as fallback
  • Context blocks — set_context working-notes tool (replace / append / clear) shown back each turn; Context Budget line; clock moved to the prompt tail so the prefix is byte-stable across turns for provider prefix caching

Memory ​

  • Kinds fact / event / instruction / task via kindOf(); task memories indexed for keyword search only, never vectorised
  • memory_fts (FTS5, 076, backfilled) and fused recall — vector + BM25 + exact fact-key (×1.5) by reciprocal rank fusion, superseded dropped
  • Jev write-time verifier (verifyAndSupersede) — replaces? / contradicts? against the 3 nearest memories; replacements (≥ 0.75) mark the old memory superseded (settings.memory.verify)
  • MemoryProvider interface — LocalMemoryProvider (current stack) and CloudflareMemoryProvider (Agent Memory binding, profile per agent), selected by settings.memory.provider; falls back to local without the binding
  • Settings → Runtime tab: memory backend, verification, browser recording

Knowledge ​

  • Tenancy by profile (077) — data_sources.business_id / visibility (business | agent | contact) / contact_id; chunk vectors and FTS rows stamped with the scope; Vectorize metadata indexes on business_id + visibility. searchKnowledgeScoped is the single choke point (own docs + business-shared only); the filterByAgent=false default that read across tenants is gone
  • Fused retrieval — kb_chunks_fts (FTS5/BM25, backfilled) fused with the vector channel by RRF, then @cf/baai/bge-reranker-base when more than one candidate
  • AI Search channel — settings.knowledge.aiSearchInstance adds a Cloudflare AI Search instance (indexing the agents' R2 bucket) behind the same search_knowledge tool, folder-scoped to the agent's and business's prefixes. Database and API sources stay on the custom pipeline
  • Knowledge page: per-source visibility select (PATCH /sources/:id, re-indexes on change) and a Retrieval card for the AI Search instance

Workflows ​

  • Await Event rewritten on step.waitForEvent(type, timeout) with a D1 pre-check and a final check on timeout; generated workers expose POST /events/:instanceId → sendEvent; the agent's event endpoint and add_workflow_event forward there and still write the D1 row for older deployments
  • AI Agent node takes an output schema; the agent returns data.structured (required keys checked); the step fails/retries on a mismatch. Interpreter ai-agent now really runs (self via the agent-mode LLM node, other agents over the DO binding) instead of returning "delegated"
  • Approval Gate logic node — POST /workflows/approvals/request sends approve/reject links over a gateway (public workflow.uranus.im event links); generated step waits durably and routes approved / rejected (timeout policy configurable); interpreter polls up to 45 s
  • Deployed workflows receive AGENT_BASE_URL + AGENT_API_KEY so ai-agent / approval callbacks work; workflow-deployer injects them (reads AGENT_API_KEY or INTERNAL_API_SECRET)

Browser ​

  • Cloudflare Browser Run is the default provider (BROWSER_PROVIDER=cf); Steel kept for HITL via settings.browser.hitlProvider
  • AX-tree snapshots — axSnapshot() reads Chrome's accessibility tree over CDP in the same [N] role "name" format; browser_action(action="snapshot", source="ax"), automatic when the DOM walk finds < 3 controls; capped at 150 refs
  • Session recordings — settings.browser.recording=true launches sessions with recording: true (30-day retention in the Cloudflare dashboard)
  • Hosted Live View + handoff — sessions return the live.browser.run URL (Cloudflare.getLiveView); browser_action handoff / handoff_status use Cloudflare.handoff / getHandoffState and mark the session awaiting_human. The custom /cf-live screencast bridge remains only as a fallback; the Browser page shows an Open Live View button for hosted URLs
  • browser_execute(sessionId, script) — approval-gated arrow-function page.evaluate, result truncated to 8 KB and logged
  • browser_action(action="upload") — inject R2 media into a file input through an in-page DataTransfer
  • Checkpoints track browser session ids so a resumed turn reuses them; CF client selects-all before typing; stuck-detector keyed on url + snapshot head; action logger writes real success/error status

Gateways ​

  • GatewayConfig.autoReply is now honoured — false stores the inbound message and runs workflow triggers but never replies (no /start greeting); MQTT gains replyMaxChars. Add/Edit MQTT gateway dialogs expose both

Platform boundary ​

  • tenants table + agents.tenant_id (078, OAC tenants backfilled in 078b); agent/tenancy.ts is the only reader. Knowledge scope, task memory and the policy gate key on it
  • Product-neutral internal API /api/internal/v1/* (docs/PLATFORM_API.md) — tenants upsert/read/consent, agents/:id/tenant, plus aliases for every legacy /api/internal/oac/* handler. The OAC_DB binding is removed from the manage worker; the control panel composes OAC over OAC's own API
  • Data-flow policy (docs/DATA_FLOW_POLICY.md) — partnerAiAllowed() gates every Jev call site and the memory-provider choice: owner/internal use allowed (per-agent switch), customer conversations on a tenant-owned agent only after tenants.partner_ai_consent_at is set

Migrations ​

  • 073_jev_decisions.sql, 074_agent_tasks.sql, 075_conversation_overlays.sql, 076_memory_fts.sql, 077_knowledge_tenancy.sql, 078_tenants.sql, 078b_tenants_backfill_oac.sql

Fixed ​

  • Vector memory recall filtered on unindexed metadata and returned nothing in production; memory vectors now carry agent_id (existing ones re-upserted)
  • Stuck-detector false positive on consecutive browser_task results
  • browser_task stale-ref retry after a failed action

Changed ​

  • System prompt assembled as stable blocks + volatile tail (see Context blocks above)
  • search_knowledge and auto-RAG both go through searchKnowledgeFused; the Code Mode searchKnowledge(query, topK, filterByAgent) helper ignores filterByAgent — there is no cross-tenant mode any more

[1.5.0] - 2026-05-15 ​

Added ​

Goals & Reflection loop ​

  • agent_goals table — durable objectives with hierarchy, priority, target dates, progress notes, and source attribution (user|reflection|workflow|system)
  • agent_reflections table — periodic self-review with observations, learnings, plan, goal updates, and a metrics snapshot
  • Daily reflection cron at 03:00 UTC, auto-seeded per agent — uses @cf/zai-org/glm-4.7-flash
  • error_spike trigger — fires an ad-hoc reflection when more than 5 workflow failures land in 10 minutes
  • LLM tools — set_goal, update_goal, list_goals, reflect_now, get_reflections, list_draft_workflows, activate_draft_workflow
  • System prompt integration — active goals and the latest reflection's plan/learnings injected every turn

Agent memory architecture ​

  • Four-tier memory model — working (RAM), episodic (chat_messages + summaries), semantic (Vectorize-backed memory:*), reflective (reflection-sourced memories at higher confidence)
  • Semantic recall via Vectorize — embedAndUpsertMemory writes a bge-base-en-v1.5 embedding on every memory write; semanticRecallMemories queries with the current user message
  • Daily consolidation cron at 04:00 UTC — clusters near-duplicate memories (cosine ≥ 0.85), LLM-merges into one canonical fact, marks members superseded_by, decays stale confidence
  • Versioned conversation summaries — prior summary archived to conversation_summary_history:{id}:{ts} before each rewrite instead of being overwritten
  • Paginated token-aware history fetch — replaces a fixed LIMIT 50 with paged scan that stops on token budget
  • Content-aware token estimator — 1.5 chars/token for CJK, 3.0 for JSON-dense, 3.5 for English prose

Workflow integration (W1–W7) ​

  • Goal ↔ workflow linkage — goal_workflows table; execute_workflow(goal_id=...) auto-creates the link and updates agent_goals.progress_notes on completion
  • Outcomes → memory — every workflow completion summarized via glm-4.7-flash, written to memory:workflow:{date}:{slug}:{outcome} and embedded; failures stored at higher confidence
  • Reflection-proposed workflows — reflection output includes proposed_workflows[] which insert as drafts (status='draft' source='reflection'); never auto-activated, surface in existing Workflows UI tab
  • Semantic workflow discovery — workflow_embeddings table + workflow-search.ts module; find_workflow_for_goal is now Vectorize-backed with the prior LLM matcher as fallback
  • Goal context in workflow execution — when a run is attributed to a goal, the trigger payload includes a goal object (id, description, progress_notes) resolvable via the trigger.goal.description interpolation path
  • Run stats rollup — list_workflows and reflection both see 30-day runs_total/runs_failed/avg_duration/last_run per workflow
  • Workflow → agent callbacks — HMAC-authenticated POST /{agentId}/workflow-rpc lets deployed workflows call recall, remember, send_message, get_contact, list_transactions, add_workflow_event. 60 req/min/workflow rate limit.

Migrations ​

  • 058_agent_goals.sql, 059_agent_reflections.sql, 060_memory_embeddings.sql
  • 061_goal_workflows.sql, 062_workflow_source.sql, 063_workflow_embeddings.sql, 064_workflow_callback_secret.sql

Changed ​

  • findWorkflowForGoal is now semantic-first (Vectorize) with LLM matcher as fallback when no vector hits above 0.55 cosine
  • createWorkflow, activateDraftWorkflow, and the editor PUT /workflows/{id} path all embed via ctx.waitUntil so new/edited workflows are searchable within seconds
  • Memory access_count updates and pre-compaction summarization now use ctx.waitUntil to survive DO eviction
  • CF Workers AI pricing rates updated to match published per-token rates (verified 2026-05-15)
  • Browser snapshot script clears stale [data-ref] attributes at the start of each walk to prevent ref ambiguity
  • browser-cf.ts cache is now bounded LRU (max 16 sessions) to prevent unbounded growth
  • 224 lines of dead snapshot code removed from browser.ts
  • navigate() simplified from a 3-endpoint cascade to a single goto call; returns the real error instead of "All navigation methods failed"

[1.4.0] - 2026-03-11 ​

Added ​

Website Crawling (BFS) ​

  • Full-Site Crawl - Crawl entire websites using CF Browser Rendering /markdown + /links endpoints
  • BFS Traversal - Configurable maxPages, maxDepth, include/exclude URL patterns
  • Background Processing - Non-blocking crawl execution via ctx.waitUntil
  • Delta Detection - SHA-256 page hashes allow re-crawl to skip unchanged pages
  • Web Crawl LLM Tool (web_crawl) - Agent can crawl websites during conversation with auto-import to knowledge base
  • Crawl Status Tracking (get_crawl_status) - Monitor crawl progress in real time

Access Control Profiles ​

  • Tag-Based Access Control - Configure per-contact access to tool categories, clusters, and data
  • Data Scoping - Control access to conversation history, contacts, and memories per profile
  • Default Profile - Wildcard * profile applies to unconfigured contacts
  • Priority Merging - Multiple matching profiles merge by priority

Payments System ​

  • Transaction Tracking - Log and query payment transactions with full history
  • Bank Notification Detection - Auto-detect payments from SMS/email via regex keyword matching + LLM parsing
  • x402 Micropayments - HTTP 402 payment-gated endpoints with Coinbase facilitator (Base, Avalanche, Solana/USDC)
  • Stripe Integration - Checkout sessions, virtual issuing cards, webhook processing, requireApprovalAbove threshold
  • LLM Tools - check_balance, list_transactions, log_payment, send_payment, create_checkout, charge_card

Accessibility Tree Snapshots ​

  • Text-Based Page Representation - Browser uses accessibility tree snapshots instead of screenshots as primary output
  • Ref-Based Targeting - [N] role "label" format with data-ref attributes for element interaction
  • Token Efficiency - ~5-50KB text vs ~5MB screenshot (~100x reduction)
  • Snapshot Action - browser_action(action='snapshot') to get/refresh the accessibility tree

Vision Model System ​

  • Configurable Vision Model - settings.llm.visionModel with auto-fallback chain
  • Fallback Chain - Configured vision model -> main LLM (if vision-capable) -> Llama 4 Scout
  • Multi-Provider Support - Llama 4 Scout, GPT-4o, Claude Sonnet 4.5, Claude Opus 4, Gemini 2.5 Pro
  • UI Selector - Vision model picker on LLM Models page with "Auto" default option

MCP Server ​

  • JSON-RPC 2.0 Protocol - Agent exposes tools via MCP with tools/list, tools/call, resources/list, resources/read, elicitation
  • Bearer Token Auth - API key management via mcp_api_keys table
  • RPC Transport - Co-located Durable Objects communicate via "rpc" transport

Callable RPC ​

  • CallableRegistry - Type-safe RPC handler registration
  • Dual Transport - HTTP POST /api/rpc and WebSocket type:"rpc" support

Diagnostics System ​

  • 7 Diagnostic Channels - agent.state, rpc, message, schedule, lifecycle, workflow, mcp
  • Dual Subscribers - DB persistence and real-time WebSocket delivery

Retry System ​

  • Exponential Backoff with Jitter - Configurable retry logic for all async operations
  • Presets - AI_RETRY, TOOL_RETRY, GATEWAY_RETRY, MCP_RETRY

Stream Buffer ​

  • Circular Buffer - 1000-event buffer for resumable SSE streams
  • Last-Event-ID Resume - SSE events include id: field for reconnection support

Gateway Improvements ​

  • Email Thread Continuity - HMAC-SHA256 signed Reply-To addresses
  • Telegram File Handling - Proper file_id support
  • WhatsApp Verification - HMAC signature verification on incoming messages
  • Unique Indexes - Gateway config uniqueness enforced at database level

Skills Marketplace ​

  • Browse & Install - Discover and install pre-built agent skills from the marketplace
  • Skill Key-Value Storage - Per-skill persistent storage via skill_kv table

Changed ​

  • Connection Metadata - connections map now stores ConnectionMetadata (subscriptions, readonly, clientType) instead of raw WebSocket
  • Approval Responses - pendingApprovals resolves { approved, denialMessage? } instead of plain boolean
  • Schedule Overlap Prevention - running/running_since columns prevent concurrent schedule execution with 5-minute stale-run recovery

Technical ​

  • 10 new database migrations (037-046)
  • New files: callable.ts, diagnostics.ts, mcp-server.ts, retry.ts, stream-buffer.ts
  • New UI pages: diagnostics, MCP keys, payments, skills

[1.3.0] - 2025-02-06 ​

Added ​

Theme Support ​

  • Light/Dark Mode Toggle - Switch between light and dark themes via sun/moon button in dashboard header
  • System Theme Detection - Supports "system" preference that follows OS setting
  • Flash Prevention - Inline script prevents theme flash on page load
  • Theme Persistence - User preference saved to localStorage

Social Media Workflows ​

  • LinkedIn Integration - New post-linkedin workflow node for posting to LinkedIn via UGC Posts API
  • LinkedIn Settings - Configure access token and person URN in Settings > Integrations

Admin Panel ​

  • Waitlist Search - Filter waitlist entries by email
  • Waitlist Delete - Remove individual entries from the waitlist

Changed ​

  • Integration Settings UI - Social platform credentials now displayed as compact cards with modal dialogs instead of expanded forms
  • Social Platform Icons - Updated to use proper platform icons (Instagram, YouTube, TikTok, X logo)
  • Monaco Editor Theme - SQL page editor now follows light/dark theme

Fixed ​

  • Workflow Status Overflow - Long workflow names and status badges now wrap instead of overflowing
  • Output Card Overflow - Collapsible workflow output cards no longer spill outside container
  • Sonner Toast Colors - Toast notifications now theme-aware in both light and dark modes

[1.2.0] - 2025-01-29 ​

Added ​

Tool Clusters & OpenAPI Import ​

  • OpenAPI Auto-Import - Import all endpoints from an OpenAPI 3.x JSON spec as HTTP tools, grouped under a cluster name
  • Tool Clusters - Group tools by cluster with collapsible UI sections and bulk delete
  • Agent Self-Provisioning - New built-in import_openapi_tools and delete_tool_cluster tools let the agent import APIs during conversation
  • Enhanced HTTP Execution - Path parameter substitution, query param appending for GET, body exclusion for GET/HEAD

[1.1.0] - 2025-01-26 ​

Added ​

AI & Tool Calling ​

  • Code Mode - LLM writes executable JavaScript instead of structured tool calls for complex multi-step tasks
  • Selective Tool Loading - Context-aware tool filtering reduces prompt tokens by ~77%
  • Token Usage Tracking - Monitor AI usage with detailed per-agent token counts and cost attribution

Communication ​

  • X.com (Twitter) Integration - Post tweets, reply to mentions, send DMs via new gateway type
  • Cross-Gateway Memory - Same contact shares memory, preferences, and context across all communication channels
  • A2A Protocol - Agent-to-agent communication with JSON-RPC 2.0 messaging, agent discovery via /.well-known/agent.json

Browser ​

  • Steel Browser Integration - Open-source browser automation with full CDP control
  • Two-Tier Browser Strategy - browser_render for stateless scraping, browser_context for persistent sessions
  • Session Context Persistence - Cookies, localStorage, sessionStorage, and IndexedDB preserved across sessions

Data & Storage ​

  • Unified Media Table - Centralized storage for screenshots, chat uploads, generated images, and audio
  • Per-Agent Settings - Settings now stored per-agent in JSON column (migration 026)

Workflows ​

  • Async Workflow Deployment - Prevents Cloudflare proxy timeouts with polling-based deployment status
  • Workflow Output UI - Formatted step-by-step display of workflow execution results

Changed ​

  • Refactored settings from global KV table to per-agent storage
  • Browser documentation updated to reference Steel Browser
  • Improved GPT-OSS adapter validation and error handling

Fixed ​

  • Workflow deployer 502 timeout errors
  • Browser render "Invalid URL" errors with Steel fallback
  • Telegram gateway token configuration in deployed workflows

[1.0.0] - 2024-12-15 ​

Added ​

Core Features ​

  • Multi-agent architecture with isolated Durable Objects
  • Visual workflow editor with 30+ node types
  • Real-time WebSocket communication
  • Agent state management and synchronization

AI & Chat ​

  • Chat interface with conversation history
  • Multiple LLM provider support (Workers AI, OpenAI, Anthropic)
  • Tool calling with result tracking
  • System prompt configuration

Automation ​

  • Cron scheduling with visual builder
  • One-time and delayed task execution
  • Calendar integration with recurring events
  • Workflow execution tracking

Browser Control ​

  • Headless and headed browser sessions
  • Human-in-the-loop takeover capability
  • Browser action API (click, type, navigate, extract)
  • Live view monitoring
  • Screenshot capture

Data & RAG ​

  • File upload and processing
  • URL crawling
  • Vector search with Cloudflare Vectorize
  • Semantic similarity matching

Communication ​

  • Multi-channel gateways (Email, Telegram, Slack, Discord, WhatsApp, SMS)
  • Contact management with identity resolution
  • Conversation threading
  • Message history

Integrations ​

  • MCP (Model Context Protocol) server support
  • Agent-to-agent connections
  • Custom tool configuration
  • Service integrations

Database ​

  • D1 SQLite database
  • SQL query editor with Monaco
  • Schema introspection
  • Migration system

Security ​

  • Cloudflare Access integration
  • Role-based access control
  • Per-agent isolation
  • Secure credential storage

Technical ​

  • React 18 frontend with TypeScript
  • Vite build system
  • Tailwind CSS styling
  • Radix UI components
  • Cloudflare Workers backend
  • Durable Objects for state
  • R2 for file storage
  • Queues for async processing

Version History ​

VersionDateHighlights
1.4.02026-03-11Website Crawling, Access Control, Payments, Vision Models, MCP Server, Diagnostics, Skills Marketplace
1.3.02025-02-06Light/Dark Theme, LinkedIn Integration, Admin Waitlist Search
1.2.02025-01-29OpenAPI Auto-Import, Tool Clusters, Agent Self-Provisioning
1.1.02025-01-26Code Mode, Selective Tool Loading, X.com, A2A Protocol, Steel Browser
1.0.02024-12-15Initial release

Upgrade Guide ​

From Pre-release to 1.0.0 ​

  1. Backup Database

    bash
    npx wrangler d1 export agents-dashboard > backup.sql
  2. Apply Migrations

    bash
    npx wrangler d1 execute agents-dashboard --file=./migrations/007_puppeteer_action_types.sql
  3. Deploy

    bash
    npm run deploy
  4. Verify

    • Check agent functionality
    • Test workflows
    • Verify integrations