Skip to content

docs: tighten v2 docs, align terminology, replace cookbooks - #359

Merged
abhishekt-hydra merged 37 commits into
mainfrom
claude/sleepy-brown-2j41wi
Nov 11, 2026
Merged

abhishekt-hydra merged 37 commits into
mainfrom
claude/sleepy-brown-2j41wi

Conversation

@Nishkarsh1606

@Nishkarsh1606 Nishkarsh1606 commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Description

Refactors the v2 docs for brevity and consistent terminology, and replaces the old cookbooks with six short, benchmark-mapped ones.

Cookbooks

  • Old cookbooks removed. All v1 and v2 cookbook pages and the tests that executed their code.
  • Six new cookbooks under cookbooks/v2/: Glean, Cursor, AI Chief of Staff, personal assistant, competitive intelligence agent, customer support agent. Each is about 100 lines of Python on the v2 API, uses the query settings its benchmark report states, and runs on sample data with only an API key.
  • Cookbook home page with a map from each cookbook to the benchmarks on benchmarks.hydradb.com that test it.
  • Shared setup lives in snippets/cookbook-setup.mdx and is rendered on every cookbook.
  • New test scripts/test_cookbooks.py executes every cookbook against the released SDK's method signatures and the documented payload shapes, with no network. The cookbooks have not been run against the live API.
  • Old cookbook URLs redirect to the closest new page.

Rest of the docs

  • Every v2 page edited. Get Started, 15 guides, 56 API reference pages, 14 plugin pages, and the agent guide. Each rule is stated once on its owner page and linked elsewhere; "In this guide" lists are gone; endpoint pages no longer restate the schema; BYOG headings are restructured.
  • Terminology standard added to CONTRIBUTING.md and applied: class → kind, passage → chunk, item/document → source, allow-list → ACL, recall → query, "your app" → "your application". The Glossary matches it.
  • Navigation regrouped by task: Ingest, Query, Organize and Secure, Concepts, Advanced. Error Responses moved into the API Overview group. Site name is "HydraDB".
  • Titles: Multi-tenancy → Databases and Collections; How to Use API Results → Use Query Results; MCPs → MCP.
  • URL slugs: database endpoint pages no longer say tenant (create-tenant → create-database, and so on), plus multi-tenant → databases-and-collections, sources-overview → context-overview, list-documents → list-context. Every old path has a permanent redirect.

Factual corrections, confirmed with engineering:

  • Re-adding an existing connector resource with POST /connectors/{id}/resources returns 409 and changes nothing. Use PATCH to update.
  • upsert defaults to true.
  • Dashboard links point to dashboard.hydradb.com; plugin links point to v2 pages.

Not in this PR:

  • v1 pages are untouched apart from removed cookbook links.
  • Code blocks in existing pages are unchanged, so some still use older names (tenant_id= in the CrewAI and LangChain examples, tenant_metadata in two agent-guide examples).
  • package.json still lists @hydradb/sdk, typescript, and ts-node, which only the deleted cookbook type-check used.

Open follow-ups, owned by engineering:

  • HYDRADB_COLLECTION is required by some plugins and optional in others; the pages describe each plugin as it behaves today.
  • failed versus errored as an indexing status; the agent guide tells agents to handle both.

Related Issue

No issue was opened for this work.

Type of Change

  • Content fix (typo, broken link, incorrect info)
  • New content (guide, tutorial, API docs)
  • Structural change (navigation, layout)
  • CI/Build

Checklist

  • I have read the CONTRIBUTING guidelines
  • This PR is linked to an issue
  • My commits are signed off (git commit -s) per the DCO
  • mintlify dev renders my changes correctly (cookbook home page and Glean page checked; other pages rely on mintlify validate and mintlify broken-links)
  • I have not committed any secrets or credentials
  • No internal system details are exposed in the content

🤖 Generated with Claude Code

