Repository navigation
v0.30.4 — Claude Code's files stay in its own home, and a newer agents block is left alone
Two fixes from the live checks of 0.30.3. If you export CODEX_HOME, read the last section.
Claude Code's files stay in Claude Code's home
With CODEX_HOME exported, setup, install, upgrade, plan, uninstall and doctor, run from a directory with no .claude/ folder in it, put Claude Code's paths under the Codex home. That covered Claude Code's npm marketplace, claude's plugin registry, the cache and the user settings. The host CLI ran with that home too, so Claude Code itself, started normally, saw no registration. Doctor, run from such a directory, read the wrong places and reported a missing status line and a foreign registration.
From 0.30.4, Claude Code's paths are always under CLAUDE_CONFIG_DIR, or ~/.claude when that is not set. The plan names the home on the registration row, for example (harness home ~/.claude, scope local). The status-line launcher is rendered with Claude Code's own variable. Codex keeps CODEX_HOME.
A deferred registration names its command
Inside a Claude Code or Codex session, setup, install, upgrade and uninstall leave the agent's registration for a terminal. Until now the row said only that. Now the plan also says where to run it and what to run, each on its own line:
From a terminal in "/Users/you/Projects/app":
npx projectstore@0.30.4 setup --harness claude-code --channel npm
The command repeats the run's own verb and options. With --json, the row's reason holds the old text on its first line, byte for byte, then these two lines. A script that reads reason as one line should take its first line.
No copy writes a newer agents block down
A checkout kept on an older git-marketplace copy could flip its agents block back and forth. An npm run of 0.30.3 wrote v5; the kept 0.30.2 copy's doctor then asked to register the block again, which wrote v4; and the next npm run wrote v5 once more.
- A block newer than the running copy's template is now left as it is by
install,upgradeandsetup, with a reason that names the way out. Doctor mentions it in the install report and never counts it as an issue. - Registering the block by name writes over it only when nothing else is left to place.
- When setup keeps a git-marketplace copy that is older than the package it runs from, the row and DONE say so, and say how to update that copy. In Claude Code:
/plugin marketplace update
/plugin update
Then restart.
Upgrading
The agents block stays v5, so there is no block step this time.
From npm, from a terminal in your project:
npx projectstore@0.30.4 upgrade
Codex's registration is per machine:
npx projectstore@0.30.4 upgrade --harness codex
From the git marketplace, in Claude Code:
/plugin update
Then restart the agent.
If you exported CODEX_HOME before 0.30.4
What the defect left behind is not repaired by itself. You are affected if CODEX_HOME was exported when you ran setup, install or upgrade from 0.30.3 or earlier in a directory with no .claude/ folder, a fresh project for instance. 0.30.4 then refuses both registrations and writes nothing. Claude Code's refusal says that the project's settings declare marketplace projectstore-npm at another path, and ends "remove that entry to let install take the name". Codex's says the marketplace path exists without .projectstore-registration.json.
To repair it, from a terminal outside any agent session:
-
In the project's
.claude/settings.local.json, delete theprojectstore-npmkey underextraKnownMarketplacesand theprojectstore@projectstore-npmkey underenabledPlugins. -
Look inside
$CODEX_HOME/projectstore/marketplace. If it holds.claude-plugin/marketplace.json, it is Claude Code's marketplace: delete the folder. (Codex's own marketplace holds.agents/instead.) -
Delete what
claudewrote under the Codex home, if it is there:$CODEX_HOME/plugins/known_marketplaces.json$CODEX_HOME/plugins/installed_plugins.json$CODEX_HOME/backups/
$CODEX_HOME/plugins/cache/projectstore-npm/and$CODEX_HOME/plugins/marketplaces/may go too; Codex reads neither. -
Set the project up again:
npx projectstore@0.30.4 setup
Codex stays experimental, as docs/harnesses.md defines it.