Skip to content

chore(turbo): bump to 2.11.10 and opt out of agent guidance - #671

Merged
goosewobbler merged 4 commits into
mainfrom
chore/turbo-agent-guidance-opt-out
Oct 22, 2026
Merged

goosewobbler merged 4 commits into
mainfrom
chore/turbo-agent-guidance-opt-out

Conversation

@goosewobbler

@goosewobbler goosewobbler commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Description

Ports webdriverio/desktop-mobile#716 ("chore(turbo): opt out of agent guidance") and moves turbo to the current latest, 2.11.10.

In turbo 2.11.6 and 2.11.7, running turbo under an AI agent appends a <!-- BEGIN:turborepo-agent-rules --> block to the root AGENTS.md. Turbo detects agents from env vars such as CLAUDECODE, AI_AGENT and CURSOR_TRACE_ID. The block shows up as a stray diff in every agent worktree, and we don't maintain it. Here CLAUDE.md imports AGENTS.md, so the block would also be loaded into every agent's context. This PR sets "agentGuidance": false in turbo.json.

What changed upstream since desktop-mobile's PR: turbo 2.11.8 made agent guidance opt-in (vercel/turborepo#14490, "Disable agent guidance by default"). From 2.11.8 on, agentGuidance defaults to false and the schema says "Set to true to opt in". So on 2.11.10 the explicit false restates the default. It's kept because it states the intent in config, keeps the opt-out if upstream flips the default back, and matches desktop-mobile. The key is still parsed and still controls the behaviour (see Testing Notes). The other 2.11.8–2.11.10 turbo.json changes only add new options (a root setup policy and futureFlags.experimentalSetup); neither changes how our config behaves.

The bump is needed for the opt-out. On the current pin, turbo 2.10.9, the key fails to parse:

turbo_json_parse_error
  x Found an unknown key `agentGuidance`.

turbo's schema first includes agentGuidance in 2.11.5.

Dependabot #660 (dev-dependencies group, still open) bumps turbo 2.10.9 → 2.11.7, along with eslint 10.12.0 and @typescript-eslint/parser 8.71.1.

Lockfile note: the repo's pinned pnpm (10.27.0) re-resolves the lockfile and drops the 31 libc: fields that dependabot's newer pnpm wrote in #659, adding 61 unrelated deleted lines. The lockfile was updated with pnpm 10.34.7 (latest 10.x) instead, so the diff touches only turbo. pnpm install --frozen-lockfile with 10.27.0 accepts it.

Also on this branch: 907a72d, the one-line test fix from #676, ported so the flaky versionStrategies.spec.ts timeout (real cargo runs in a unit test) doesn't block this PR. It no-ops once #676 is on main.

Related Issue(s)

Port of webdriverio/desktop-mobile#716. Supersedes the turbo part of dependabot #660 (see above).

Type of Change

  • feat — New feature
  • fix — Bug fix
  • docs — Documentation change
  • refactor — Code refactoring
  • test — Adding or updating tests
  • chore — Maintenance, dependencies, tooling
  • Breaking change — Requires major version bump

Scope

  • @releasekit/version
  • @releasekit/notes
  • @releasekit/publish
  • @releasekit/config
  • @releasekit/core
  • CI / workflows
  • Root / monorepo

Checklist

  • Lint passes (pnpm lint)
  • Tests pass (pnpm test:coverage)
  • Typecheck passes (pnpm typecheck)
  • Documentation updated (if applicable)
  • Breaking changes noted in description

Testing Notes

On turbo 2.11.10, turbo run build with each of CLAUDECODE=1, AI_AGENT=x and CURSOR_TRACE_ID=x, then AGENTS.md:

turbo.json AGENTS.md after the run
"agentGuidance": false (this PR) clean
key removed clean (the 2.11.8+ default)
"agentGuidance": true block added

The last row shows the key still controls the behaviour. On 2.11.7 without the key, the same runs added the block; with false, they stayed clean.

  • pnpm build --force 8/8 and pnpm typecheck 15/15 pass with CLAUDECODE=1; git status clean after every run.
  • pnpm lint passes (29 warnings, same as main); pnpm test:coverage (what CI runs) passes in all 8 packages.
  • pnpm install --frozen-lockfile with the pinned pnpm 10.27.0 succeeds.
  • The opt-out only stops future writes; the committed AGENTS.md has no block, so nothing needs cleaning up.

🤖 Generated with Claude Code

https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e

From 2.11.6, turbo appends a turborepo-agent-rules block to the root
AGENTS.md whenever it runs under an AI agent (CLAUDECODE, AI_AGENT,
CURSOR_TRACE_ID and similar). Here that lands as a stray diff in every
agent worktree, and CLAUDE.md imports AGENTS.md, so the block would also
ride into every agent's context. Set agentGuidance to false.