https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Delete the v1 and v2 cookbooks, their sidebar tabs, and the tests that
executed cookbook code. Redirect /cookbooks/* to the v2 quickstart.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Remove repeated explanations, give each concept one owner page, restructure
BYOG headings, retitle Multi-tenancy to Databases and Collections, and apply
the canonical terms (source, chunk, kind, query, ingest, ACL).

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
State each rule once, fold duplicate endpoint tables into the SDK method
reference, merge the two mistake lists, and use query terminology.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Define each Claude Code setting once, order every page as Quickstart,
Configuration, How it works, retitle MCPs to MCP, and point links at v2.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Give indexing status one owner section, state shared app-source rules
once, and keep a single field reference per page.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Use one page shape and one vocabulary, drop prose that restates the
schema, and give overview tables the same columns.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Give index.mdx the endpoint map and conventions, make each group overview
own its call sequence, reorder the SDK page as a reference, and drop
parameter tables that restate the schema.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
State shared ingest fields once, replace tables that restate the schema
with behavior notes, and give every page the same closing structure.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Replace Usage, Organize, Understand with Ingest, Query, Organize and
Secure, Concepts, Advanced. Move Error Responses into the API Overview
group and name the site HydraDB.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Rename the database endpoint pages, the context overview and list pages,
and the scoping guide to match their titles. Add permanent redirects from
every old path.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

✅ Mintlify Hygiene

No issues found.

@mintlify

mintlify Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
cortex-ai 🟢 Ready View Preview Nov 11, 2026, 4:24 PM

💡 Tip: Enable Automations to automatically generate PRs for you.

@mintlify

mintlify Bot commented Nov 11, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
cortex-ai 🟡 Building – Nov 11, 2026, 2:37 AM

💡 Tip: Enable Automations to automatically generate PRs for you.

@greptile-apps

greptile-apps Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 0/5

[Medium impact] The changes affect the public v2 documentation and the paths readers use to find it.

The PR needs fixes before merging because the new cookbooks can expose private content and fail during their main workflows.

Findings

  1. P1 Security Private tickets reach other customers ▶
  2. P1 Security Queries use the wrong permissions ▶
  3. P1 Glean fails while printing citations ▶
  4. P1 Source files fail to upload ▶

Summary

The PR tightens v2 wording, renames database and context pages, and updates navigation and redirects.

  • The old cookbook collection is removed while the site keeps a smaller v2 cookbook section.
  • V2 navigation and API pages use task groups and database, collection, and context names.
  • V2 guides and references use a shared set of names and point readers to the page that owns each rule.
  • Plugin pages group setup, configuration, and usage notes into clearer sections.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  A[Six cookbook pages] --> B[Shared Python setup]
  B --> C[Create database and wait]
  C --> D[Ingest sample context]
  D --> E[Wait for indexing]
  E --> F[Query selected collections]
  F --> G[Send context to a model]
  H[Cookbook tests] --> I[Fake API responses]
  I --> A
Loading

Reviews (3) · Last reviewed commit: "docs(cookbooks): make the benchmark map ..." · Reviewed by Greptile

The hygiene linter resolves same-page anchors against headings only, so
links to <a id> anchors were reported as broken.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Add a cookbook home page with the benchmark map and six cookbooks (Glean,
Cursor, Chief of Staff, personal assistant, competitive intelligence,
customer support), each about 100 lines of Python on the v2 API. Add a
test that executes every cookbook against the released SDK's method
signatures, and redirect the old cookbook URLs.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
List cookbooks as rows so the map needs no horizontal scrolling.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
@Nishkarsh1606 Nishkarsh1606 changed the title docs: tighten v2 docs, align terminology, remove cookbooks docs: tighten v2 docs, align terminology, replace cookbooks Nov 11, 2026
Comment thread cookbooks/v2/support-agent.mdx Resolved
Comment thread cookbooks/v2/glean.mdx Resolved
Comment thread cookbooks/v2/glean.mdx Resolved
Comment thread cookbooks/v2/cursor.mdx Resolved
…dels

- Glean: build citations from result.data.chunks; the public query result
  has no sources field.
- Glean: keep enforce_acl off behind a shared API key, and say why.
- Cursor: upload code as .txt; code extensions are rejected with E1002.
- Support: keep private tickets in the customer's collection, not the
  shared help center.
- Setup: add source_ids(), which raises when an ingest rejects an item.
- Test: return the SDK's own response models with public fields only, and
  check app source fields per kind and upload extensions.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Glean to Company, Cursor to Software Factory, and Competitive
intelligence to Revenue engine.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Agent guide: remove the internal sources field from the query response,
list supported file formats and the E1002 rejection, and warn against
enforce_acl behind a shared API key.

Add scripts/test_docs_examples.py. It runs every Python example in the
v2 docs through the real SDK over a fake HTTP layer that checks each
request and response against the OpenAPI spec, type-checks every
TypeScript example against @hydradb/sdk, and checks JSON and cURL
examples against the spec.

Fix what it found: updateResourceAcl takes customInstructions and acl as
top-level fields, sourceFields uses appProvider, and several TypeScript
examples did not compile under strict null checks.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
…rence

Assert that defaults, limits, indexing statuses, app source kinds, and
supported file formats are stated identically wherever they appear, and
that absolute docs links resolve. Fix the two drifts this found in the
agent guide: the kinds list lacked meeting, and one link was malformed.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Same-page links must match a heading, as the hygiene check requires.
Fix the stale same-page anchor on the Context page.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
…and tests

Agent guide: use kind and fields in the app source examples, list both
collections in the personalized query, correct the recency_bias range,
the create_resource note, the type values, and a bare filter value.

Cookbooks: wait for completed before re-ingesting the same id, drop an
unsupported claim and parameter from Cursor, and correct the index and
digest wording.

Guides: repoint links whose targets no longer cover the topic, and
compare webhook signatures as bytes.

Tests: record qualified SDK calls, require acl over restricted sources,
count feedback calls that examples swallow, check every status literal,
exercise the errored and rejected paths of the setup snippet, check
JSON payloads inside cURL examples, and fail on anchors to missing pages.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Check each endpoint page against the OpenAPI spec: the Python and cURL
request examples call the endpoint the page documents, the Python
example is answered with the page's own documented response, Python and
TypeScript call the same SDK method, cURL paths, headers, parameters and
bodies exist in the spec, field tables name real request fields, and
every published operation has a page.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
- Webhooks overview: restore the payload and signing-secret sections
  that other pages link to, and point those links at them.
- Connector status: sync_blocked is a connector field, not a resource one.
- Error catalogue: add E9003 and E9004.
- Make request examples match the responses shown beneath them on
  Ingestion Status, List Context, Source Relations, and Submit Feedback.
- Correct the SDK notes on resource updates and the subgraph route, the
  status code summary, and the re-configure rule for collections.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Five cookbooks were run end to end against the live API. For a few
seconds after a source reaches graph_creation, a query can miss it and
a new collection is reported as not existing, which made three cookbook
queries fail or return partial results.

- Cookbook setup: wait_indexed waits for completed.
- Agent guide, Context, Query, and Ingestion Status: say that
  graph_creation becomes searchable within seconds, and to wait for
  completed when querying straight after ingesting.
- Query: the prompt labels results [1], [2], as the live response does.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY1LUg8AWZayst2djgnjNK
Signed-off-by: Claude <noreply@anthropic.com>
Signed-off-by: abhishekt-hydra <abhishek@hydradb.com>
@abhishekt-hydra

Copy link
Copy Markdown
Contributor

@greptile review please.

@abhishekt-hydra

Copy link
Copy Markdown
Contributor

@greptile-apps review please

Signed-off-by: abhishekt-hydra <abhishek@hydradb.com>
@abhishekt-hydra
abhishekt-hydra merged commit 38d21be into main Nov 11, 2026
7 checks passed
@abhishekt-hydra
abhishekt-hydra deleted the claude/sleepy-brown-2j41wi branch November 11, 2026 17:11

This branch was successfully deployed

1 active deployment
staging — 2b3da948 Deployed Nov 11, 2026 by mintlify[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants