claude-use 11.67.1 → 11.67.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -266,7 +266,7 @@ pnpm schema # regenerate schema/*.schema.json from src/config/schema.ts; CI
266
266
 
267
267
  Run a single test file directly with `pnpm exec vitest run <path>`. Tests never touch a real identity: `vitest.config.ts` sets `AGENT_SHIM_HOME` to a throwaway directory, and a setup file refuses to run at all if that variable is unset or resolves to the real `~/.agent-shim`.
268
268
 
269
- Commits are gated by Husky hooks: `commit-msg` enforces conventional-commit format, `pre-commit` runs `eslint --fix` on staged files and rejects merge/squash commits and mass deletions on `main`, and `pre-push` runs the full test suite and also rejects a push that would delete more than 100 files on the remote.
269
+ Commits are gated by Husky hooks: `commit-msg` enforces conventional-commit format, `pre-commit` runs `eslint --fix` on staged files and rejects merge/squash commits and mass deletions on `main`, and `pre-push` runs typecheck, the schema drift check, knip and the tests related to what the push changes (CI runs the full suite) and also rejects a push that would delete more than 100 files on the remote.
270
270
 
271
271
  A fresh clone needs one extra step before committing anything, since git stores filter definitions in `.git/config` rather than in the repository:
272
272
 
package/dist/cli.cjs CHANGED
@@ -37387,7 +37387,7 @@ var init_package = __esm({
37387
37387
  "package.json"() {
37388
37388
  package_default = {
37389
37389
  name: "claude-use",
37390
- version: "11.67.1",
37390
+ version: "11.67.2",
37391
37391
  description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
37392
37392
  license: "MIT",
37393
37393
  author: "Joseph Mearman <joseph@mearman.co.uk>",
@@ -119461,11 +119461,16 @@ function createHeadroomKeeper(deps) {
119461
119461
  ports.fs.removeRecursive(paths.headroomLockFile);
119462
119462
  }
119463
119463
  };
119464
- const tick = () => {
119465
- const state = resolveServingHeadroomState(ports.fs, { stateFile: paths.headroomStateFile, legacyStateFile: paths.headroomLegacyStateFile }, ports.isRunning)?.state;
119464
+ const tick = async () => {
119465
+ const stateFiles = { stateFile: paths.headroomStateFile, legacyStateFile: paths.headroomLegacyStateFile };
119466
+ const sessions = listSessions(ports.fs, paths.headroomSessionsDir);
119467
+ const asked = new Set([readHeadroomState(ports.fs, stateFiles.stateFile)?.supervisorPid, readHeadroomState(ports.fs, stateFiles.legacyStateFile)?.supervisorPid, readStartLock(ports.fs, paths.headroomLockFile)?.pid, ...sessions.flatMap((session) => [session.pid, session.supervisorPid])].filter((pid) => pid !== void 0));
119468
+ const running = await ports.runningAmong([...asked]);
119469
+ const isRunning = (pid) => !asked.has(pid) || running.has(pid);
119470
+ const state = resolveServingHeadroomState(ports.fs, stateFiles, isRunning)?.state;
119466
119471
  const supervisorPid = state?.supervisorPid;
119467
- const orphans = listSessions(ports.fs, paths.headroomSessionsDir).filter((session) => ports.isRunning(session.pid) && !ports.isRunning(session.supervisorPid));
119468
- if (supervisorPid !== void 0 && ports.isRunning(supervisorPid)) {
119472
+ const orphans = sessions.filter((session) => isRunning(session.pid) && !isRunning(session.supervisorPid));
119473
+ if (supervisorPid !== void 0 && isRunning(supervisorPid)) {
119469
119474
  lastAttemptAt = void 0;
119470
119475
  releaseOwnLock();
119471
119476
  for (const session of orphans) {
@@ -119484,7 +119489,7 @@ function createHeadroomKeeper(deps) {
119484
119489
  }
119485
119490
  releaseOwnLock();
119486
119491
  lastAttemptAt = ports.now();
119487
- const start = startSupervisorUnderLock({ paths, holderPid: deps.ownPid, ports });
119492
+ const start = startSupervisorUnderLock({ paths, holderPid: deps.ownPid, ports: { fs: ports.fs, now: ports.now, isRunning, spawnSupervisor: ports.spawnSupervisor } });
119488
119493
  log(`front door: headroom supervisor is not running and ${String(orphans.length)} launcher(s) are registered against it (${start})`);
119489
119494
  return { kind: "starting", start, waiting: orphans.length };
119490
119495
  };
@@ -139682,15 +139687,20 @@ function realFrontDoorSupervisorPorts(paths, respawnGeneration, lifecycle, track
139682
139687
  const headroomKeeper = createHeadroomKeeper({
139683
139688
  paths,
139684
139689
  ownPid: process.pid,
139685
- ports: { fs: realFarmFs, now: () => Date.now(), isRunning: realIsProcessRunning, spawnSupervisor: (layout) => spawnDetachedSupervisor(layout, "__headroom-supervisor", layout.headroomLogPath) },
139690
+ ports: { fs: realFarmFs, now: () => Date.now(), runningAmong: realRunningAmong, spawnSupervisor: (layout) => spawnDetachedSupervisor(layout, "__headroom-supervisor", layout.headroomLogPath) },
139686
139691
  log
139687
139692
  });
139693
+ let headroomKeeperTicking = false;
139688
139694
  const headroomKeeperTimer = setInterval(() => {
139689
- try {
139690
- headroomKeeper.tick();
139691
- } catch (error63) {
139692
- log(`headroom keeper failed: ${error63 instanceof Error ? error63.message : String(error63)}`);
139695
+ if (headroomKeeperTicking) {
139696
+ return;
139693
139697
  }
139698
+ headroomKeeperTicking = true;
139699
+ headroomKeeper.tick().catch((error63) => {
139700
+ log(`headroom keeper failed: ${error63 instanceof Error ? error63.message : String(error63)}`);
139701
+ }).finally(() => {
139702
+ headroomKeeperTicking = false;
139703
+ });
139694
139704
  }, HEADROOM_POLL_MS);
139695
139705
  headroomKeeperTimer.unref();
139696
139706
  keeperTimers.push(headroomKeeperTimer);
package/dist/index.cjs CHANGED
@@ -4762,7 +4762,7 @@ var init_package = __esm({
4762
4762
  "package.json"() {
4763
4763
  package_default = {
4764
4764
  name: "claude-use",
4765
- version: "11.67.1",
4765
+ version: "11.67.2",
4766
4766
  description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
4767
4767
  license: "MIT",
4768
4768
  author: "Joseph Mearman <joseph@mearman.co.uk>",
package/dist/index.mjs CHANGED
@@ -4738,7 +4738,7 @@ var init_package = __esm({
4738
4738
  "package.json"() {
4739
4739
  package_default = {
4740
4740
  name: "claude-use",
4741
- version: "11.67.1",
4741
+ version: "11.67.2",
4742
4742
  description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
4743
4743
  license: "MIT",
4744
4744
  author: "Joseph Mearman <joseph@mearman.co.uk>",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-use",
3
- "version": "11.67.1",
3
+ "version": "11.67.2",
4
4
  "description": "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
5
5
  "license": "MIT",
6
6
  "author": "Joseph Mearman <joseph@mearman.co.uk>",