turbo 2.10.9 rejects agentGuidance as an unknown turbo.json key, so the
opt-out needs the bump; 2.11.7 matches webdriverio/desktop-mobile and
the turbo entry in the open dependabot dev-dependencies group (#660),
which would otherwise turn the block on when it merges.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e
@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Standing release PR: #614 · v0.42.0 queued (4 packages) · open 81d 23h 44m · ✅ ready to merge

Release Preview — v0.41.2 → v0.41.3

Note: Labels on this PR are advisory in standing-pr mode. Bumps come from conventional commits in the standing PR; override by editing labels on the standing PR itself. Add release:immediate to bypass the standing PR and release this PR directly.

These changes will be added to the release PR (#614) when merged:

Changelog

monorepo 0.41.2 → 0.41.3

Changed

  • drop the comment on the cargoLock mock (version)
  • stop the strategy unit tests running real cargo (version)
  • bump to 2.11.10 (turbo)
  • bump to 2.11.7 and opt out of agent guidance (turbo)

All packages → 0.41.3 (sync versioning)

  • @releasekit/version
  • @releasekit/notes
  • @releasekit/publish
  • @releasekit/release

After merge — predicted release

No version escalation — this PR's changes will be included in the queued release without affecting the projected versions.

Package Standing PR This PR After merge
monorepo 0.42.0 0.41.3 0.42.0

Updated automatically by ReleaseKit

Move to the current latest turbo. Since 2.11.8 (vercel/turborepo#14490)
agentGuidance defaults to false, so the explicit false in turbo.json now
restates the default; keeping it holds the opt-out if that default flips
back.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e
goosewobbler pushed a commit that referenced this pull request Oct 22, 2026
versionStrategies.spec.ts mocks node:fs, so the Cargo.lock lookup in
syncCargoLockfile finds a lock and the real sync shells out to
`cargo update --workspace --offline` — 78 times per run. On a cold CI
runner that pushes "should update all packages to the same version" past
its 5s timeout; it failed that way on #668 and #671. Mock the sync like
the other collaborators.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e
versionStrategies.spec.ts mocks node:fs, so the Cargo.lock lookup in
syncCargoLockfile finds a lock and the real sync shells out to
`cargo update --workspace --offline` — 78 times per run. On a cold CI
runner that pushes "should update all packages to the same version" past
its 5s timeout; it failed that way on #668 and #671. Mock the sync like
the other collaborators.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e

Copy link
Copy Markdown
Owner Author

Unit Tests (22) failed on versionStrategies.spec.ts > createSyncStrategy > should update all packages to the same version (5s timeout). Not this PR's: that spec mocks node:fs, so the real syncCargoLockfile shells out to cargo update --workspace --offline 78 times per run, and a cold runner pushes one test over the limit. The same test failed the same way on #668. Fix is #676 (mock the sync in that spec); ported here as 907a72d, which no-ops once #676 is on main. This push also carries the turbo 2.11.10 bump (cc62083).


Generated by Claude Code

@goosewobbler goosewobbler changed the title chore(turbo): bump to 2.11.7 and opt out of agent guidance chore(turbo): bump to 2.11.10 and opt out of agent guidance Oct 22, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e
@goosewobbler
goosewobbler merged commit d77e7f1 into main Oct 22, 2026
29 checks passed
@goosewobbler
goosewobbler deleted the chore/turbo-agent-guidance-opt-out branch October 22, 2026 18:08
goosewobbler added a commit that referenced this pull request Oct 22, 2026
* chore(biome): flag console in package source

Package code logs through the logger: core's, or version's own
utils/logging.ts. Biome's noConsole now enforces that in packages/*/src,
except the loggers themselves and the CLI command layer (command.ts,
commands/), which owns the terminal: the JSON result on stdout and the
final error message on stderr.

The version package's error paths dumped stack traces and git output with
console.error next to log(..., 'error'); they now go through log, which
writes the error level to stderr in both modes, so the stream is
unchanged. Three outputs that aren't diagnostics keep console behind a
suppression: version's --json result, preview's dry-run comment, and the
RELEASEKIT_DEBUG prompt dump (folded into one write, same bytes), which
must print regardless of log level or --quiet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e

* test(version): stop the strategy unit tests running real cargo

versionStrategies.spec.ts mocks node:fs, so the Cargo.lock lookup in
syncCargoLockfile finds a lock and the real sync shells out to
`cargo update --workspace --offline` — 78 times per run. On a cold CI
runner that pushes "should update all packages to the same version" past
its 5s timeout; it failed that way on #668 and #671. Mock the sync like
the other collaborators.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e

* test(version): drop the comment on the cargoLock mock

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e

* style: add braces to every single-statement body

Same sweep as #679, run on this branch so merging main resolves cleanly.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e

* chore(biome): shorten the noConsole override comment and suppression reasons

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e

* chore(biome): reword the noConsole override and debug-dump suppression

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e

---------

Co-authored-by: Claude <noreply@anthropic.com>
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.

2 participants