Skip to content

docs: add weekly changelog entry (2026-08-31) - #8079

Draft
jverre wants to merge 1 commit into
mainfrom
claude/modest-pascal-oiqf4l
Draft

docs: add weekly changelog entry (2026-08-31)#8079
jverre wants to merge 1 commit into
mainfrom
claude/modest-pascal-oiqf4l

Conversation

@jverre

@jverre jverre commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

Details

Adds the weekly product changelog entry covering releases 2.2.37–2.2.45. Leads with the headless MCP + skill pack setup (opik configure --install-mcp --install-skills, opik mcp configure --ai-client <host>), and consolidates the week's bug fixes, cost/usage accuracy fixes, and performance improvements. The "agentic tools" feature-toggle removal is filed under Bug Fixes since the feature itself was already announced in an earlier changelog entry.

Excluded from this entry after verification against the code:

  • Read-time trace redaction (redaction.enabled) — explicitly beta and off by default in config.yml, not shipped to any users yet.
  • ClickHouse traces-wrap readiness check, cipx_savings_facts table, and the various [OPIK-7315]/cutover commits — internal migration/ops tooling, no user-visible surface.
  • Provider/model pricing data syncs and routine chores/CI-only changes.
  • The google-cloud-vertexai bump for Gemini "thinking" config — only unblocks the dependency; nothing in the codebase wires the new field up yet.

Change checklist

  • User facing
  • Documentation update

Issues

  • Resolves #

AI-WATERMARK

AI-WATERMARK: yes

  • Tools: Claude Code
  • Model(s): Runtime-selected (see session details)
  • Scope: Drafted the full changelog entry text from a review of the last week's commit history on main; verified CLI flag names, feature-flag status, and technical claims directly against the current source before including them.
  • Human verification: Not yet reviewed by a human; opened as a draft for review.

Testing

Documentation-only change (new .mdx file). No code paths affected.

  • Verified the changelog directory is auto-discovered by docs.yml (changelog: ./docs-v2/changelog), so no additional registration was needed.
  • Cross-checked every claim in the entry against the actual diffs/source for the underlying commits (CLI flag names in sdks/python/src/opik/cli/{configure,mcp}.py, the redaction.enabled default in apps/opik-backend/config.yml, the Bedrock cache-token diff, etc.) rather than relying on commit messages alone.
  • Did not run the docs build locally; the file follows the same structure/formatting as the existing weekly entries in the same directory.

Documentation

This PR is the documentation change — new entry at apps/opik-documentation/documentation/fern/docs-v2/changelog/2026-08-31.mdx.


Generated by Claude Code

Covers releases 2.2.37-2.2.45: headless MCP + skill pack setup, and
this week's bug fixes, cost/usage accuracy improvements, and
performance improvements.
@github-actions github-actions Bot added documentation Improvements or additions to documentation 🟢 size/S labels Aug 31, 2026
@github-actions

github-actions Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

📋 PR Linter Failed

Invalid Title Format. Your PR title must include a ticket/issue number and may optionally include component tags ([FE], [BE], etc.).

  • Internal contributors: Open a JIRA ticket and link to it: [OPIK-xxxx] or [CUST-xxxx] or [DND-xxxx] or [DEV-xxxx] [COMPONENT] Your change
  • External contributors: Open a Github Issue and link to it via its number: [issue-xxxx] [COMPONENT] Your change
  • No ticket: Use [NA] [COMPONENT] Your change (Issues section not required)

Example: [issue-3108] [BE] [FE] Fix authentication bug or [OPIK-1234] Fix bug or [NA] Update README


