Skip to content

[NA] [DOCS] docs: remove the v1 documentation version - #7946

Open
jverre wants to merge 4 commits into
mainfrom
jacques/NA-remove-v1-docs
Open

[NA] [DOCS] docs: remove the v1 documentation version#7946
jverre wants to merge 4 commits into
mainfrom
jacques/NA-remove-v1-docs

Conversation

@jverre

@jverre jverre commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

Details

Serve only the Opik 2 docs. The v1 content surface (fern/docs/, 326 MDX files), both version YAML files and the never-wired v1_noindex.js are removed, and docs.yml now carries tabs:/navigation: directly instead of a versions: list. The risk in a change like this is SEO, so every published v1 URL is mapped onto its Opik 2 equivalent rather than left to 404.

  • Mapping method. Each v1 page already declared a canonical-url in its frontmatter, so those curated targets are the base. Where a page-level equivalent exists the map prefers it over a section-level canonical (all 36 /agent_optimization/* pages keep their tail under /development/optimization-runs/*). Two stale canonicals were corrected by hand. All 258 published v1 pages are mapped; none falls back to a generic target that a real page could serve.
  • Redirects go from 171 to 281 entries. 57 for /v1/... and /latest/...; 53 for the unversioned Opik 1 paths; 7 existing entries repointed because they pointed at pages that 404 today (/playground, /library/prompt_management, /cookbook/quickstart_notebook, /tracing/debug_mode and friends). The bare /v1 and /latest prefixes need their own entries — Fern does not substitute an empty :slug* match into the destination, so they would otherwise resolve to the literal text /docs/opik/:slug*.
  • Content preserved. changelog/2026-08-17.mdx existed only in v1 and is ported to docs-v2/. Without it that entry and its URL would be lost.
  • Link hygiene. 22 docs-v2 changelog pages carried /v1/ links from when they were copied over, and the READMEs linked both /v1/ and pre-2.0 paths. All now name the Opik 2 page directly, so no reader takes a redirect hop.
  • Generators repointed. generate_fern_docs.py wrote the optimizer API reference only into the v1 tree; it now regenerates the Opik 2 page, and the project-scoping <Note> that page carries moved into the template so a run cannot delete it. The cookbook banner matches the Opik 2 optimizer notebook slug again, restoring its Colab button. update_cookbooks.sh only ever generated pages into the v1 tree, so it goes too — the Opik 2 cookbook pages are maintained by hand.

Reviewer notes, called out because they are judgement calls rather than mechanical edits:

  • The 53 redirects for unversioned Opik 1 paths (for example /docs/opik/tracing/log_traces) are adjacent scope. Those URLs 404 today, before this PR, and are probably the most-linked Opik URLs on the web. The map was already built, so the fix was mechanical. Happy to drop that block if you would rather keep this PR strictly to the /v1/ removal.
  • 21 v1 pages have no true Opik 2 equivalent and redirect to the nearest topic page: the 14 Opik University pages, roadmap, testing/pytest_integration, prompt_engineering/improve, evaluation/evaluate_multimodal, evaluation/evaluate_prompt, evaluation/update_existing_experiment and the quickstart_notebook cookbook. If any of that content should exist in Opik 2, it is a follow-up.
  • Touching generate_fern_docs.py brings it under the mypy — optimizer hook for the first time and the commit was rejected. The failure is pre-existing: the unmodified file at HEAD produces the identical two errors, and so does every sibling script in sdks/opik_optimizer/scripts/ that imports opik_optimizer, because the hook environment does not install that package. Per the repo policy (fix in place, else inline with a reason, never a global config ignore) the two imports carry an inline # type: ignore[import-not-found] with that reason. The root cause — mypy cannot resolve opik_optimizer for anything under scripts/ — deserves its own ticket.

Change checklist

  • User facing
  • Documentation update

Issues

No tracking ticket or GitHub issue — requested directly, hence the [NA] key.

AI-WATERMARK

AI-WATERMARK: yes

  • Tools: Claude Code
  • Model(s): Claude Opus 5
  • Scope: Built the v1 to Opik 2 URL map from each page's canonical-url, generated the docs.yml redirect entries, inlined the navigation, deleted the v1 tree, rewrote the stale /v1/ links, repointed the generators, and ran the verification below.
  • Human verification: Author directed the change and reviewed the reported mapping decisions and verification results in conversation. Diff review pending before merge; the mapping choices for the 21 pages with no Opik 2 equivalent are the ones worth a second pair of eyes.

Testing

Environment: local, docs preview from a git worktree on this branch.

Static checks:

cd apps/opik-documentation/documentation && npm install && ./node_modules/.bin/fern check

0 errors. The 4 warnings are pre-existing (accent-colour contrast, the POSTHOG_API_HOST placeholder) plus the missing-redirects rule, which skips without an authorized call to Fern (FDR returns 403) — the sweeps below cover that gap instead.

Redirect coverage, offline: modelled Fern's matcher (first match wins, :slug and :slug*) over 982 URLs — the full published sitemap (714), all 258 v1 URLs, every unversioned Opik 1 path, and /latest/....

  • 0 URLs would 404
  • 0 redirect chains (no destination is itself a matching source)
  • 0 self-loops
  • every non-wildcard destination resolves to a real page in the new navigation

Redirect coverage, live against fern docs dev: requested 381 URLs (all 258 v1 URLs, all changed unversioned paths, every bare section root, /latest/..., plus sampled generated REST API and changelog URLs).

  • 381/381 return 200 after following redirects
  • 363 of the 365 with a recorded expectation land exactly on the intended page. The other two are correct: /agent_optimization/quickstart_notebook lands on optimizer_introduction_cookbook (a pre-existing redirect, and both slugs render the same MDX file), and /v1/reference/rest-api lands on /reference/rest-api/overview via Fern's own section-root resolution.

Internal links: checked every root-relative link in docs-v2. The only two failures are pre-existing /tracing/integrations/langchain links in integrations/langserve.mdx, which resolve through an existing redirect and are untouched here.

Hooks: pre-commit passes on the changed files, including mypy — optimizer, ruff, actionlint and zizmor. scripts/precommit-detect-hooks.py confirms CI routes generate_fern_docs.py to the mypy leg, which is why that hook had to go green rather than be skipped.

Not run: no automated docs test suite exists for this module, and the missing-redirects rule cannot run locally without Fern credentials. Worth re-checking that rule on the deploy preview, since it compares against the published site.

Documentation

This PR is the documentation change. Alongside the content removal it updates the docs-about-docs so contributors and agents stop being pointed at the deleted tree: the write-docs, documentation and opik-integrations skills, CONTRIBUTING.md, apps/opik-documentation/AGENTS.md, the templates README, the Python SDK README, the Sphinx metrics index, and the published contributing/guides/documentation.mdx page. A repo-wide scan confirms no remaining references to fern/docs/, fern/versions/*.yml or update_cookbooks.sh.

🤖 Generated with Claude Code

jverre and others added 2 commits August 21, 2026 11:12
Serve only the Opik 2 docs. The v1 content surface, the version YAML files
and the dead v1_noindex.js are gone, and docs.yml now carries the navigation
directly instead of a versions list.

Every published v1 URL is mapped onto its Opik 2 equivalent, using the
canonical-url each v1 page already declared, with page-level targets where a
matching page exists. The unversioned Opik 1 paths get the same treatment
because they return 404 today, and seven existing redirects that pointed at
those dead paths are repointed at their final pages.

update_cookbooks.sh only ever generated pages into the v1 tree, so it goes
too; the Opik 2 cookbook pages are maintained by hand.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The changelog pages carried /v1/ links from when they were copied over, and
the READMEs linked both /v1/ paths and pre-2.0 paths. Both now name the Opik 2
page directly, so no reader takes a redirect hop.

Two generators wrote into the removed v1 tree. The optimizer API reference now
regenerates the Opik 2 page, and the template keeps the project-scoping note
that page carries, so a run no longer deletes it. The cookbook banner matches
the Opik 2 optimizer notebook slug, which restores its Colab button.

Touching generate_fern_docs.py brings it under the optimizer mypy hook for the
first time. The hook environment does not install opik_optimizer, so the two
imports of it carry an inline ignore with that reason.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@jverre
jverre requested review from a team as code owners August 21, 2026 10:45
@github-actions github-actions Bot added documentation Improvements or additions to documentation python Pull requests that update Python code Infrastructure Python SDK Optimizer SDK 🔴 size/XL labels Aug 21, 2026
@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

⏱️ pre-commit per-hook timing

Hook Description Result Duration
🤖 mypy — optimizer Static type check 1.21s
🐍 mypy — python sdk Static type check 0.95s
⚙️ actionlint — github workflows Lint GitHub Actions workflows 0.87s
🧹 vulture — optimizer Find dead code 0.85s
🔤 codespell — optimizer Fix common misspellings 0.08s
🤖 check for case conflicts — optimizer Block case-only name clashes 0.06s
🤖 pyupgrade — optimizer Modernize Python syntax 0.06s
🌈 zizmor — github workflows security Security-scan GitHub Actions workflows 0.05s
🤖 check for added large files — optimizer Block large files (>1MB) 0.04s
🐍 fix end of files — python sdk Ensure files end in a newline 0.04s
🐍 trim trailing whitespace — python sdk Strip trailing whitespace 0.04s
🤖 check for merge conflicts — optimizer Block merge-conflict markers 0.03s
🤖 trim trailing whitespace — optimizer Strip trailing whitespace 0.03s
🔐 detect private key — optimizer Block committed private keys 0.02s
🤖 fix end of files — optimizer Ensure files end in a newline 0.02s
🤖 ruff-format — optimizer Format Python code (ruff) 0.01s
🐍 ruff-format — python sdk Format Python code (ruff) 0.01s
🤖 ruff — optimizer Lint + autofix Python (ruff) 0.01s
🐍 ruff — python sdk Lint + autofix Python (ruff) 0.01s
Total (19 ran) 4.39s
⏭️ 24 skipped (no matching files changed)
Hook Description Result
🤖 check yaml — optimizer Validate YAML syntax ⏭️
🤖 check json — optimizer Validate JSON syntax ⏭️
🤖 check toml — optimizer Validate TOML syntax ⏭️
📓 nbstripout — optimizer notebooks Strip notebook output ⏭️
📝 markdownlint — optimizer Lint Markdown ⏭️
📊 radon cc — optimizer Cyclomatic-complexity gate ⏭️
📊 radon raw — optimizer Raw size metrics gate ⏭️
📊 xenon — optimizer Fail on complexity thresholds ⏭️
📊 lizard — optimizer Cyclomatic-complexity gate ⏭️
🛡️ trim trailing whitespace — guardrails Strip trailing whitespace ⏭️
🛡️ fix end of files — guardrails Ensure files end in a newline ⏭️
🛡️ ruff — guardrails Lint + autofix Python (ruff) ⏭️
🛡️ ruff-format — guardrails Format Python code (ruff) ⏭️
🛡️ mypy — guardrails Static type check ⏭️
⚓ helm-docs Regenerate Helm chart README ⏭️
block non-public FE plugins Block non-public FE plugins ⏭️
☕ spotless — java backend Format Java code ⏭️
🧪 pre-commit wrapper smoke tests Self-test the wrapper scripts ⏭️
🧪 rebaseline script tests Self-test the changelog re-baseline script ⏭️
🌐 eslint — frontend Lint + autofix JS/TS ⏭️
🌐 typecheck — frontend Whole-project tsc type check ⏭️
📘 eslint — typescript sdk Lint + autofix JS/TS ⏭️
📘 typecheck — typescript sdk Whole-project tsc type check ⏭️
🐳 hadolint — dockerfiles Lint Dockerfiles ⏭️

@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

🌿 Preview your docs: https://opik-preview-01a02510-799b-72d5-9fd8-ccf5b86230e1.docs.buildwithfern.com/docs/opik

No broken links found

Unverified links (timeout / rate-limited / server error — not failing the check)

https://aistudio.google.com/apikey (401)
↳ on page: /docs/opik/administration/workspace-settings/ai_providers
https://console.cloud.google.com/iam-admin/iam (401)
↳ on page: /docs/opik/administration/workspace-settings/ai_providers
https://console.cloud.google.com/iam-admin/roles (401)
↳ on page: /docs/opik/administration/workspace-settings/ai_providers
https://console.cloud.google.com/iam-admin/serviceaccounts (401)
↳ on page: /docs/opik/administration/workspace-settings/ai_providers
https://console.mistral.ai/api-keys/ (timeout)
↳ on page: /docs/opik/integrations/mistral
https://console.x.ai/ (403)
↳ on page: /docs/opik/integrations/xai-grok
https://docs.predibase.com/integrations/comet (403)
↳ on page: /docs/opik/integrations/predibase
https://portal.azure.com/ (403)
↳ on page: /docs/opik/administration/workspace-settings/ai_providers
https://x.ai/ (403)
↳ on page: /docs/opik/integrations/xai-grok


📌 Results for commit b9161d0

@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Python SDK Unit Tests Results (Python 3.14)

4 460 tests  ±0   4 458 ✅ ±0   1m 56s ⏱️ ±0s
    1 suites ±0       2 💤 ±0 
    1 files   ±0       0 ❌ ±0 

Results for commit fb14b5b. ± Comparison against base commit 4537964.

This pull request removes 1 and adds 1 tests. Note that renamed tests count towards both.
tests.unit.test_id_helpers ‑ test_is_valid_uuid_v7__non_v7_uuid__returns_false[477faa27-185a-4db6-ae71-794ad80ed42f]
tests.unit.test_id_helpers ‑ test_is_valid_uuid_v7__non_v7_uuid__returns_false[63cd5aed-ac8e-4e30-adf2-e9392a393227]

♻️ This comment has been updated with latest results.

Comment on lines +319 to +322
- page: Optimizer introduction
icon: fa-regular fa-book
path: ./docs-v2/development/optimization-runs/quickstart_notebook.mdx
slug: optimizer_introduction_cookbook

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicate optimizer notebook navigation entry

The new Cookbooks & Tutorials registration points Optimizer introduction to the same quickstart_notebook.mdx as Quickstart notebook, so two routes expose one page as separate tutorials — should we keep one canonical registration, redirecting any legacy slug, or add a distinct MDX source?

Severity

Want Baz to fix this for you? Activate Fixer

Comment on lines +1652 to +1654
- source: "/docs/opik/v1/agent_optimization/:slug*"
destination: "/docs/opik/development/optimization-runs/:slug*"
permanent: true

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Published optimizer URLs resolve to 404s

The /v1/agent_optimization/:slug* wildcard carries obsolete suffixes into /development/optimization-runs/, so renamed v1 pages resolve to nonexistent Opik 2 URLs while the explicit redirects cover only unversioned paths — should we add /v1/agent_optimization exceptions before the wildcard, mirroring the canonical mappings?

Severity

Want Baz to fix this for you? Activate Fixer

Other fix methods

Fix in Cursor

Prompt for AI Agents
Before applying, verify this suggestion against the current code. In
apps/opik-documentation/documentation/fern/docs.yml around lines 1652-1654, the
`/v1/agent_optimization/:slug*` wildcard preserves obsolete suffixes that have no
corresponding Opik 2 pages. Add explicit `/v1/agent_optimization` redirect exceptions
for the renamed or moved optimizer pages (including `opik_optimizer/quickstart`,
`opik_optimizer/models`, `best_practices/prompt_engineering`, and
`algorithms/hierarchical_reflective_optimizer`) before the wildcard, mirroring the
canonical mappings used by the existing unversioned redirects. Keep the wildcard only as
the fallback for suffixes that genuinely remain valid.

Comment on lines +491 to +495
/ "docs-v2"
/ "development"
/ "optimization-runs"
/ "advanced"
/ "api_reference.mdx"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generated API page violates frontmatter contract

The --write template emits title and subtitle but not headline, so fern check passes while each regeneration leaves the active docs-v2 api_reference.mdx noncompliant with .agents/skills/write-docs/SKILL.md — should we add headline to the template and align the checked-in generated page?

Severity web_search

Want Baz to fix this for you? Activate Fixer You can also update your AI coding guidelines based on this comment by apply pr to [branch name]

Other fix methods

Fix in Cursor

Prompt for AI Agents
Before applying, verify this suggestion against the current code. In
sdks/opik_optimizer/scripts/generate_fern_docs.py around lines 491-495, update the
`main` generation flow and its static MDX template so the frontmatter includes both
`title` and the required `headline` field. Ensure the checked-in
`apps/opik-documentation/documentation/fern/docs-v2/development/optimization-runs/advanced/api_reference.mdx`
is regenerated or updated to match, preserving the active docs-v2 target.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commit fb14b5b addressed this comment by adding the required headline field to both the generation template and the checked-in docs-v2 API page.

Comment on lines 50 to 55
### 3. Make Your Changes
Update content primarily in:
- `fern/docs/`: Main markdown content (like this page).
- `/docs/cookbook`: Our collection of cookbooks and examples - Please note that you should not be updating the `cookbook` markdown files directly as they are generated from the Jupyter Notebook.
- `fern/docs-v2/`: Main markdown content (like this page).
- `/docs/cookbook`: Our collection of source Jupyter Notebooks for the cookbook pages.

Refer to the `docs.yml` file for the overall structure and navigation.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Notebook edits leave published cookbooks stale

Notebook-only changes to /docs/cookbook never reach the published cookbook because Fern publishes separate fern/docs-v2/**/*.mdx pages such as evaluation/evaluate_hallucination_metric.mdx, while the notebook workflow only runs tests — should we document manual MDX synchronization or add a supported conversion step?

Severity

Want Baz to fix this for you? Activate Fixer

Other fix methods

Fix in Cursor

Prompt for AI Agents
Before applying, verify this suggestion against the current code. In
`apps/opik-documentation/documentation/fern/docs-v2/contributing/guides/documentation.mdx`
around lines 50-55, revise the “Make Your Changes” guidance so it does not imply
that updating `/docs/cookbook` alone publishes cookbook documentation. Explain that
notebooks are the source for cookbook examples/tests, while the corresponding
`fern/docs-v2/**/*.mdx` page must also be updated manually and kept synchronized, or
document a supported notebook-to-MDX conversion step if one exists.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commit fb14b5b addressed this comment by documenting that notebook changes are not converted automatically and requiring the matching MDX page to be updated in the same PR.

- Introduced a `Opik.search_spans` method to search for spans in a project. See the [Search spans](/v1/tracing/export_data#exporting-spans) guide for more details.
- Released a new integration with [AWS Bedrock](/v1/integrations/bedrock) for using Opik with Bedrock models.
- Introduced the `Prompt` object in the SDK to manage prompts stored in the library. See the [Prompt Management](/development/prompt-library/getting-started) guide for more details.
- Introduced a `Opik.search_spans` method to search for spans in a project. See the [Search spans](/tracing/advanced/export-data#exporting-spans) guide for more details.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grammatical error in SDK changelog

The article a before Opik.search_spans is grammatically incorrect; should we use “an Opik.search_spans method” or “the new Opik.search_spans method”?

Severity

Want Baz to fix this for you? Activate Fixer

Other fix methods

Fix in Cursor

Prompt for AI Agents
Before applying, verify this suggestion against the current code. In
`apps/opik-documentation/documentation/fern/docs-v2/changelog/2024-11-04.mdx` around
lines 11-11, fix the SDK changelog sentence describing `Opik.search_spans`. Change the
article before the method name from “a” to “an” so it reads “an
`Opik.search_spans` method,” without altering the rest of the entry.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commit fb14b5b addressed this comment by changing “a” to “an” before Opik.search_spans in the changelog entry.

</Frame>

Links to official docs: [Evaluating traces with images](/v1/production/rules#evaluating-traces-with-images) and [Using images in the Plaground](/v1/prompt_engineering/playground#using-images-in-the-playground)
Links to official docs: [Evaluating traces with images](/production/online-evaluation/rules#evaluating-traces-with-images) and [Using images in the Plaground](/development/prompt-playground#using-images-in-the-playground)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The link label says "Plaground" instead of "Playground" — should we fix the typo?

Severity

Want Baz to fix this for you? Activate Fixer

Other fix methods

Fix in Cursor

Prompt for AI Agents
Before applying, verify this suggestion against the current code. In
apps/opik-documentation/documentation/fern/docs-v2/changelog/2025-10-21.mdx around line
37, correct the "Using images in the Plaground" link label so "Plaground" is spelled
"Playground." Keep the existing destination URL and surrounding changelog content
unchanged.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commit fb14b5b addressed this comment by correcting “Plaground” to “Playground” in the link label.

…history

Review flagged the agent_optimization wildcard, and probing production proved
it right in a way the comment did not describe. Obsolete unversioned optimizer
paths resolve today through Fern's own moved-slug history rather than docs.yml:
/agent_optimization/opik_optimizer/models reaches
/development/optimization-runs/optimization/configure_models, and six siblings
behave the same way. A wildcard on that prefix matches them first and carries
the obsolete suffix across, turning each working redirect into a 404.

The unversioned block is now explicit sources only, no wildcards, generated
from the same map: 84 entries, each one a path that returns 404 on production
today. Anything not listed keeps the behaviour it has now. The /v1/ wildcards
stay, since every obsolete /v1/ path already 404s and the wildcard covers the
36 real pages.

Also from review: the generated optimizer API reference gained the headline
frontmatter field the docs convention requires, the contributing guide no
longer implies notebook edits publish themselves now that nothing converts
them, and two typos on changelog lines this branch already rewrote are fixed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Introduced a `Opik.search_spans` method to search for spans in a project. See the [Search spans](/v1/tracing/export_data#exporting-spans) guide for more details.
- Released a new integration with [AWS Bedrock](/v1/integrations/bedrock) for using Opik with Bedrock models.
- Introduced the `Prompt` object in the SDK to manage prompts stored in the library. See the [Prompt Management](/development/prompt-library/getting-started) guide for more details.
- Introduced an `Opik.search_spans` method to search for spans in a project. See the [Search spans](/tracing/advanced/export-data#exporting-spans) guide for more details.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Search spans deep link misses section

The changelog link uses /tracing/advanced/export-data#exporting-spans, but the destination only emits #spans, so Fern opens the page top instead of the spans section — should we change the fragment to #spans or add an explicit exporting-spans anchor?

Severity

Want Baz to fix this for you? Activate Fixer

Other fix methods

Fix in Cursor

Prompt for AI Agents
Before applying, verify this suggestion against the current code. In
`apps/opik-documentation/documentation/fern/docs-v2/changelog/2024-11-04.mdx` around
line 11, fix the Search spans changelog link so its URL fragment matches the destination
page’s existing `Spans` heading. Replace the invalid `#exporting-spans` fragment with
`#spans` so readers are taken directly to the relevant section.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commit 0919ac4 addressed this comment by changing the link fragment from #exporting-spans to #spans, matching the destination heading.

</Frame>

Links to official docs: [Evaluating traces with images](/v1/production/rules#evaluating-traces-with-images) and [Using images in the Plaground](/v1/prompt_engineering/playground#using-images-in-the-playground)
Links to official docs: [Evaluating traces with images](/production/online-evaluation/rules#evaluating-traces-with-images) and [Using images in the Playground](/development/prompt-playground#using-images-in-the-playground)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Playground image deep link fails

The release note links to /development/prompt-playground#using-images-in-the-playground, but prompt_engineering/playground.mdx has no matching anchor or image-support section, so the published link opens the general Playground page instead of image guidance — should we add that section/anchor or retarget the link?

Severity

Want Baz to fix this for you? Activate Fixer

Other fix methods

Fix in Cursor

Prompt for AI Agents
Before applying, verify this suggestion against the current code. In
`apps/opik-documentation/documentation/fern/docs-v2/changelog/2025-10-21.mdx` around
lines 37-37, fix the Playground image documentation link because its fragment does not
exist on the routed v2 page. Add a `using-images-in-the-playground` section and matching
anchor with the relevant image-usage instructions to
`prompt_engineering/playground.mdx`; if those instructions belong elsewhere, instead
update this link to an existing v2 page and valid fragment that specifically documents
Playground image support.

Rewriting the /v1/ links kept each fragment, but six of those sections no
longer exist under the Opik 2 headings, so the links opened the page top
instead of the section. Two were flagged in review; a sweep of every
root-relative fragment in docs-v2 found the other four.

Renamed sections now point at the real anchor (#spans,
#using-configuration-files) or the nearest section that carries the content.
Where Opik 2 dropped the material entirely — image support in the playground,
the JS/TS section of the log-traces page — the fragment is gone and the link
opens the page.

The sweep also showed Fern slugifies heading anchors GitHub style, dropping
punctuation rather than replacing it, which is why #trainvalidation-splits and
#using-comet-debugger-mode-uibrowser are correct as they stand.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation Infrastructure Optimizer SDK Python SDK python Pull requests that update Python code 🔴 size/XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant