chore(release): v0.12.0
Issue for this PR
Closes #
Release PR for v0.12.0. It closes no single issue; the six deferred findings from this release's review are tracked as #1321–#1326.
Type of change
- Bug fix
- New feature
- Documentation
What does this PR do?
Everything the release ships — the /workspace menu and prompt identity (#1278), sidebar sync status (#1279), extension tools in the prompt (#1291), skill publish (#1280, #1313), and the three fixes (#1306, #1318, #1319) — is already on main. This PR carries only what the release process produces on top of that:
- Review fixes (
e5ee6e7cf9), from a five-persona pre-release review ofv0.11.2..main, every item small enough to land here rather than in a follow-up:skill publishis registered only underALTIMATE_WORKSPACE=1, likelink. Outside the pilot it showed in--helpand its "not linked" error told users to run alinkcommand that does not exist for them.skill listnow hints the command when the pilot is on.- The publish junk filter refuses the credential shapes that arrive in a skill folder by copy or habit: private keys and certificates (
id_rsa,*.pem,*.key,*.p12, …),.npmrc/.netrc/.pypirc,credentials.json,secrets.*, and the.ssh/.aws/.gnupg/.altimatedirectories. Still a filename blocklist (aconfig.yamlholding a token ships) — #1321 tracks a content scan or a pre-upload preview. test/installation/ownership.test.tscalledbunGlobalRootwithout an env, so it read the developer's realBUN_INSTALLand was red on any machine where bun had ever installed this package globally (two reviewers reproduced it independently).- Docs:
skill publishand the "Publish to workspace" action inskills.md; a "Workspaces (pilot)" note incli.md; a garbled comment inlink.ts.
release: v0.12.0(e37a5c171b): the## [0.12.0]CHANGELOG entry andtest/skill/release-v0.12.0-adversarial.test.ts(37 tests over the junk filter,assertProjectSkill,inertWorkspaceName,flattenToolParts, the.synced-atmarker reader, and the install resolver against hostile input — two guards were mutation-checked by deleting them and watching the tests fail).
main's ruleset requires a PR for any push. Once this merges I'll tag v0.12.0 on the new main tip, which triggers the release workflow.
How did you verify your code works?
bun testovertest/altimate,test/cli,test/installation, the flatten/llm suites and the new adversarial file: 6367 pass / 673 skip / 1 fail — the one failure wastracing-rename-race.test.tson a disk with 568 MiB free (it writes 52 MB × 10 trials); it passes 8/8 after freeing space and is untouched by this release. The full suite ran earlier ona7f328f000(6251 pass; the 11 failures are pre-existing timeouts insample_setup/validator e2e files that also fail onv0.11.2).tsgo --noEmitclean; upstream marker guard clean (--markers --base origin/main --strict).OPENCODE_VERSION=0.12.0 bun run pre-release: all four checks pass; the dist binary, run by path, reports0.12.0, hidesskill publishwithoutALTIMATE_WORKSPACE=1and shows it with it.script/release-preflight.ts --version 0.12.0 --stage tag: PASSED.- Earlier in this cycle, every workspace change in the release was exercised end to end against freemium with throwaway workspaces (see #1278/#1279/#1280/#1313/#1319 threads).
Screenshots / recordings
N/A — no UI change beyond the skill list hint line.
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.0: the payload is already on main, and this PR carries the pre-release review fixes, the CHANGELOG entry, and a new adversarial test file. The six deferred review findings are tracked as #1321–#1326.
skill publish(CLI) and the TUI "Publish to workspace" row are registered only underALTIMATE_WORKSPACE=1, likelink; outside the pilot they are hidden rather than telling users to run alinkcommand that is not registered for them, andskill listhints the command when the pilot is on.- The publish junk filter now refuses private keys and certificates (
id_rsa,*.pem,*.key,*.p12),.npmrc/.netrc/.pypirc,credentials.json,secrets.*, and the.ssh/.aws/.gnupg/.altimatedirectories, case-insensitively. - The filter stays a filename blocklist, so a
config.yamlholding a token still ships; #1321 tracks a content scan. ownership.test.tsnow passes an env tobunGlobalRootinstead of reading the developer's realBUN_INSTALL.- Docs gain
skill publish, the "Publish to workspace" action, and a "Workspaces (pilot)" section incli.md. - The new
release-v0.12.0-adversarial.test.ts(37 tests) pushes hostile input at the junk filter,assertProjectSkill,inertWorkspaceName,flattenToolParts, the.synced-atreader, and install resolution. - After merge, tag
v0.12.0on the newmaintip to trigger the release workflow.
Summary by CodeRabbit
- New Features
- Added pilot workspace management with linking status, memory and skill sync indicators, refresh/sync/unlink actions, and quick workspace creation.
- Added publishing of project skills to a linked workspace.
- Added live extension-tool names to agent prompts.
- Bug Fixes
- Improved handling of unknown installation methods during upgrades and uninstallations.
- Fixed toolless requests, workspace linking, and pilot-only skill commands.
- Prevented sensitive and temporary files from being included in published skills.
- Documentation
- Added workspace and skill-publishing guidance to the CLI and skills documentation.