Repository navigation
chore(turbo): bump to 2.11.10 and opt out of agent guidance - #671
Conversation
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
|
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
These changes will be added to the release PR (#614) when merged: Changelogmonorepo 0.41.2 → 0.41.3
After merge — predicted release
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
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
|
Generated by Claude Code |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e
* 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>
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 rootAGENTS.md. Turbo detects agents from env vars such asCLAUDECODE,AI_AGENTandCURSOR_TRACE_ID. The block shows up as a stray diff in every agent worktree, and we don't maintain it. HereCLAUDE.mdimportsAGENTS.md, so the block would also be loaded into every agent's context. This PR sets"agentGuidance": falseinturbo.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,
agentGuidancedefaults tofalseand the schema says "Set totrueto opt in". So on 2.11.10 the explicitfalserestates 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.10turbo.jsonchanges only add new options (a rootsetuppolicy andfutureFlags.experimentalSetup); neither changes how our config behaves.The bump is needed for the opt-out. On the current pin,
turbo2.10.9, the key fails to parse:turbo's schema first includes
agentGuidancein 2.11.5.Dependabot #660 (dev-dependencies group, still open) bumps turbo
2.10.9 → 2.11.7, along with eslint10.12.0and@typescript-eslint/parser8.71.1.mainis on 2.11.10, newer than chore(deps-dev): bump the development-dependencies group with 3 updates #660's target, so on its next rebase dependabot should drop turbo from the group and keep the eslint and parser bumps. Until then chore(deps-dev): bump the development-dependencies group with 3 updates #660 conflicts on the turbo lines inpackage.jsonandpnpm-lock.yaml; if dependabot doesn't sort it out, comment·@·d·ependabot r·ecreateon chore(deps-dev): bump the development-dependencies group with 3 updates #660.mainsits on 2.11.7, where guidance is on by default, until this PR is updated.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-lockfilewith 10.27.0 accepts it.Also on this branch: 907a72d, the one-line test fix from #676, ported so the flaky
versionStrategies.spec.tstimeout (realcargoruns in a unit test) doesn't block this PR. It no-ops once #676 is onmain.Related Issue(s)
Port of webdriverio/desktop-mobile#716. Supersedes the turbo part of dependabot #660 (see above).
Type of Change
feat— New featurefix— Bug fixdocs— Documentation changerefactor— Code refactoringtest— Adding or updating testschore— Maintenance, dependencies, toolingScope
@releasekit/version@releasekit/notes@releasekit/publish@releasekit/config@releasekit/coreChecklist
pnpm lint)pnpm test:coverage)pnpm typecheck)Testing Notes
On turbo 2.11.10,
turbo run buildwith each ofCLAUDECODE=1,AI_AGENT=xandCURSOR_TRACE_ID=x, thenAGENTS.md:turbo.jsonAGENTS.mdafter the run"agentGuidance": false(this PR)"agentGuidance": trueThe 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 --force8/8 andpnpm typecheck15/15 pass withCLAUDECODE=1;git statusclean after every run.pnpm lintpasses (29 warnings, same asmain);pnpm test:coverage(what CI runs) passes in all 8 packages.pnpm install --frozen-lockfilewith the pinned pnpm 10.27.0 succeeds.AGENTS.mdhas no block, so nothing needs cleaning up.🤖 Generated with Claude Code
https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e