Dziennik zmian
Co się zmieniło i kiedy.
Notatki o wydaniach są przechowywane w repozytorium i publikowane tutaj. Zmiany API podlegają polityce zgodności: tylko dodatki w ramach /api/v1, zmiany łamiące wyłącznie jako nowa wersja z wyprzedzeniem.
-
Webhook scope and pre-deploy hardening
- `webhooks` API-key scope. Managing webhook endpoints (
/api/v1/webhooks*,/api/v1/webhook-outbox*) now requires a key with thewebhooksscope; every key that existed before this change was granted it automatically, so nothing running breaks. Choose scopes when creating a key in Developer settings. - Same-day fix. The automatic
webhooksgrant did not apply on the production database at the first deploy (keys created earlier briefly received 403 on webhook management). Corrected in the follow-up deploy; every key created before that deploy now carries the scope. - Analyze page stops waiting for a stalled server. If no progress arrives for four minutes the analysis is cancelled with a clear message instead of spinning forever. Nothing is retried automatically.
- Reduced-accuracy notice. When the text-recognition service is unavailable the result says so, instead of only hiding text highlighting.
- Changelog in production. The
/changelogpage reads its entries inside the container build (they were left out of the image).
- `webhooks` API-key scope. Managing webhook endpoints (
-
Launch-readiness pass
- Security page.
/securityis now a page, not a redirect: encryption, authentication, isolation, retention, deletion, subprocessors and open items, each marked verified, provider-stated or open./.well-known/security.txtpublished. - API errors carry the request id. Every error envelope on
/api/v1/*now includesrequest_id(also theX-Request-IDheader); unhandled server errors return the same envelope withINTERNAL_ERROR. Every 429 carriesRetry-After. - Capabilities advertise rate limits.
GET /api/v1/capabilitiesgainedrate_limits, so clients stop hardcoding them. - Docs.
/docsopens with a three-language quickstart for the async job lane; the scope needed to read a job result is documented correctly (extractis enough). Compatibility policy published (docs/API_COMPATIBILITY_POLICY.md). - Demo pages. Unknown demo slugs render an HTML 404 with links to the real demos; a failed sample load is reported in the demo header; demo result JSON is cacheable.
- MCP. The
/mcppage shows install commands again (@synairodocai/docai-mcp@next, beta.6 on npm). - Changelog. This page.
- Security page.
-
MCP beta.5 and beta.6
docai_get_usagetool: remaining page budget for the configured key, free to call.GET /api/v1/capabilitiesis unauthenticated;GET /api/v1/usagereports both the page allowance and the key's monthly window.extract-only keys can read their own job results.- Error envelopes pass through
error.reason(for exampleapi_key_monthlyvspage_allowance).
-
Scan to PDF
- New Scan to PDF mode in the analyze screen and
POST /api/v1/scan: repair phone photos (edge detection, perspective correction, enhancement) and merge them into a PDF. No OCR, no AI, no pages charged. - Camera-photo cleanup runs at every upload boundary so OCR, AI vision and the on-page overlays all see the same image.
- Landing and pricing layout fixes on mobile.
- New Scan to PDF mode in the analyze screen and
-
MCP for coding agents
- Public
/mcppage and the@synairodocai/docai-mcpstdio server: capabilities, integration guide, extract a workspace file, fetch a job result. Installer anddoctorfor Codex CLI, Claude Code and Gemini CLI. - Agent-facing API surface:
GET /api/v1/capabilities,Idempotency-KeyonPOST /api/v1/jobsbound to the request payload (409 on conflict), stableerror.codeenvelope.
- Public
-
Feedback and measurement
- Result feedback widget on every analysis; retention configurable by the operator.
- Consent-gated, first-party product analytics bus with optional PostHog and GA4 adapters (off by default). Privacy, legal and consent copy discloses providers only when they are configured.
- First-value milestone recorded server-side when your own document completes.
-
Public site
- Landing page split from the app (
/analyze), three live demos (/demo/vat-invoice,/demo/receipt-photo,/demo/ksef-xml),/ksefpage for Polish e-invoices,/benchmarkswith dated OCR and split-detection numbers. - Self-hosted fonts and a strict, nonce-based Content-Security-Policy.
- Landing page split from the app (