chore(release): v0.12.1
Issue for this PR
Closes #
Release PR for v0.12.1. It closes no single issue; the review findings that were deferred are tracked as #1337 (routing ignores the IDE pin, assigned to Sarav) and #1335 (workspace name in the system prompt).
Type of change
- Bug fix
- New feature
- Documentation
What does this PR do?
Both features the release ships are already on main: #1330 (identity every turn) and #1320 (IDE pin). This PR carries what the release process produced on top of them:
- Review fixes (
c7a8348d25), from a five-persona review ofv0.12.0..mainthat looked specifically at the seam between the two PRs (they changedresolveBindingOutcomefrom opposite sides and were never reviewed together):- a pin served from the offline grace window is marked
stale, so identity says "last known" for it;pinValidationis bounded; - identity's memo is keyed on the credential digest as well as tenant/host (the pin cache already was);
- under a pin, identity's deadline fallback never reaches for the project's own cached link;
- a pinned session is described as pinned, with the caveat that warehouse routing still follows the project's link (#1337); the unknown copy no longer promises that retrying helps;
- the persistent
shelltool strips the same host markers asbash(stripHostMarkers, shared), so a nestedservecannot inherit a pin; pin.tsstates the extension contract (a pin is fixed for the process's life); docs for the three pin variables,ALTIMATE_CODE_SERVE, and the identity line.
- a pin served from the offline grace window is marked
- Adversarial-test fixes (
a1852b5574):readPinaccepted1e3/0x10viaNumber()— decimal digits only now;MAX_SECTION_CHARSwas below the pinned-and-stale identity copy with a maximum-length name, sorenderdropped the name — raised, with a test over every shape. release: v0.12.1(09c092738d): the CHANGELOG entry andtest/skill/release-v0.12.1-adversarial.test.ts.
The one P0-candidate from the review — tool routing never consults the pin — was verified in code and downgraded with the release owner: routing behaviour is identical to v0.12.0 (the pin never affected it), the failure is a prompt inconsistency rather than execution against a workspace the project was not already linked to, and the fix belongs in precedence.ts/engine-probes.ts with its own tests (#1337). Identity's pinned copy states the limitation in the meantime.
main's ruleset requires a PR for any push. Once this merges, the release owner tags v0.12.1 on the new main tip.
How did you verify your code works?
bun testovertest/altimate/workspace,test/altimate/plugin,test/session/prompt.test.ts,test/upstream/bridge-merge.test.ts,test/cli/run/run-mode.test.ts,test/tool/{shell,bash}.test.tsand the new adversarial file: 850 pass / 0 fail before the adversarial commit; the five pin/identity files plus the adversarial file: 104 pass after it. Every new guard was deleted once to confirm its test fails (grace-pathstale, credential-scoped key, pin-aware fallback, the id parser, the cap).tsgo --noEmitclean; upstream marker guard clean.OPENCODE_VERSION=0.12.1 bun run pre-release: all four checks pass; the dist binary, run by path, reports0.12.1.script/release-preflight.ts --version 0.12.1 --stage tag: PASSED.- #1330's copy was checked live against freemium before it merged (unlinked, linked, "current workspace", Databricks questions in both states).
Screenshots / recordings
N/A — system-prompt text and process-environment changes; no UI change.
Checklist
- I have tested my changes locally
- I have not included unrelated changes in this PR
🤖 Generated with Claude Code
https://claude.ai/code/session_012Q51zFUmPg1WwtS5CrGJE6
Summary by cubic
Release PR for v0.12.1, carrying the two workspace features already on main — the agent naming the Altimate Workspace the project is linked to every turn (#1330) and the IDE extension pinning the workspace for the serve process it launches (#1320) — plus the fixes their joint review and this release's adversarial tests found. The one P0 candidate, tool routing never consulting the pin, was verified as behavior identical to v0.12.0 and tracked separately (#1337).
Pin/identity seam
- A pin served from the offline grace window is marked
stale; identity's memo is keyed on the credential as well as tenant and host, and its deadline fallback never renders the project's own cached link under a pin. - Pinned sessions are described as pinned, with the caveat that warehouse tool routing still follows the project's link; the persistent
shelltool strips the same host markers asbashvia a sharedstripHostMarkers, including every case spelling on Windows. readPinaccepts decimal ids only and a whitespace-only pin is invalid; the identity section cap fits every shape with a budget-sized name.- Identity renders unknown without invoking the resolver when no complete account is configured, so a hung or empty-credential session never stalls a turn.
- The
#937env-plumbing guard now verifiesALTIMATE_AUTO_ANSWERsurvives the marker strip both behaviorally and by source. - The CHANGELOG now points the resolver-scope caveat at #1339, and the shell child-env test handles Windows'
PATH/Pathenumeration.
Summary by CodeRabbit
- New Features
- Added workspace identity reporting for IDE-selected and project-linked workspaces.
- Added IDE workspace pinning for sessions launched through supported extensions.
- Bug Fixes
- Improved workspace validation, account isolation, caching, and offline handling.
- Clarified when workspace information reflects the last known verified state.
- Prevented workspace markers from leaking into child shell processes across platforms.
- Improved handling of invalid or unavailable workspace pins.
- Documentation
- Updated CLI guidance for workspace routing, pinning behavior, environment settings, lifecycle, and limitations.