fix(setup)!: bind managed registrations to selected installation

Use one command owner for setup, client writers, Gemini policy and CLI defaults.
Migrate recognized runner registrations with backups and remove runner prewarm.
Retain unknown identities and exercise real offline npm, CLI and MCP workflows.

Fixes #7757

BREAKING CHANGE: managed MCP registrations use the selected absolute runtime
and REA entry script, including package-runner cache paths. Keep that installation
available or restore it before setup; unknown registrations require confirmed
manual repair. Setup no longer returns prewarm or emits its progress events.

Assisted-by: Reimu (gensokyo-skills:reimu-incident-triage)
Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
Assisted-by: Yukari (gensokyo-skills:yukari-boundary-analysis)
This commit is contained in:
gensokyo-dev authored and GitHub committed 2026-10-28 11:34:28 +00:00
1 parent 18a8e71c9f
commit c77735fa83
56 files changed
+768 -1346

No files matched your search

-8
View File
@@ -13,7 +13,6 @@ import type {
AnalysisError,
} from "../domain/analysisErrorBase.js";
import type { SetupClient } from "./SupportedClients.js";
import type { SetupRegistrationPrewarm } from "./SetupRegistrationPrewarm.js";
import type {
SetupFailureCode,
SetupHopperInstallResult,
@@ -143,10 +142,6 @@ export interface SetupHost {
): Promise<Result<void, SetupSkillInstallError>>;
installSkill(clientIds: readonly string[]): Promise<SkillInstallResult>;
doctor(scope?: DoctorScope): Promise<Awaited<ReturnType<typeof runDoctor>>>;
/** Best-effort materialization of the pinned package-runner cache entry
* before the first client start, so a one-time dependency install cannot
* consume a client's MCP startup deadline. Absent hosts skip the step. */
prewarmRegistrationRunner?(): Promise<SetupRegistrationPrewarm>;
}
/** Structured setup outcome carrying remediation instead of prompting. */
export interface SetupResult {
@@ -166,9 +161,6 @@ export interface SetupResult {
readonly code?: SetupFailureCode;
/** Identified resources still retained after finalization; absent after confirmed release. */
readonly cleanup?: AnalysisCleanupObservation | undefined;
/** Best-effort pinned package-runner cache materialization; absent when the
* host offers no prewarm capability or setup finished before finalization. */
readonly prewarm?: SetupRegistrationPrewarm;
}
/** Whether the requested setup actions still need approval or human repair. */