impel-cli 0.7.2 → 0.7.3

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
@@ -240,7 +240,9 @@ On macOS, desktop app state is isolated under
240
240
  `~/.config/impel/apps/tenants/<org>/`. The app bundle in `~/Applications` is a
241
241
  launcher for the currently opened tenant; `impel app open` refreshes that
242
242
  launcher, the tenant-scoped bearer, model catalog, and specialist MCP arguments
243
- before starting a new isolated instance. Windows Claude Desktop keeps each
243
+ before starting a new isolated instance. Switching tenants never deletes local
244
+ history or projects; switch back to the original tenant to reopen that tenant's
245
+ preserved profile. Windows Claude Desktop keeps each
244
246
  tenant under `%LOCALAPPDATA%\Claude-3p\Impel\<org>` and launches the unchanged
245
247
  signed vendor executable with that profile selected. Windows ChatGPT keeps its
246
248
  Codex and browser state under the same tenant-scoped Impel apps root used on
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "impel-cli",
3
- "version": "0.7.2",
3
+ "version": "0.7.3",
4
4
  "description": "Configure Claude Code and Codex CLI to talk to Impel's gateway, authenticated by an Impel Personal Access Token",
5
5
  "type": "module",
6
6
  "bin": {
package/src/apps.js CHANGED
@@ -144,6 +144,11 @@ export function bundleIsCurrent(status) {
144
144
  compatibility
145
145
  && compatibility.cliVersion === CLI_VERSION
146
146
  && compatibility.vendorVersion === status.vendorVersion
147
+ && compatibility.profileRoot === status.profileRoot
148
+ && (status.target !== "chatgpt" || (
149
+ compatibility.codexHome === status.codexHome
150
+ && compatibility.browserData === status.browserData
151
+ ))
147
152
  && managedBundleMatchesCompatibility(status, compatibility)
148
153
  && (status.target !== "chatgpt" || (
149
154
  compatibility.vendorSignaturesPreserved === true
@@ -524,6 +529,9 @@ export function appStatus(targets, homeDir = os.homedir(), tenantId = null) {
524
529
  launcherInstalled: fs.existsSync(paths[target].launcher),
525
530
  vendorPath,
526
531
  vendorVersion: vendorPath ? bundleVersion(vendorPath) : null,
532
+ profileRoot: target === "claude" ? paths.claude.userData : paths.chatgpt.root,
533
+ codexHome: target === "chatgpt" ? paths.chatgpt.codexHome : null,
534
+ browserData: target === "chatgpt" ? paths.chatgpt.browserData : null,
527
535
  configPath: target === "claude"
528
536
  ? path.join(paths.claude.userData, "configLibrary", `${CLAUDE_CONFIG_ID}.json`)
529
537
  : path.join(paths.chatgpt.codexHome, "config.toml"),
@@ -989,6 +997,9 @@ function writeVendoredChatGPTBundle(paths, vendorPath, gatewayUrl) {
989
997
  cliVersion: CLI_VERSION,
990
998
  vendorVersion: bundleVersion(vendorPath),
991
999
  sourceBundle: vendorPath,
1000
+ profileRoot: paths.chatgpt.root,
1001
+ codexHome: paths.chatgpt.codexHome,
1002
+ browserData: paths.chatgpt.browserData,
992
1003
  patches: { fastModeForGatewayAuth: fastModePatchCount, desktopAPIForGatewayAuth: 0 },
993
1004
  vendorSignaturesPreserved: true,
994
1005
  resourceRoot: CHATGPT_RESOURCE_ROOT,
@@ -351,6 +351,7 @@ export async function cmdApps(argv, overrides = {}) {
351
351
  }
352
352
 
353
353
  const config = await selectedAppConfig(targets);
354
+ console.log(`Tenant: ${config.tenantId} (desktop history is isolated per tenant).`);
354
355
 
355
356
  // A running vendor or Impel app makes the pinned vendor install / bundle swap fail.
356
357
  await quitBlockingApps(targets);
@@ -65,6 +65,7 @@ export async function cmdTenant(argv) {
65
65
  if (!tenantId) throw new Error("tenant use requires an org slug; run `impel tenant list`");
66
66
  const { tenant } = await selectTenant(config, tenantId);
67
67
  console.log(`Tenant -> ${tenant.id} (${tenant.name})`);
68
+ console.log("Local CLI and desktop history in other tenants is preserved and remains available when you switch back.");
68
69
 
69
70
  const launch = flags.launch;
70
71
  if (!launch) {