Claim status
[TODO i18n — see issue #76] Fact-check of the performance, security and enterprise claims that appear in AACSearch docs and marketing. Tracks each public claim against the current implementation.
This page audits the recurring claims that appear in AACSearch marketing, docs and SoftwareApplication JSON-LD. It is the place to land when a buyer, admin or auditor asks "is this number actually backed by code?"
Each row lists:
- Claim — the exact phrasing that has shipped publicly.
- Status — from the feature-status taxonomy.
- Reality — what the code/operations actually support today.
- Source — file or
wiki/tasks/*plan with the underlying detail.
The audit is non-exhaustive. If you find a public claim that is not in this table, file an issue and add the row.
Performance and availability
| Claim | Status | Reality | Source |
|---|---|---|---|
| "99.95% uptime SLA" | Roadmap (v1.0) | No published SLA, no measurement window, no credit policy. Prometheus alerts fire at p95/p99 > 300 ms. | wiki/tasks/performance-infrastructure.md (Section 14.4) |
| "99.9% uptime SLA" (Scale/Pro plans) | Roadmap (v1.0) | Same as above. Pricing-page wording should be softened to "target" until the SLA is contractually backed. | wiki/tasks/performance-infrastructure.md (Section 14.4) |
| "< 50 ms p99 latency" | Beta | Best case in EU region under light load. No public methodology, autocomplete is not measured. | wiki/tasks/performance-infrastructure.md (14.4.1–14.4.3) and packages/api/observability.ts |
| "Dedicated clusters" | Roadmap (v1.0) | Single Typesense + single Postgres per region. No sharding, no read replicas, no per-tenant cluster carve-out. | wiki/tasks/performance-infrastructure.md (14.5.1, 14.5.6) |
| "Multi-region routing" | Available | 3 regions: eu, us, ru. Routing is request-time only; data residency is not yet enforced per-tenant. | deploy/regions/README.md, wiki/tasks/performance-infrastructure.md (14.5.6) |
| "Data residency" | Enterprise | Region pinning per organization is contract-only. No self-serve toggle on Pro/Scale. | wiki/tasks/performance-infrastructure.md (15.x) |
Security and identity
| Claim | Status | Reality | Source |
|---|---|---|---|
| "SOC 2 compliant" | Roadmap | SOC 2 checklist exists (apps/docs/content/docs/en/security/soc2-checklist.mdx). Audit not yet completed. | apps/docs/content/docs/en/security/soc2-checklist.mdx |
| "SCIM 2.0 identity provisioning" | Beta | Users + Groups endpoints implemented at /scim/v2. Schema models present. Dashboard UI is partial. | packages/api/modules/search/scim-public.ts, scim-config.ts |
| "API key authentication" | Available | ss_search_* / ss_connector_* / ss_scoped_* keys, hashed at rest, scoped tokens HMAC-signed. | packages/search/lib/keys.ts, packages/api/v1/auth.ts |
| "White-label / custom branding" | Enterprise | Feature gates exist (customBranding, customDomain) but no end-to-end customization UI shipped. | packages/api/modules/entitlements/middleware/feature-gate.ts, wiki/tasks/self-hosted-licensing.md |
Self-hosted and deployment
| Claim | Status | Reality | Source |
|---|---|---|---|
| "Self-hosted deployment" | Roadmap (v1.0) | Docker tooling exists for dev/CI. No license key issuance, no validated install guide for production self-hosting. | wiki/tasks/self-hosted-licensing.md |
| "Air-gapped / offline" | Roadmap (v1.0) | All AI features (embeddings, LLM, OCR) depend on cloud providers. No offline model bundle. | wiki/tasks/self-hosted-licensing.md |
| "Helm chart / Kubernetes" | Roadmap (v1.0) | Not packaged. Coolify and Docker Compose are the only documented paths. | wiki/deploy/self-hosting.md |
| "Open source / MIT" | Available | SDKs (@aacsearch/client, @aacsearch/widget, etc.) are MIT-licensed. The dashboard/control plane is not OSS. | packages/search-client/LICENSE, root LICENSE |
AI and search modalities
| Claim | Status | Reality | Source |
|---|---|---|---|
| "AI search / RAG / Knowledge module" | Beta | 10 oRPC procedures, Knowledge models, GraphRAG nodes/edges. Production-ready for design partners; pricing in flux. | packages/api/modules/knowledge/ |
| "GraphRAG" | Beta | GraphNode / GraphEdge Prisma models + ingestion. UI surface and entity-extraction quality vary by data source. | packages/api/modules/knowledge/ |
| "Visual search" | Internal preview | Mentioned in homepage AI demo; no shipped endpoint, no docs page. Remove from feature lists outside the demo block. | apps/marketing/modules/home/components/AiAssistantChat.tsx (demo only) |
| "Voice search" | Internal preview | Same as above — demo string only. No streaming transcription endpoint behind the search API. | apps/marketing/modules/home/components/AiAssistantChat.tsx (demo only) |
| "Embeddable widget (Vanilla / React)" | Available | Vanilla widget shipped at packages/widget/ (Shadow DOM, ~18 KB). React hooks at @aacsearch/react. | packages/widget/, packages/react-hooks/ |
What to do when a claim is wrong
- In marketing copy or JSON-LD — open an issue, then either remove the
claim or qualify it ("target", "on Enterprise", "Beta — by request").
Marketing pages should never assert a number this table flags as
Roadmap. - In docs — add the appropriate status badge from Feature status at the top of the page that introduces the feature. Link to the relevant row in this table.
- In dashboards / empty states — gate the surface behind the entitlements middleware. Do not show a UI that promises a feature the user's plan cannot deliver.
The goal is that every public number AACSearch publishes is either demonstrably true today or carries a label that makes the gap visible.
Feature status taxonomy
[TODO i18n — see issue #76] How AACSearch labels feature availability across docs, marketing and the dashboard. Every feature flagged on a docs page resolves to one of these six states.
Positioning guide
[TODO i18n — see issue #76] Canonical positioning for AACSearch OS. Use this page to keep blog posts, comparison pages, marketing copy and case studies aligned with the Search Operating System framing.