fix: auto-migrate legacy config on CLI
This commit is contained in:
@@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
- Onboarding: resolve CLI entrypoint when running via `npx` so gateway daemon install works without a build step.
|
- Onboarding: resolve CLI entrypoint when running via `npx` so gateway daemon install works without a build step.
|
||||||
|
- CLI: auto-migrate legacy config entries on command start (same behavior as gateway startup).
|
||||||
- Linux: auto-attempt lingering during onboarding (try without sudo, fallback to sudo) and prompt on install/restart to keep the gateway alive after logout/idle. Thanks @tobiasbischoff for PR #237.
|
- Linux: auto-attempt lingering during onboarding (try without sudo, fallback to sudo) and prompt on install/restart to keep the gateway alive after logout/idle. Thanks @tobiasbischoff for PR #237.
|
||||||
- TUI: migrate key handling to the updated pi-tui Key matcher API.
|
- TUI: migrate key handling to the updated pi-tui Key matcher API.
|
||||||
- Logging: redact sensitive tokens in verbose tool summaries by default (configurable patterns).
|
- Logging: redact sensitive tokens in verbose tool summaries by default (configurable patterns).
|
||||||
|
|||||||
@@ -10,7 +10,12 @@ import { sessionsCommand } from "../commands/sessions.js";
|
|||||||
import { setupCommand } from "../commands/setup.js";
|
import { setupCommand } from "../commands/setup.js";
|
||||||
import { statusCommand } from "../commands/status.js";
|
import { statusCommand } from "../commands/status.js";
|
||||||
import { updateCommand } from "../commands/update.js";
|
import { updateCommand } from "../commands/update.js";
|
||||||
import { readConfigFileSnapshot } from "../config/config.js";
|
import {
|
||||||
|
isNixMode,
|
||||||
|
migrateLegacyConfig,
|
||||||
|
readConfigFileSnapshot,
|
||||||
|
writeConfigFile,
|
||||||
|
} from "../config/config.js";
|
||||||
import { danger, setVerbose } from "../globals.js";
|
import { danger, setVerbose } from "../globals.js";
|
||||||
import { loginWeb, logoutWeb } from "../provider-web.js";
|
import { loginWeb, logoutWeb } from "../provider-web.js";
|
||||||
import { defaultRuntime } from "../runtime.js";
|
import { defaultRuntime } from "../runtime.js";
|
||||||
@@ -87,6 +92,26 @@ export function buildProgram() {
|
|||||||
if (actionCommand.name() === "doctor") return;
|
if (actionCommand.name() === "doctor") return;
|
||||||
const snapshot = await readConfigFileSnapshot();
|
const snapshot = await readConfigFileSnapshot();
|
||||||
if (snapshot.legacyIssues.length === 0) return;
|
if (snapshot.legacyIssues.length === 0) return;
|
||||||
|
if (isNixMode) {
|
||||||
|
defaultRuntime.error(
|
||||||
|
danger(
|
||||||
|
"Legacy config entries detected while running in Nix mode. Update your Nix config to the latest schema and retry.",
|
||||||
|
),
|
||||||
|
);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
const migrated = migrateLegacyConfig(snapshot.parsed);
|
||||||
|
if (migrated.config) {
|
||||||
|
await writeConfigFile(migrated.config);
|
||||||
|
if (migrated.changes.length > 0) {
|
||||||
|
defaultRuntime.log(
|
||||||
|
`Migrated legacy config entries:\n${migrated.changes
|
||||||
|
.map((entry) => `- ${entry}`)
|
||||||
|
.join("\n")}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
const issues = snapshot.legacyIssues
|
const issues = snapshot.legacyIssues
|
||||||
.map((issue) => `- ${issue.path}: ${issue.message}`)
|
.map((issue) => `- ${issue.path}: ${issue.message}`)
|
||||||
.join("\n");
|
.join("\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user