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 +3 -1
- package/package.json +1 -1
- package/src/apps.js +11 -0
- package/src/commands/apps.js +1 -0
- package/src/commands/tenant.js +1 -0
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.
|
|
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
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,
|
package/src/commands/apps.js
CHANGED
|
@@ -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);
|
package/src/commands/tenant.js
CHANGED
|
@@ -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) {
|