Commit Graph

161 Commits

Author SHA1 Message Date
Lauren Hirata Singh 5b4af66dff Split llms.txt and llms-full.txt into nested, right-sized corpora (#5514)
## Why

Follow-up to #5504. The custom `llms.txt` that PR added was 286,685
characters, which fails the AFDocs `llms-txt-size` check. This is my
regression: I chose a single large file because I could not verify at
the time whether the checker followed nested indexes. It does — the
check output and the AFDocs reference both specify the nested shape.

## LLMS TXT Size — fail → pass

**Authoritative thresholds** (from the [AFDocs check
reference](https://afdocs.dev/checks/content-discoverability)):

| Result | Condition |
|---|---|
| Pass | Under **50,000** characters |
| Warn | 50,000–100,000 |
| Fail | Over 100,000 |

Note the pass bar is 50 K, not 100 K.

**Size is not the only cost.** An oversized index triggers the AFDocs
[index truncation
coefficient](https://afdocs.dev/agent-score-calculation#index-truncation-coefficient),
which discounts `llms-txt-valid`, `llms-txt-links-resolve`,
`llms-txt-links-markdown`, and `llms-txt-coverage` in proportion to the
visible fraction. At 286,685 characters that is roughly **0.35** — four
*passing* checks were contributing about a third of their weight. Fixing
size restores them to 1.0, so this is worth more than the single failing
check.

### What changed

`_generate_llms_txt` in `pipeline/core/builder.py` now emits a root
index plus section indexes.

Root: **16,449 characters** (was 286,685), listing 9 section indexes and
the 117 pages belonging to no large section.

| File | chars | entries |
|---|---:|---:|
| `/llms.txt` (root) | 16,449 | 117 inline + 9 section links |
| `/oss/python/llms.txt` | 39,983 | 236 |
| `/oss/python/llms-2.txt` | 40,101 | 255 |
| `/oss/python/llms-3.txt` | 5,310 | 47 |
| `/oss/javascript/llms.txt` | 39,957 | 236 |
| `/oss/javascript/llms-2.txt` | 15,778 | 121 |
| `/langsmith/llms.txt` | 39,999 | 271 |
| `/langsmith/llms-2.txt` | 30,851 | 219 |
| `/langsmith/smith-api/llms.txt` | 40,018 | 369 |
| `/langsmith/smith-api/llms-2.txt` | 20,214 | 167 |

Section files target 40 K rather than 50 K so they do not drift over the
threshold as pages are added between splits.

### Three constraints this is built around

- **Coverage must not regress.** AFDocs's coverage walker descends
*exactly one level* into linked `.txt` files, and treats `.txt` files
found at that depth as "omitted subtrees" whose pages leave the coverage
denominator. Every section index is therefore one hop from the root and
contains **zero** further `.txt` links, so all 2,038 pages stay directly
verified. Coverage is currently ~100% and stays there.
- **Link sampling must still see pages.** A root containing only `.txt`
links could starve `llms-txt-links-markdown` and
`llms-txt-links-resolve`. The root keeps 117 real `.md` links (the small
sections, inlined rather than split out) so both checks sample real
pages from the canonical file.
- **Section paths are derived, not hardcoded.** Each section's directory
comes from the deepest directory shared by its pages. An earlier
hardcoded map would have inlined the 60 K OpenAPI group into the root,
defeating the split.

### Verification

- 2,038 `.md` entries across root and sections, **0 duplicates, 0 pages
lost**
- Every file under 50,000 characters
- 0 nested `.txt` links inside section files
- 207 tests pass (1 new, covering root size, one-hop depth, no deeper
nesting, and exact page conservation)
- `make lint` clean, `make broken-links` clean

## Also in this PR

### LLMS Full Size — split into per-language corpora

The combined corpus was 15,050,368 characters. Roughly half was the
Python and TypeScript renders of the same documentation, so the build
now emits three corpora, with the root pointing at the other two:

| File | chars |
|---|---:|
| `/llms-full.txt` | 6,246,717 |
| `/oss/python/llms-full.txt` | 6,801,843 |
| `/oss/javascript/llms-full.txt` | 4,655,598 |

Root is **down 58.5%** from what the check currently sees.

**This requires expanding snippets ourselves.** Mintlify expands snippet
imports at render, so a corpus assembled from the raw build tree would
silently lose content from the 308 pages that import one. Verified page
by page against the published corpus: expansion lands 8–10% *under*
Mintlify's for snippet-heavy pages (`deepagents/customization` 139,256
vs 152,958; `langchain/agents` 64,279 vs 67,990), and only 7 of 1,525
shared pages come out more than 30% larger — all pages that have
genuinely grown since that snapshot.

The combined total exceeds Mintlify's because this covers every built
page (2,038) rather than only the sitemap subset (1,586). The extra
pages are integration pages that are reachable but not in navigation,
which `llms.txt` already indexes; excluding them here would make the two
files disagree about what exists.

Both custom files open with the site title as an H1, which Mintlify
requires of a custom `llms.txt` or `llms-full.txt` and which `LLMS Full
Valid` checks.

**Two caveats worth weighing at review.** This replaces a
Mintlify-maintained, auto-updating artifact with a generator in this
repo, so snippet-expansion correctness is now our problem. And the
expected range is still undocumented by both AFDocs and Mintlify — 6.2
MB is a large reduction, but whether it clears the bar is unverified
until this deploys.

### Correction to #5504

That PR's description claims the base64 removal roughly halved
`llms-full.txt`. **That was inferred, not measured, and it is wrong** —
the live file contains zero base64 and is unchanged in size, so Mintlify
never included data URIs there. The base64 work was still worth doing:
it cut the served `google_imagen` page from 6.69 MB to 7.6 KB, confirmed
live. I have not edited the merged PR body; say the word and I will.

### Markdown Content Parity — warning, no change recommended

Not a content defect. Regular pages differ by 0.7–3.9%, all UI chrome
("skip to main content", "was this page helpful"). The only substantial
gaps are OpenAPI pages, where the **markdown is richer than the HTML**
(175 words vs 55) because the html-only tokens are interactive
API-playground widgets with no markdown equivalent. Per the check's own
guidance, set `--parity-pass-threshold` and `--parity-warn-threshold` to
`0` for informational mode. Trimming markdown to match HTML would make
things worse for agents.

### Content Structure and Authentication — skipped, not failures

Both score 100. `Tabbed Content Serialization` is skipped because no
tabbed content was found in the sample; `Auth Alternative Access`
because all pages are public. Nothing to fix.

## Keeping it correct

Generating our own indexes removes the staleness problem outright. They
rebuild from source on every `make build`, `build/` is gitignored so
nothing can rot in the tree, `publish.yml` builds before deploying, and
new pages are picked up by walking the build tree with no registration
step. That is strictly fresher than what it replaces: Mintlify's
`llms-full.txt` was serving with `age: 25126` against a 24-hour cache
and did not contain pages that were already live.

What it does introduce is **correctness drift**, which nothing would
have noticed. Two guards for the two ways it can happen.

**Build-time validation** (`_validate_llms_indexes`) fails the build
when the emitted files break an invariant agents depend on:

- root `llms.txt` over 50,000 characters
- any section index over the same threshold
- a section index linking to further `.txt` files, which would push
those pages out of the coverage denominator
- a page listed in two indexes, or a page count that disagrees with what
was built

This runs wherever `make build` runs, so CI already covers it through
the link-checking job. Five unit tests exercise each failure mode — a
validator that cannot fail is not a guard.

**A weekly workflow** (`.github/workflows/check-llms-urls.yml`) covers
what no local check can. The API reference URLs are derived by
reproducing Mintlify's slug rules, which is not a published contract,
and a change on their side only surfaces against the deployed site.
`scripts/check_llms_urls.py` samples those URLs, reports any that stop
resolving, and names the two functions to fix. This is the guard that
would have caught the 47 fabricated URLs in #5504.

Worth noting: running the checker before shipping it caught a flaw in
the checker itself. Concurrent HEAD requests reported two healthy pages
as broken, so it now retries and falls back to GET. It is stable across
repeated runs at different seeds.

## Review notes

The one thing I could not verify locally is that Mintlify serves nested
`.txt` files from the build directory. Strong indirect evidence:
`/langsmith/langsmith-platform-openapi.json` returns 200 today, so
nested static assets are served, and nested `llms.txt` paths are not on
Mintlify's reserved-path list. **Worth confirming after deploy** that
`https://docs.langchain.com/oss/python/llms.txt` returns 200 — if it
does not, coverage would fall back to the root's 117 links and the split
should be reverted.

## AI disclosure

Authored with Claude Code (Claude Opus 5). Thresholds were read from the
AFDocs published check reference rather than assumed, and page
conservation was verified programmatically across all ten generated
files.

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-14 11:55:08 -07:00
Lauren Hirata Singh 392db4cdf8 docs: give Cursor and Copilot the full prose style guide (#5473)
## Why

`.cursorrules` and `.github/copilot-instructions.md` were
hand-maintained subsets of `CLAUDE.md`. Comparing headings, the subsets
dropped 26 of them, including the whole style guide and the structure
conventions:

```console
$ diff <(grep -E "^#{2,3} " CLAUDE.md) <(grep -E "^#{2,3} " .cursorrules) | grep '^<'
< ## Style guide
< ### Structure conventions
< ### Model references
< ### Release stage names
< ### Product and feature name capitalization
< ## Components
< ## Mermaid diagram styling
...
```

So a contributor on Cursor or Copilot got the repository layout and none
of the rules about how the prose should read.

They are also stale. Both last changed **2026-05-13**; `CLAUDE.md` last
changed **2026-07-22**. The product and feature name capitalization rule
added in #5036 never reached either file.

## What changed

Rather than copying all 398 lines into every file, the style guide is
mirrored into two path-scoped rule files, which is each tool's native
way to attach rules to file patterns:

| File | Scoping | Loads when |
|------|---------|-----------|
| `.cursor/rules/docs-style.mdc` | `globs: src/**/*.mdx` | Editing a
page under `src/` |
| `.github/instructions/docs-style.instructions.md` | `applyTo:
"src/**/*.mdx"` | Editing a page under `src/` |

Both bodies are byte-identical to lines 219 to 309 of `CLAUDE.md`,
verified with `diff`. The scoping matches 2,275 MDX files under `src/`.

`.cursorrules` and `copilot-instructions.md` are trimmed to what applies
to every task: critical rules, repository structure, quick reference,
frontmatter, syntax, and a pointer to `AGENTS.md`. Both are 68 lines and
differ only in the line naming their own style rule file.

The sync banner at the top of `CLAUDE.md` and `AGENTS.md` now names all
four derived files and says which sections feed each, so the next style
guide edit updates them in the same PR.

## Removed on purpose

The trimmed files no longer carry a navigation map. The one they had was
wrong: it listed the LangSmith "Configure app" tab and Fleet's "Tools
and integrations" group, neither of which exists now. `AGENTS.md` has
the current map, and the trimmed files point at it. Restating it in four
places is what produced the staleness in the first place.

## Review notes

Two things worth a second opinion:

1. **The cut line.** Only the style guide is path-scoped. Frontmatter,
components, and Mermaid styling rules still live only in `CLAUDE.md` and
`AGENTS.md`, though they are just as relevant when editing an MDX file.
Extending the scoped files to cover them is a reasonable follow-up; it
was left out to keep this reviewable.
2. **Sync is still manual.** The banner tells a human what to update. It
does not enforce anything. A CI drift check would, and is the obvious
next step if this pattern holds.

No page content is touched, so there is nothing to preview.

Drafted with Claude Code.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 13:38:39 -07:00
langsmith-fleet[bot] 731ac206f0 Elevate Claude Managed Agents tracing to a dedicated full tab (#5433)
## Summary

- Adds a new **"Claude Managed Agents"** top-level tab to the Monitor
menu (alongside Overview, Trace, Debug, Observe, Reference)
- Removes `trace-claude-agent-sdk` from the `Agent frameworks` group in
the Trace tab (now promoted to its own tab)
- Updates the page title to "Trace Claude Managed Agents" and adds a
`description` field for SEO
- Enhances page content with Python/TypeScript tabs, a "What gets
traced" reference table, and a Next steps section

## Links

- Slack:
https://langchain.slack.com/archives/C09G1T60QV9/p1786395285958389

## Verification

Not run — docs-only navigation and content change. No code examples were
modified.

## Reviewers

Requested review from: @katmayb, @fjmorris, @lnhsingh, @npentrel

---------

Co-authored-by: Docs Agent <docs-agent@langchain.dev>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: lnhsingh <15386648+lnhsingh@users.noreply.github.com>
Co-authored-by: Lauren Hirata Singh <lauren@langchain.dev>
2026-08-12 10:02:48 -07:00
Naomi Pentrel baeaa04891 update integration label automation (#5314) 2026-08-05 14:31:58 +02:00
Mason Daugherty bbeef0d409 ci: apply integration label to external integration PRs (#5287) 2026-08-04 18:10:17 +02:00
langsmith-fleet[bot] d198c923b0 fix(ci): pass preview source branch through env (#5181) 2026-07-29 13:34:07 +02:00
Naomi Pentrel ee9fe40a64 add vale rule (#5147) 2026-07-28 14:47:33 +02:00
Naomi Pentrel b4a89165c5 curate integrations docs for integrations with less than 50K monthly downloads (#4865) 2026-07-28 14:25:28 +02:00
Lauren Hirata Singh 74b682ac88 docs: [Self-Hosted Changelog Bot] Changelog updates for new version(s) (#5023)
Automated changelog update created by the LangGraph Server Changelog
Bot.

Feel free to merge anytime.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-07-24 12:28:42 -07:00
John Kennedy 0e7fba2d52 ci: harden docs workflow inputs (#4970)
## Summary
- Pin `ctriolo/action-create-linear-issue` to the immutable commit SHA
for `v0.7` so the `LINEAR_API_KEY` is no longer exposed to a mutable
third-party action tag.
- Pass GitHub PR base refs/SHAs and workflow output values through
environment variables before shell use.
- Apply the same base-ref hardening to adjacent docs diff-check
workflows to avoid the same pattern recurring.

## Corridor findings
- Fixes
https://app.corridor.dev/projects/86f45f70-3153-46d0-b0f6-5ec9dba1ace1/findings/eb002ea1-903e-4a2b-94a5-5ebc4b60bab2
- Fixes
https://app.corridor.dev/projects/86f45f70-3153-46d0-b0f6-5ec9dba1ace1/findings/1bbe3c85-75f4-4ece-8c96-cd857c5be291

## Validation
- `ruby -e 'require \"yaml\";
Dir[\"/tmp/docs/.github/workflows/*.yml\"].each { |p| YAML.load_file(p)
}; puts \"parsed workflows\"'`
- `git diff --check`

Co-authored-by: langsmith-fleet[bot] <langsmith-fleet[bot]@users.noreply.github.com>
2026-07-20 09:44:15 -07:00
Naomi Pentrel e6b8860639 fix remaining code samples (#4864) 2026-07-14 08:15:28 +01:00
Naomi Pentrel 5b6d04c524 Enable pull request trigger for code samples workflow (#4804) 2026-07-09 13:41:49 +02:00
KiewanVillatel 8dba3d5a7c chore: run OpenAPI spec sync daily instead of weekly (#4799) 2026-07-09 13:28:56 +02:00
Quentin Brosse c38eb48bfc docs(langsmith): SmithDB SDK migration guide for runs query and retrieve (#4614)
## Summary

Adds an unlisted migration guide at `/langsmith/smithdb-sdk-migration`
for partner customers migrating from v1 SDK methods to SmithDB-backed
equivalents. The page is `noindex: true` and not wired into `docs.json`
nav — accessible via direct URL only.

Each method's content (parameter tables, examples, and their code-sample
imports) lives in its own file under
`src/snippets/langsmith/smithdb-migration/` (e.g. `runs-query.mdx`,
`runs-retrieve.mdx`), included into the main page via Mintlify's
snippet-import pattern. Adding a new method's migration guide only
requires a new snippet file plus one import and one render line in the
main page, so different teams can add methods in parallel without
conflicting.

The code-samples generation and testing pipeline was extended to support
Go and cURL/bash, alongside existing Python/TypeScript/Java/Kotlin
support, so every code sample in this guide is a real, tested source
file rather than hand-authored prose.

---------

Co-authored-by: Kiewan Villatel <kiewan@langchain.dev>
Co-authored-by: Naomi Pentrel <5212232+npentrel@users.noreply.github.com>
2026-07-06 09:40:48 +02:00
Naomi Pentrel 5cd0ed2f3a Disable pull_request trigger in workflow (#4698) 2026-07-02 14:39:54 +02:00
Naomi Pentrel af7b61d5d3 add patience comment to integrations PRs (#4605) 2026-06-24 23:17:32 +02:00
Naomi Pentrel 9c588b3f2a run all tests on workflow dispatch (#4584) 2026-06-23 20:48:54 +02:00
Naomi Pentrel cbe6dd3b41 update code sample test reporting (#4581) 2026-06-23 19:50:22 +02:00
Mason Daugherty dd7c79216d add myself to dcode owners (#4383) 2026-06-10 00:45:11 -04:00
Naomi Pentrel 67c613429e make preview notics more prominent (#4300) 2026-06-04 12:03:47 +02:00
Naomi Pentrel 20d241007f add github action for unresolved merge conflict markers (#4258) 2026-06-02 12:41:24 +02:00
Yacklin Wong a7c1c7f2de fix all wrong default port number of postgres db in long term memory docs and sample code (#3932) 2026-05-28 13:35:21 +02:00
Lauren Hirata Singh 7a8607fe4f add LangSmith API docs to mintlify (#3593)
Fixes DOC-878

```
There are 84 hidden endpoints across these categories:                                         
  ┌─────────────────────────────────┬───────┬───────────────────────────────────┐                
  │            Category             │ Count │            Why hidden             │                
  ├─────────────────────────────────┼───────┼───────────────────────────────────┤                
  │ Fleet (agents, skills, fleet *) │ 72    │ Fleet has its own product/docs    │                
  ├─────────────────────────────────┼───────┼───────────────────────────────────┤                
  │ fleet github-app                │ 11    │ Fleet-specific GitHub integration │                
  ├─────────────────────────────────┼───────┼───────────────────────────────────┤                
  │ beacon                          │ 1     │ Internal usage telemetry          │                
  ├─────────────────────────────────┼───────┼───────────────────────────────────┤                
  │ nps                             │ 1     │ Internal NPS survey               │                
  ├─────────────────────────────────┼───────┼───────────────────────────────────┤                
  │ sandboxes-internal              │ 1     │ Service-to-service only           │                
  ├─────────────────────────────────┼───────┼───────────────────────────────────┤                
  │ metrics                         │ 1     │ Internal queue metrics            │                
  ├─────────────────────────────────┼───────┼───────────────────────────────────┤              
  │ (untagged) — GET /ok            │ 1     │ Health check                      │              
  └─────────────────────────────────┴───────┴───────────────────────────────────┘  
  ```
  
 PREVIEW: https://langchain-5e9cc07a-preview-lsapi-1779323176-451247e.mintlify.app/langsmith/smith-api-ref
2026-05-21 17:40:17 -04:00
Lauren Hirata Singh 5e3521a64c update gh action to assign reviewers to bot PRs (#4112)
adds langsmith-fleet
2026-05-20 21:05:08 -04:00
Lauren Hirata Singh 81ea37f9b8 update gh action for reviews (#4085)
update the gh action to auto-add a reviewer for any PR opened by a bot
2026-05-19 17:21:08 -04:00
Naomi Pentrel ca4ed8df63 make existing snippets testable (#4010) 2026-05-15 11:03:51 +02:00
Naomi Pentrel 7fe4af95b3 remove references to old reference docs (#3972) 2026-05-13 13:58:17 +02:00
open-swe[bot] af35bc1aa6 docs: add Java snippets to manage prompts programmatically [closes DOC-1092] (#3961) 2026-05-12 21:59:50 +02:00
Mason Daugherty 2d448588c3 ci: opt-in auto-request reviewers via OWNERS marker (#3948)
## Description
Extends `.github/workflows/pr-welcome-comment.yml` with an opt-in
`# auto-request[: @user ...]` marker on `.github/OWNERS` rules so the
workflow can call `requestReviewers` for opted-in owners on matching
PRs.

This is needed because the existing welcome comment only tells authors
who owns the touched docs areas. It does not create a GitHub review
request, and the owner handles in that comment are formatted as code, so
they are not reliable mention notifications. The new marker creates an
actual requested reviewer entry while keeping the behavior opt-in per
OWNERS rule.

Wires up `@mdrxy` for `/src/oss/deepagents/cli/`.

## Release Note
none

## Test Plan
- [ ] After merge, open a non-draft PR touching a file under
      `src/oss/deepagents/cli/` from a non-owner account and confirm
      `@mdrxy` is auto-requested as a reviewer, and `@npentrel` is not.
- [ ] Open an unrelated PR, for example touching `src/langsmith/`, and
      confirm no extra reviewers are auto-requested beyond existing
      behavior.
2026-05-11 10:40:23 -07:00
Mason Daugherty 39c9b330c1 fix(ci): treat open-swe bot as internal contributor (#3914)
The `tag-external-contributions` workflow was incorrectly flagging PRs
authored by the `open-swe` bot as external contributions. Hardcode
`open-swe`, `app/open-swe`, and `open-swe[bot]` as internal authors so
the job skips the org-membership API call and labels them correctly.

## Changes
- Add `internalAuthors` `Set` with `open-swe` variants to the
`github-script` step in
`.github/workflows/tag-external-contributions.yml`
- Short-circuit the external-contributor check before the
`org.getMembershipForUser` call when the PR author matches any of the
hardcoded bot identities
2026-05-08 01:56:06 -04:00
open-swe[bot] 92565459e3 feat: add java traceable docs [closes DOC-1050] (#3802) 2026-05-06 20:19:39 +02:00
Lauren Hirata Singh 67e9a12fcf docs: [Self-Hosted Changelog Bot] Changelog updates for new version(s) (#3805)
Automated changelog update created by the LangGraph Server Changelog
Bot.

Feel free to merge anytime.
2026-05-01 15:13:53 -04:00
Lauren Hirata Singh 39a7c46093 Design updates (#3773)
https://langchain.slack.com/archives/C09G1T60QV9/p1776773430522289
2026-04-28 12:41:06 -04:00
Naomi Pentrel 1972ed8c99 add auto sync script for create_deep_agent (#3706) 2026-04-24 12:34:07 +02:00
Naomi Pentrel bf2fa3825b remove polling for previews (#3688) 2026-04-23 10:48:51 +02:00
Lauren Hirata Singh 9dc353dac2 update PR review action (#3655)
https://langchain.slack.com/archives/C0990EP5N0N/p1776788041709699
2026-04-21 13:02:50 -04:00
open-swe[bot] 4567e7d9cd feat: document how to execute skill scripts in a sandbox (#3590) 2026-04-21 15:52:33 +02:00
Naomi Pentrel bbfbe729e2 link to changed page (#3649) 2026-04-21 13:49:47 +02:00
Naomi Pentrel af4fd994ab add automatic preview deployments (#3647) 2026-04-21 13:25:38 +02:00
Mason Daugherty b1987ba6e0 da-cli: --startup-cmd flag (#3641)
Document the new `--startup-cmd` CLI flag from
[deepagents#2841](https://github.com/langchain-ai/deepagents/pull/2841),
which runs a shell command once at session start.
2026-04-20 16:31:44 -04:00
Lauren Hirata Singh ec3b47ecef update gh action (#3574) 2026-04-14 10:51:58 -04:00
Lauren Hirata Singh 482517c6cd Change review flow (#3561)
Auto-assigning Docs team reviewers is really noisy, so we are trying out
this GH action that puts the oneous on the PR author to tag one of us
when they are ready for review.
2026-04-13 16:59:11 -04:00
Lauren Hirata Singh f45036a7b8 Fix Agent Builder naming (#3540) 2026-04-10 16:10:10 -04:00
Naomi Pentrel 7bbb2ed51f fix: use anchor link checking (#3511) 2026-04-10 12:11:38 +02:00
Mason Daugherty c89e25a42b docs: fix PyPI casing (#3383)
Fix the casing of "PyPI" across docs and integration pages. The Python
Package Index spells it "PyPI" (capital P-y-capital-P-capital-I), but
several pages used "PyPi" instead.
2026-03-31 02:17:10 -04:00
Naomi Pentrel 9400910f29 add context engineering conceptual guide (#3263) 2026-03-24 14:17:54 +01:00
Naomi Pentrel 7f8707b7fb create deep research tutorial (#3193) 2026-03-23 19:00:56 +01:00
Naomi Pentrel fb79c64ed1 feat: improve long-term memory docs and discoverability (#2957) 2026-03-18 16:28:59 +01:00
Mason Daugherty a8f3e3c80a ci: cache mintlify cli in check-links workflow (#3174)
Cache the Mintlify CLI global install in the `_check-links` workflow.
The `npm i -g mint@latest` step and its KaTeX patch are slow — caching
the installed binaries and skipping both steps on cache hit saves a
chunk of wall time on every link-check run.

## Changes
- Add an `actions/cache@v4` step keyed on `runner.os`, Node 22, and a
hash of `_check-links.yml` to cache `/usr/local/lib/node_modules/mint`
and `/usr/local/bin/mint`
- Gate the `Install Mintlify CLI` and `Patch KaTeX __VERSION__ bug`
steps behind `steps.cache-mint.outputs.cache-hit != 'true'`
2026-03-17 17:12:40 -04:00
Mason Daugherty c19af5e714 ci: shallow clone in all workflows (#3173)
Add `fetch-depth: 1` to all `actions/checkout@v6` steps across CI
workflows. Full git history isn't needed for any of these jobs — shallow
clones cut checkout time and reduce runner disk/network usage.
2026-03-17 16:49:40 -04:00