Incomplete Issues Section. You must reference at least one GitHub issue (#xxxx), Jira ticket (OPIK-xxxx), CUST ticket (CUST-xxxx), DEV ticket (DEV-xxxx), or DND ticket (DND-xxxx) under the ## Issues section.

@github-actions

Copy link
Copy Markdown
Contributor

⏱️ pre-commit per-hook timing

No linted files changed — nothing to run.

⏭️ 44 skipped (no matching files changed)
Hook Description Result
🐍 trim trailing whitespace — python sdk Strip trailing whitespace ⏭️
🐍 fix end of files — python sdk Ensure files end in a newline ⏭️
🐍 ruff — python sdk Lint + autofix Python (ruff) ⏭️
🐍 ruff-format — python sdk Format Python code (ruff) ⏭️
🐍 mypy — python sdk Static type check ⏭️
🤖 trim trailing whitespace — optimizer Strip trailing whitespace ⏭️
🤖 fix end of files — optimizer Ensure files end in a newline ⏭️
🤖 check yaml — optimizer Validate YAML syntax ⏭️
🤖 check json — optimizer Validate JSON syntax ⏭️
🤖 check toml — optimizer Validate TOML syntax ⏭️
🤖 check for added large files — optimizer Block large files (>1MB) ⏭️
🔐 detect private key — optimizer Block committed private keys ⏭️
🤖 check for merge conflicts — optimizer Block merge-conflict markers ⏭️
🤖 check for case conflicts — optimizer Block case-only name clashes ⏭️
🤖 pyupgrade — optimizer Modernize Python syntax ⏭️
🤖 ruff — optimizer Lint + autofix Python (ruff) ⏭️
🤖 ruff-format — optimizer Format Python code (ruff) ⏭️
🤖 mypy — optimizer Static type check ⏭️
📓 nbstripout — optimizer notebooks Strip notebook output ⏭️
📝 markdownlint — optimizer Lint Markdown ⏭️
🔤 codespell — optimizer Fix common misspellings ⏭️
📊 radon cc — optimizer Cyclomatic-complexity gate ⏭️
📊 radon raw — optimizer Raw size metrics gate ⏭️
📊 xenon — optimizer Fail on complexity thresholds ⏭️
📊 lizard — optimizer Cyclomatic-complexity gate ⏭️
🧹 vulture — optimizer Find dead code ⏭️
🛡️ 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 ⏭️
⚙️ actionlint — github workflows Lint GitHub Actions workflows ⏭️
🐳 hadolint — dockerfiles Lint Dockerfiles ⏭️
🌈 zizmor — github workflows security Security-scan GitHub Actions workflows ⏭️
🛡️ semgrep — java backend sql Block SQL injection-prone string formatting ⏭️

@github-actions

Copy link
Copy Markdown
Contributor

🌿 Preview your docs: https://opik-preview-01a056e9-64e3-7740-85e1-c8cf5b5dc1db.docs.buildwithfern.com/docs/opik

The following broken links were found:

❌ Broken link: 2.2.36...2.2.45 (404)
↳ on page: /docs/opik/changelog/2026/8/31

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

https://aistudio.google.com/apikey (401)
↳ on page: /docs/opik/development/optimization-runs/optimization/configure_models
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 63e9476

@@ -0,0 +1,37 @@
## MCP + Skill Pack Setup Can Now Run Without a Terminal

Setting up the Opik MCP server previously meant sitting through an interactive wizard, and it only reached three of the AI assistants people actually use. `opik configure --install-mcp` and `opik mcp configure --ai-client <host>` now run non-interactively — pass the client explicitly (or `--ai-client all`) and the command completes on its own, so it can run from a coding agent, a Dockerfile, or CI. Codex and opencode join Claude Code, Cursor, and VS Code Copilot as supported hosts, and every install now ends with a real verification call that reports the workspace and project count instead of assuming the config it just wrote actually works.

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.

Hosted installs falsely promise project counts

The changelog claims every install reports a workspace/project count, but hosted installs use verify_hosted_endpoint only to validate reachability and the expected 401/403 auth challenge, so the count claim is misleading — should we qualify it as local-credential verification and describe hosted verification as endpoint/auth-challenge validation?

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/2026-08-31.mdx` around
line 3, revise the MCP verification description to accurately distinguish the two
installation paths. State that local credential verification calls the projects endpoint
and reports the workspace/project count, while hosted verification only validates
endpoint reachability and the expected authentication challenge; do not claim that
hosted installs report project counts.


Setting up the Opik MCP server previously meant sitting through an interactive wizard, and it only reached three of the AI assistants people actually use. `opik configure --install-mcp` and `opik mcp configure --ai-client <host>` now run non-interactively — pass the client explicitly (or `--ai-client all`) and the command completes on its own, so it can run from a coding agent, a Dockerfile, or CI. Codex and opencode join Claude Code, Cursor, and VS Code Copilot as supported hosts, and every install now ends with a real verification call that reports the workspace and project count instead of assuming the config it just wrote actually works.

A new `--install-skills` flag (and the equivalent `--skills` on `opik mcp configure`) installs the companion Opik skill pack alongside the MCP server — instructions the assistant reads to know how to use the tools the server exposes, rather than just their tool list. The two are asked about separately since they carry different trust implications: the MCP server writes credentials into a config file, the skill pack installs instruction files the assistant executes with its own permissions. The onboarding copy-paste prompt and docs now point at `/opik-instrument` rather than the unnamespaced `/instrument`, avoiding collisions with other skills of the same name.

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.

Unattended skill install hides mutable code source

The trust guidance omits that setup_skills calls fetch from https://codeload.github.com/comet-ml/opik-skills/tar.gz/refs/heads/main, a mutable ref, so unattended runs in CI/Dockerfiles/agents pull whatever's on main at execution time, and write_skill silently replaces existing skill directories — should we document the repository/ref and replacement behavior?

Severity

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
`apps/opik-documentation/documentation/fern/docs-v2/changelog/2026-08-31.mdx` around
lines 5-5, update the MCP and skill-pack trust guidance to disclose that `setup_skills`
downloads instructions from the `comet-ml/opik-skills` repository at the mutable
`refs/heads/main` ref. Explicitly state that installation removes and replaces existing
skill directories before linking the downloaded skills into assistant locations,
especially since the commands are recommended for unattended use in coding agents,
Dockerfiles, and CI.


Setting up the Opik MCP server previously meant sitting through an interactive wizard, and it only reached three of the AI assistants people actually use. `opik configure --install-mcp` and `opik mcp configure --ai-client <host>` now run non-interactively — pass the client explicitly (or `--ai-client all`) and the command completes on its own, so it can run from a coding agent, a Dockerfile, or CI. Codex and opencode join Claude Code, Cursor, and VS Code Copilot as supported hosts, and every install now ends with a real verification call that reports the workspace and project count instead of assuming the config it just wrote actually works.

A new `--install-skills` flag (and the equivalent `--skills` on `opik mcp configure`) installs the companion Opik skill pack alongside the MCP server — instructions the assistant reads to know how to use the tools the server exposes, rather than just their tool list. The two are asked about separately since they carry different trust implications: the MCP server writes credentials into a config file, the skill pack installs instruction files the assistant executes with its own permissions. The onboarding copy-paste prompt and docs now point at `/opik-instrument` rather than the unnamespaced `/instrument`, avoiding collisions with other skills of the same name.

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.

Hosted MCP trust model is misstated

The doc claims the MCP server writes credentials into a config file, but detect_hosted_mcp_server only builds URL-only RemoteServerSpec blocks — credentials are stored only for local stdio registration — so readers may not realize hosted registration (the default for opik mcp configure) instead relies on the host's browser OAuth flow, should we qualify the trust note by transport?

Severity

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
apps/opik-documentation/documentation/fern/docs-v2/changelog/2026-08-31.mdx around line
5, revise the MCP-versus-skill-pack trust explanation to distinguish hosted and local
transports. Clarify that hosted MCP registration records the server URL and relies on
the host's browser OAuth flow, while local stdio registration stores API credentials and
workspace values in the configuration; retain the warning that skill-pack instructions
run with the assistant's permissions.


- **Faster dataset experiment summaries** — The query behind a dataset's experiment summary scanned every experiment item in the whole workspace before filtering down to the requested dataset. It now prunes to the relevant experiments upfront, cutting rows read by roughly 13x on a workspace with 3M experiment items across 200 experiments, and skipping the scan entirely for a dataset with no experiments.

- **Faster dataset item inserts** — Adding items to a dataset updated the version's item count with a read-modify-write cycle inside the per-dataset lock. It's now a single atomic increment, cutting the database round trips on that path from three to one.

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.

Overstated dataset insert round-trip reduction

“On that path” implies the full insert request drops from three database round trips to one, but existing-version inserts still call countExistingItemIds, insertItems, and updateVersionCountsForInsert — can we scope the claim to version-counter maintenance and say, “the version item-count update now uses a single atomic increment instead of a three-round-trip read-modify-write cycle”?

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/2026-08-31.mdx` around
line 31, revise the “Faster dataset item inserts” description so the three-to-one
reduction clearly refers only to version item-count maintenance, not the complete item
insertion request. State that the version item-count update now uses a single atomic
increment instead of the previous three-round-trip read-modify-write cycle, while
preserving the rest of the performance context.

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 🟢 size/S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants