Release notes
What changed in each AgentDB release that you can see or use.
#1.0.0-rc.13 2026-11-03
custom dashboards, app.agentdb.link, docs portal, index advice, scaling prep
#Custom dashboards on their own domain
- Four sharing modes:
only_me(the owning account),people(invited by email),password, andlink(anyone with the link; approved per version by a person). Sign-in goes through the app (code flow to/_auth); sessions are per dashboard.
#Main address moves to app.agentdb.link
- OAuth/MCP on two hosts: protected-resource and authorization-server metadata,
WWW-Authenticateresource_metadata, OpenAPIserversand/v1/capabilitiesname the configured legacy host when asked on it, and the public URL otherwise; an arbitrary Host is never echoed. Tokens are not bound to a host, so tokens and refresh tokens issued on either address work on both (tested: a connector set up on alpha refreshes there after the switch). - Defaults and texts: the CLI default server, the agent skill and server messages name
https://app.agentdb.link; the code no longer names the old host (test). User docs use the new address with a note that the old one works until the end date. - Sessions: cookies stay
__Host-(host-only): after the switch people sign in once more on app; the redirect keeps the return path. NoDomain=cookies.
#1.0.0-rc.12 2026-11-03
public-surface hardening, 1.0 operations checks
#1.0.0-rc.11 2026-11-03
password accounts, two-step sign-in, hosted dashboards, discovery
#Added: password accounts
- Password rules: 12 to 256 characters, not the email address, not one repeated character, not a common password.
- Forgot password at
/app/forgot-passwordand/app/reset-password: same answer for every address; single-use link valid 30 minutes; a reset ends every session of the account and emails a notice. At most 3 links of one kind per account per hour. - Settings → Sign-in and security in
/app: add a password to a magic-link account (it works only after an emailed confirmation), change the password (needs the current one; other sessions end; notice email), change the email address (link to the new address, notice to the old, the change happens only after confirmation; keys, workspaces, memberships and connectors are untouched), resend the confirmation link. All session writes need Origin andx-csrf-token. - One page for emailed account links:
/app/confirm-emailshows what the link does and the masked address (GET /v1/app/account-link/peek), and uses it only when the person presses Confirm (POST /v1/app/account-link/confirm).
#Changed (compatibility, password accounts)
POST /v1/signup(agent/API signup) is unchanged: it still returns the key once. The account is now markedagent_signupand gets a confirmation email; the key works whether or not the person confirms.- An emailed sign-in link and an accepted invitation now mark the address as confirmed. The sign-in itself works as before.
GET /v1/app/mehas a newaccountobject (email_verified,has_password,password_changed_at). Additive.
#Added: two-step sign-in and recovery
- Recovery codes: 10 single-use codes (80 bits each, stored as SHA-256), shown once when two-step sign-in turns on; Make new recovery codes replaces them (needs a current second factor). Settings shows how many are left.
- Machine credentials are not affected: API keys, agent keys, OAuth access tokens and CLI keys keep working.
- The key review exempts a sign-up key only when the server never returned it (password sign-up).
POST /v1/signupwith the client hintsource: "web"returns its key, so that key is always listed. Found in the rc.11 merge check. - Account audit:
second_factor.added,second_factor.removed,second_factor.failure(aggregated),second_factor.reset,recovery_codes.generated,recovery_code.used,passkey.renamed,passkey.counter_regressed,account_key.created,account.recovered,email.change_cancelled,password.cleared_unverified;login.successnames the second factor used.
#Added
- Stability label on every operation. Each operation is
stable(covered by the 1.x contract),experimental(may change before 2.0) ordeprecated(withreplaced_by). 201 operations are stable, 24 are experimental (connectors, the shared inbox and conversations, semantic search,content_dispatch) and none is deprecated; reasons are in the code. The label shows in the index (a count per category), in category, search anddetail: "full"listings (non-stable only), in the per-operation detail (stability,stability_note), inGET /v1/capabilities(mcp.tools_stability), in OpenAPI (x-stability) and in MCPtools/list(_meta["agentdb/stability"]; non-stable descriptions end with a note). Single source: theSTABILITYmap in the code.
#Added: hosted dashboards
- AgentDB hosts the dashboard page.
dashboards_createnow also returnspage_url,https://<server>/d/<dashboard id>#<token>. - Panels and layout can change.
dashboards_updateacceptstitle,panelsandlayoutwith the currentversion. A different version answersVERSION_CONFLICT. The last 10 versions are kept. - New operations:
dashboards_get(definition, version, history; RESTGET /v1/workspaces/{ws}/dashboards/{id}) anddashboards_rotate_token(new link for the same id, the old one stops at once; RESTPOST …/dashboards/{id}/rotate-token). - Access counts:
dashboards_listaddsaccess_stats(last_accessed_at, views per day for 30 days). Counts only: no addresses and no tokens. - Creator:
dashboards_listaddscreated_by,created_by_label(with ", revoked key" when the creating key is gone) andcreated_by_status. Dashboards still belong to the workspace. - /app → Settings → Dashboards (owners and admins): list, open, new link and revoke, each with a confirm step. Browser session only, with Origin and CSRF checks. Session routes:
GET /v1/app/workspaces/{ws}/dashboards,POST …/{id}/rotate,POST …/{id}/revoke,GET /v1/app/dashboards/{id}/preview. - Audit events in the workspace access log:
dashboard.created,dashboard.updated,dashboard.token_rotated,dashboard.revoked,published_view.created,published_view.revoked. - MCP tool descriptions for the dashboard tools have an
exampleeach.
#Changed (compatibility, dashboards)
- New link dashboards expire after 90 days unless the call sets
expires_in_days(1-365),expires_in_hoursorexpires_at, or passesexpires_in_days: nullfor no expiry. Existing dashboards are not changed. Password and key dashboards get no default.
#1.0.0-rc.10 2026-11-03
safe email links, approval emails, connected apps
#Changed (compatibility)
decide_inchanges from a relative path to an absolute URL. The relative path stays available in the new fielddecide_in_path. Clients that joineddecide_into a base URL should readdecide_in_pathinstead.
#Changed (agent discoverability, additive)
- Approval policy keys are discoverable. A claude.ai test (OAuth MCP connector, rc.9) concluded that
objectsandfieldsdid not exist and created a policy without an object scope. Everyapproval_policies_create/approval_policies_updatekey (name,operations,objects,fields,condition {field, op, value},applies_to,approvers {min_role, members, kinds},quorum,expires_in_seconds,confirm,enabled,human_only,distinct_approver) now has a description in the tool's input schema (also REST/OpenAPI), and the tool description names them all with an example.applies_toexplains the default["agent"]and["agent", "key"]for account-key agents. approvals_submitdocuments both forms: the MCP tool form (operation+arguments) and the REST/domain form (records.update+params+input).approvals_decideand friends nameapproval_id. A call that sendsid(or the path name, e.g.approval) instead of the tool's id argument now gets aVALIDATION_ERRORthat names the right key (details.received), for every MCP tool with an id argument. No alias is accepted. The description also coversaction_hashandFORBIDDENhuman_session_requiredwithdecide_in.- Principal naming is consistent.
workspace_info(and RESTGET /v1/workspaces/{ws}) addkey_typeandvia, also insideprincipal;workspace_list,workspace_getand RESTGET /v1/account/workspacesaddvia. For an OAuth connector all reportkey_type: "account"andvia: "oauth";principal.kindstays"key".viaisoauth,api_key,sessionorautomation.
#1.0.0-rc.9 2026-11-02
authenticated human approvals, email logo, rollback docs
#Changed (compatibility)
- Keys that used to approve under the default rule or an existing policy now get
human_session_required. Owners who want keys to keep deciding sethuman_only: falseon the policy. approvals_get/approvals_listaddhuman_only,action_hash,decide_inanddecisions[].via.approvals_decideacceptsaction_hash.imports_runacceptsapproval_id.
#1.0.0-rc.8 2026-11-02
discovery, one normalization, explorer completion, self-delete, re-import, media worker, security and real-agent fixes
#Added
- Workspace import. A data export (
GET /export?format=bundle, or the.ndjson) becomes a NEW workspace in your account; nothing is merged. RESTPOST /v1/workspaces/{ws}/workspace-imports(the bundle is a file of that workspace), MCPworkspace_import(categoryimport_export), CLIagentdb workspace import <bundle>, explorer "Import a workspace" in the switcher. Keeps schema and record ids, versions, timestamps, links, attachments and files with every version (checked again by the file policy, scanner and quota), record rules, retention, search, indexes and views.dry_run: truereports counts, problems and quota impact without creating anything. Atomic (a failed import leaves no workspace) and idempotent (the same key returns the same workspace). Automations only withinclude_automations: true: paused or disabled, webhooks with a new secret. Strict bundle checks: allow-listed tar entries only, checksums, size, entry, ratio and line limits. docs/WORKSPACES.md. - REST
GET /v1/capabilities?search=|category=|operation=|detail=and CLIagentdb capabilities --search|--category|--operation|--indexreturn the same views. OpenAPI operations carrytagsandx-agentdb-category; the document lists the categories as top-leveltags. - Opt-in compact MCP tool list:
/mcp?tools=compactor headerx-agentdb-tools: compactlists 16 core tools; all tools stay callable. The default stays the full list. UNSUPPORTED_OPERATIONdetails adddid_you_mean(closest operations) andcategory.- Hub: Inbox, Channels, Reports and Settings tabs (, ).
/app/hubshows the member's inbox across workspaces (mentions, direct messages, assignments, approvals, reminders, knowledge reviews, form submissions, SLA breaches, failures) with mark read / unread / done; the channels the member belongs to with threads and posting as the member; savedreportviews of every workspace drawn by the explorer's report renderer; and notification email settings. Writes use the one/appwrite path (Origin, CSRF, 12 h session, role, Idempotency-Key). Routes:GET /v1/app/hub/{inbox,channels,reports},GET|PATCH /v1/app/workspaces/:ws/inbox[/:item],GET|POST /v1/app/workspaces/:ws/channels/:channel/messages,GET|PUT /v1/app/workspaces/:ws/notification-settings. - One notification service (). Every inbox item goes through
createInboxItemin the code. New: dead job runs and webhook deliveries create inbox items for owners and admins without permission rules.onApprovalEventwakes the email sender;registerNotificationSourcelists unread inbox items in the hub. - File uploads in public forms ().
filesin a form definition;POST /v1/forms/{ws}/{token}/files/{input}uploads one file bound to the form ticket (size and type limits, magic bytes, malware scan when on, one per input, used tickets refused). The submission attaches the files to the record, keeps them with a quarantined submission (release attaches, discard deletes) or deletes them; uploads without a submit expire with the ticket. - Deferred: video poster frames (no safe, maintained pure-JS/wasm decoder for Node), image transforms, M4A/Ogg waveforms.
- Customer workspace self-delete with a 30-day grace period. The owning account deletes a workspace by typing its name:
/appSettings → Danger zone,POST /v1/workspaces/{ws}/delete {confirm_name}, CLIagentdb workspace delete <ws> --confirm-name "<name>", MCPworkspace_delete. Only the owner's session or account keys; never workspace keys, agents or members.
#Changed
- Data export format 2. The export adds
object_settings,search,index,viewandfile_versionlines, fileversion/folder/tags, automation metadata for unrestricted callers (never a secret) and asha256on the end line. Bundles carryfiles/<id>.v<n>for earlier versions. Format 1 readers that skip unknown line types keep working. application/gzipis in the default file allow-list (verified by its magic bytes), so export bundles can be uploaded for import.- One value-folding mechanism. Import inspect, import dry run and run, duplicate suggestions and link-target suggestions now compare values through one module, the code, with named levels
exact,trim,case,accents,punctuationand a suggestion-onlycompanyprofile (legal suffixes such as B.V., Ltd, GmbH). Before, dedup and imports folded accents and punctuation differently, and inspect and run used different column rules. - Import suggestions (
imports_inspectandimports_run, REST/MCP/CLI) addvalue_suggestions(per value:from,to,level,certainty,reason,candidates,rows,first_rows) anduncertain_normalize. Inspect and a dry run return identical suggestions. Status fields are compared like enums. suggested_normalizeandsuggested_rulesnow hold only unambiguous mappings: one allowed value that differs only in spacing or case. Accent, punctuation and legal-suffix matches, several candidates (initechvsInitech/INITECH) and word-prefix conflicts (Leadvslead/lead_qualified) areuncertainand go touncertain_normalizefor review. Free-text variants are always uncertain.records_duplicatestakeslevel(defaultpunctuation); groups and evidence report the level matched. Thenormalizedkey no longer keeps spaces (annmuller).relationships_link_batch: aNOT_FOUNDby unique field carriesdetails.suggestion(proposed value, level, certainty, candidates). The link is never made to a folded match.
#1.0.0-rc.7 2026-11-01
workspace delete fix, CLI output fix
#1.0.0-rc.6 2026-11-01
full ecosystem pack (15 prompts), human explorer, security hardening
#Release notes draft: 1.0.0-rc.6
- Data model: 17 new field types incl. exact
decimal/currency,statuswith transitions,formula,file,user_ref/agent_ref,recurrence(02, 03, 05, 07). - Files and media: audio/video types, metadata, local text extraction, versions, resumable upload, range downloads, signed expiring file links (03).
- Query and data operations: required relationships, full-text search (FTS5), roll-ups, saved views, schema packages, duplicates and merge, recycle bin and archive, named indexes, customer export (04).
- Identity and access: named agents with their own keys, members and roles, object/field/owner-record permission rules, generated workspace docs, stability policy and contract test (05).
- Automation: signed webhooks, scheduler (once/cron/RRULE), flows, background dispatcher (07); channels and inbox (08); approvals and the AgentHub (09); calendar, knowledge and the connector framework (10).
- Human apps:
/appexplorer with email-link sign-in (01), editing, components, view displays and published views (06). - Packages: AgentCRM, Todos, Kanban, Projects (11); CMS, Forms, Content with a public delivery API and public forms (12); Support, Recruit, Property, Inventory, Assets (13).
- Security: security review 2 fixes (below), creator revocation for links, webhooks, jobs and flows, idempotent results replayed only to their principal (R-003).
- Delete is soft by default.
records_delete/records_delete_batchmove records to a recycle bin for 30 days (per-object retention). Unique values are released at once. Erasing personal data needspermanent: trueorrecords_purge. - Archived records are left out of queries, aggregates and related lists unless
include_archived: true. - File fields: a
filefield holds one id;options.multiple: truemakes it a list of 1-100 ids. This can't be changed later. APPROVAL_REQUIRED(403) for a write that an approval policy covers, once a workspace has policies. The client proposes the write withapprovals_submit. Workspaces without policies behave as before.- Inbound connector events:
X-AgentDB-Event-Idis ignored; the dedupe key comes from the signed body. - Saved views: the provisional
definition.layoutis refused (VALIDATION_ERROR); usedefinition.display. - Idempotency keys reused by another principal answer
IDEMPOTENCY_KEY_REUSED. - New error codes:
APPROVAL_REQUIRED,REQUIRED_RELATIONSHIP_MISSING,FEATURE_DISABLED,SUBMISSION_REJECTED,INVALID_TRANSITIONand others; the contract test lists them. - Expect deploy-smoke
34 passed, 0 failed. - Polish (rc.6 final walkthrough):
- Operations and release gates:
- Security fixes (wave 3 review):
- Security fixes (security review 2):
- Generated-app UI and editing:
- App packages AgentCRM, AgentTodos, AgentKanban, AgentProjects:
- Business vertical packages:
- Wave-3 package unification (merge of Prompts 11 and 13):
- Wave-3 merge of Prompt 12 (CMS, Forms, Content) with Prompts 06, 11 and 13:
- AgentCMS, AgentForms, AgentContent:
- Creator revocation (security):
- Query, integrity, search, views, templates, dedup and lifecycle:
- Field types: 17 new types next to the six existing ones (unchanged):
number,decimalandcurrency(exact; money without rounding drift),time,timezone,duration,multi_select,list,json,email,url,phone,address,geo,rich_text(Markdown without HTML),formula(computed, safe expression language) andstatus(allowed transitions). Reference: the code. - Identity, roles and permissions:
- Security (R-003): a stored idempotent result is now replayed only to the principal that produced it. API keys share one namespace, so retries still work after key rotation. Another principal that reuses the key gets
IDEMPOTENCY_KEY_REUSED. Agent keys can't approve OAuth connections or CLI logins. Renaming a workspace now needs the owner or admin role on that workspace. - Field types
user_refandagent_ref(): they hold a person's account id or an agent id. They can be filtered witheq,neqandin, and they are the basis of owner rules. - Generated workspace docs ():
GET /v1/workspaces/:ws/docs(MCPschema_docs, CLIagentdb docs) returns an OpenAPI fragment, a JSON Schema per object, example bodies and markdown (?format=markdown). They are generated from the workspace's own schema and show only what the caller may see. - Stable contract (): the code describes the stability and deprecation policy. The contract test the code checks that no tool, REST operation, error code or required argument disappears.
- OAuth conformance (): an end-to-end test drives the official MCP SDK OAuth client. It covers discovery, dynamic registration, PKCE, refresh, revocation, expiry and code replay. The manual claude.ai and ChatGPT steps are in the code and are still unverified.
- Media and content pipeline:
- Transparent raster icons: the server now serves the AgentDB mark as PNG (32, 192, 512, plus
apple-touch-icon.pngat 180) and a real multi-sizefavicon.ico, all with a transparent background. Before,/favicon.icoredirected to an SVG, which connector UIs and favicon services cannot use; they showed a fallback icon on white. - MCP server info:
title: "AgentDB",websiteUrl, andicons(512 and 192 PNG, plus SVG), so MCP clients can show the logo. - Human workspace explorer, phase 1 backend: people sign in at
/app/sign-inwith an emailed link (15 minutes, single use, same answer for unknown addresses) and browse their workspaces through new/v1/app/*routes: schema, records, one record, linked records, history, attached files, file content and usage. See the code. - Record history: new read
records.history(activity of one record, newest first, cursor-paged), also asGET /v1/workspaces/:ws/records/:record/historyfor API keys. - Security hardening: email sign-in, account recovery and OAuth email sign-in now answer 200
{sent: true}at once, without waiting for the mailer; a mail failure is logged, not returned as 503. Known and unknown addresses get the same status, body and timing. The explorer confirm page shows the masked address (GET /v1/app/sign-in/peek, does not use the token) before the button. Signing in again ends the browser's previous session. An account keeps at most 20 live sessions; ended ones are deleted. Record history with a cursor answers 404 for a record that never existed. - Webhooks: signed HTTPS webhooks for change events (
record.*,relationship.*,schema.changed,file.changed,webhook.disabled), optionally per object. - AgentScheduler: jobs run once, on a cron schedule or on an RRULE, in an IANA time zone with a declared DST policy.
- AgentFlows: rules on record created/updated/deleted or field changed, with a
wherecondition in the query format. - Recurrence field type ():
type: "recurrence"stores a validated RRULE string. - 24 new MCP tools (
webhooks_*,jobs_*,flows_*,schedule_preview), matching REST routes and CLI groupsagentdb webhooks|jobs|flows. Writes needrecords:write, reads needrecords:read. - Permissions (Prompt 05): only owners, admins and keys without permission rules manage or read webhooks, jobs and flows; an agent needs the admin role (
403 FORBIDDENotherwise;schedule_previewstays open). What they deliver follows the creator's access at that moment: hidden field names are dropped from webhook events,include_recordpayloads and{{record.data.*}}placeholders only show readable fields, conditions andfield.changedtriggers on hidden fields never fire, and nothing runs or is delivered once the creator loses access (revoked agent, removed member). Narrowed callers of the change feed no longer see webhook, job and flow events. - Change events now carry field names:
record.createevents include the field names that were set, andrecord.updateevents include the object name. - Push (): SSE was not built. Long-poll stays the default; see the code.
- AgentChannels and AgentInbox:
- Approvals and the AgentHub:
- AgentCalendar, AgentKnowledge and integrations:
#1.0.0-rc.5 2026-11-01
email Reply-To, development policy
- Policy: the V1 feature freeze is lifted. Justified, tested and versioned improvements are allowed; production deploys still need explicit authorization.
#1.0.0-rc.4 2026-11-01
import normalization fix
- Fix (real-user report): an
imports_rundry run rejected enum values likeProspectandPROSPECTwithout suggestingprospect.
#1.0.0-rc.3 2026-11-01
V1 release candidate
- Security:
- Operations:
- Docs:
#1.0.0-rc.2 2026-11-01
V1 release candidate (feature freeze)
- Imports:
- Docs:
- MCP:
#1.0.0-rc.1 2026-11-01
V1 release candidate
- Security:
- Imports:
- MCP: still 46 tools. The only interface change is one new optional argument,
on_unresolved_link.
#1.0.0-beta.3 2026-11-01
V1 beta user feedback
- Dashboard sharing:
- Batch errors:
- Composite matching for single records: MCP
records_upsert, RESTPOST /records/upsert-one, CLIrecords upsert-one --match-on a,b,c. - Capabilities:
- Schema history and undo:
- Import normalization:
- Docs: the code (verified in Chromium), the code.
- Database:
- MCP: now lists 46 tools (new:
records_upsert,dashboards_update,schema_history,schema_undo). Existing tools and arguments are unchanged.
#1.0.0-beta.2 2026-11-01
live data for agent-built dashboards
- Live data for dashboards (
dashboards_create,dashboards_list,dashboards_revoke): - Change feed:
records_changes/GET /v1/workspaces/{ws}/changes(pull and long-poll). - Fixes: Fastify
logController(removes the FSTDEP023 warning), and the deploy template now copiesinstall.ps1. - MCP: now lists 42 tools.
#1.0.0-beta.1 2026-11-01
V1 Beta candidate
- Sign in from web AI tools (OAuth 2.1):
- Discovery:
GET /v1/capabilities(no auth) and/openapi.json(generated from the domain schemas)./llms.txtand/skill.mddescribe OAuth, discovery and recovery. - Account recovery:
/recoveremails a single-use link (30 min) that creates a new account key, optionally revoking all old keys. The answer never reveals whether an account exists. - CLI:
- CI/CD: GitHub Actions
ci(typecheck, lint, tests on every push) andrelease(builds from one commit; tests binaries on macOS, Linux and Windows runners; creates a draft release). - Wording: "alpha" becomes "beta" in the product. The synthetic/non-sensitive data restriction stays.
- Tests: 158. Fixed timing-sensitive and non-root test issues found by CI.
#0.2.0-alpha.9 2026-11-01
existing keys keep working with workspaces
#0.2.0-alpha.8 2026-11-01
several workspaces per account; delete, aggregate, composite keys, schema changes
- Better batch errors: failed upsert items and import rows carry
identifier(match key or first fields),fieldand, for imports,row. Totals includeattempted.records_upsert_batchtakesdry_run;imports_runtakesatomic(default false, as before) andmax_errors. - Delete records:
records_delete(one, optional version check) andrecords_delete_batch(≤ 1000 by ids, or bywherewith a requiredexpected_count;dry_run). Links and attachments are removed; files are kept. New errorCONFIRMATION_REQUIRED(409). - Composite matching:
schema_define_unique_key/schema_remove_unique_key(2-5 fields, enforced and indexed).match_onaccepts a list in upserts and imports. - Schema changes:
schema_update_field(rename, retype with validation, enum values, required, unique, description;dry_run,confirmfor lossy) andschema_remove_field(confirm). - CLI:
records delete,records delete-many,records count,aggregate,schema field-update,field-remove,unique-key-add,unique-key-remove;records upsert --match-on a,b,c --dry-run. - Tests: 142 (was 133); fixed a timing-sensitive import test (default 5 s timeout under parallel load).
#0.2.0-alpha.7 2026-11-01
more AI tools
agentdb mcp install claude-desktop | windsurf | gemini(plusremoveandlist). Same keychain-backedagentdb mcp proxy; no keys in config files; other settings kept, backup written.- Install output now says what to do next (restart the app, new chat, trusted folder for Gemini).
/llms.txtand/skill.mdlist the new tools. No other server changes.
#0.2.0-alpha.6 2026-10-31
the agentdb CLI
- Rename: the CLI is
agentdb;agentdatakeeps working as an alias (rename note on stderr). agentdb login: browser device login (/v1/cli/login/*, page/cli/login), or--api-key(hidden prompt / stdin). Key in the OS credential store. Alsologout(revokes keys it was issued),whoami,status.- Server:
GET /v1/me,POST /v1/me/revoke(a key revokes itself),/skill.md, CLI section in/llms.txt. agentdb mcp install claude|codex|cursor|vscode,mcp list,mcp remove, andmcp proxy(stdio →/mcpwith the saved key; no keys in AI tool configs).agentdb records list <object>,agentdb skill print|install claude.
#0.2.0-alpha.5 2026-10-31
file imports
- New MCP tools and REST routes:
imports_start,imports_inspect,imports_run. They import CSV, JSON and JSONL files without putting their contents into tool calls. - One-time upload links: valid for 30 minutes, single use, write-only, and not an API key. Use
PUT /v1/uploads/{token}(e.g.curl -T), or the browser page/upload/{token}for sandboxes without network access. imports_inspect: columns, detected types, empty and duplicate counts, suggested match keys, the mapping to an existing object, and preview rows.imports_run: reuses the bulk upsert and bulk link operations.- Files: stored through the existing AgentFiles path, with type verification, size and storage quotas, and the scanner.
application/x-ndjsonadded to the verified text types. - MCP: now 24 tools.
#0.2.0-alpha.4 2026-10-31
relationships_link_batch: MCP tool,POST /v1/workspaces/{ws}/links/batch, CLIrecords link-batch.records_upsert_batch:client_ref: optional on every upsert item and link; echoed in results, errors andBATCH_REJECTEDdetails.- CLI:
- Docs: the code covers the batch rules, retries and a 3-call import recipe, plus the design for inline relationship references (not implemented).
#0.2.0-alpha.3 2026-10-31
alpha.agentdb.link/is now a focused signup screen, not a second landing page. The marketing headline, feature table, steps table and illustration are gone; that content lives on agentdb.link./assets/illustration.svgremoved. Onboarding, the admin panel,/llms.txt, the API and MCP are unchanged.
#0.2.0-alpha.2 2026-10-31
- Onboarding: after signup, three steps with a sidebar: save the key; pick an AI tool (10 clients, generated setup with copy buttons); run a first task.
- Agent-first: the landing page offers a prompt that lets a coding agent sign the user up and connect itself;
/llms.txtgives plain-text instructions for agents. - Closed state: matches the site and links back to agentdb.link. The legal-readiness safeguard is unchanged.
- Routes:
/llms.txt,/favicon.ico, logos, mark and illustration under/assets/. No API, MCP, auth or limit changes.
#0.2.0-alpha.1 2026-10-31
public alpha
/: signup page with onboarding. It shows the API URL, workspace and key (once), a readyclaude mcp addcommand, MCP JSON for other clients, a first prompt and a curl check.POST /v1/signup: email +accept_termsgives an account, a workspace and a full-scope key.GET /v1/signupreturns the configuration.- Abuse controls:
- accounts, workspaces, usage (records, DB, files), last use, requests, errors and limits since start, the last 50 errors
- actions: suspend, reactivate, new key, delete
- Env template: signup settings and public-alpha quotas (100 MiB DB, 250 MiB files, 200 workspaces).
- Docs: quickstart starts at signup; terms and privacy drafts cover account emails. Invitation docs are marked superseded.
#0.1.0-alpha.3 2026-10-30
#0.1.0-alpha.2 2026-10-30
#0.1.0-alpha.1 2026-10-30
- Additive typed schema (text, integer, boolean, date, datetime, enum; required and unique fields); relationship types.
- Records: create, get, update with version checks.
- Links and one-hop traversal.
- Typed query DSL with cursor paging.
- Audit event per mutation.
- Bounded bulk upsert (≤ 500 items), atomic or per-item, matched by id or unique field.
- Durable idempotency keys on all mutations.
- REST v1.
- MCP (Streamable HTTP, 20 tools), tested with Claude Code.
agentdataCLI.- Streamed uploads, attachments, authenticated downloads.
- Verified-type allow-list, quarantine, optional ClamAV.
- Key revocation and rotation; workspace suspension.
- Rate and concurrency limits; query deadlines.