mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-16 18:03:50 +00:00
feat(coding-agent): complete steer()/followUp() migration
- Update settings-manager with steeringMode/followUpMode (migrates old queueMode) - Update sdk.ts to use new mode options - Update settings-selector UI to show both modes - Add Alt+Enter keybind for follow-up messages - Update RPC API: steer/follow_up commands, set_steering_mode/set_follow_up_mode - Update rpc-client with new methods - Delete dead code: queue-mode-selector.ts - Update tests for new API - Update mom/context.ts stubs - Update web-ui example
This commit is contained in:
parent
58c423ba36
commit
3ae02a6849
12 changed files with 173 additions and 106 deletions
|
|
@ -39,7 +39,8 @@ export interface Settings {
|
|||
defaultProvider?: string;
|
||||
defaultModel?: string;
|
||||
defaultThinkingLevel?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh";
|
||||
queueMode?: "all" | "one-at-a-time";
|
||||
steeringMode?: "all" | "one-at-a-time";
|
||||
followUpMode?: "all" | "one-at-a-time";
|
||||
theme?: string;
|
||||
compaction?: CompactionSettings;
|
||||
branchSummary?: BranchSummarySettings;
|
||||
|
|
@ -125,13 +126,24 @@ export class SettingsManager {
|
|||
}
|
||||
try {
|
||||
const content = readFileSync(path, "utf-8");
|
||||
return JSON.parse(content);
|
||||
const settings = JSON.parse(content);
|
||||
return SettingsManager.migrateSettings(settings);
|
||||
} catch (error) {
|
||||
console.error(`Warning: Could not read settings file ${path}: ${error}`);
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
/** Migrate old settings format to new format */
|
||||
private static migrateSettings(settings: Record<string, unknown>): Settings {
|
||||
// Migrate queueMode -> steeringMode
|
||||
if ("queueMode" in settings && !("steeringMode" in settings)) {
|
||||
settings.steeringMode = settings.queueMode;
|
||||
delete settings.queueMode;
|
||||
}
|
||||
return settings as Settings;
|
||||
}
|
||||
|
||||
private loadProjectSettings(): Settings {
|
||||
if (!this.projectSettingsPath || !existsSync(this.projectSettingsPath)) {
|
||||
return {};
|
||||
|
|
@ -139,7 +151,8 @@ export class SettingsManager {
|
|||
|
||||
try {
|
||||
const content = readFileSync(this.projectSettingsPath, "utf-8");
|
||||
return JSON.parse(content);
|
||||
const settings = JSON.parse(content);
|
||||
return SettingsManager.migrateSettings(settings);
|
||||
} catch (error) {
|
||||
console.error(`Warning: Could not read project settings file: ${error}`);
|
||||
return {};
|
||||
|
|
@ -204,12 +217,21 @@ export class SettingsManager {
|
|||
this.save();
|
||||
}
|
||||
|
||||
getQueueMode(): "all" | "one-at-a-time" {
|
||||
return this.settings.queueMode || "one-at-a-time";
|
||||
getSteeringMode(): "all" | "one-at-a-time" {
|
||||
return this.settings.steeringMode || "one-at-a-time";
|
||||
}
|
||||
|
||||
setQueueMode(mode: "all" | "one-at-a-time"): void {
|
||||
this.globalSettings.queueMode = mode;
|
||||
setSteeringMode(mode: "all" | "one-at-a-time"): void {
|
||||
this.globalSettings.steeringMode = mode;
|
||||
this.save();
|
||||
}
|
||||
|
||||
getFollowUpMode(): "all" | "one-at-a-time" {
|
||||
return this.settings.followUpMode || "one-at-a-time";
|
||||
}
|
||||
|
||||
setFollowUpMode(mode: "all" | "one-at-a-time"): void {
|
||||
this.globalSettings.followUpMode = mode;
|
||||
this.save();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue