feat: remove uimode/parallel from settings (#206)

This commit is contained in:
Charles Packer
2025-12-14 14:25:25 -08:00
committed by GitHub
parent 13b4100311
commit 2936b57ffc
6 changed files with 20 additions and 34 deletions

View File

@@ -168,7 +168,7 @@ export async function handleHeadlessCommand(
updateArgs, updateArgs,
forceNew, forceNew,
skillsDirectory, skillsDirectory,
settings.parallelToolCalls, true, // parallelToolCalls always enabled
sleeptimeFlag ?? settings.enableSleeptime, sleeptimeFlag ?? settings.enableSleeptime,
specifiedSystem, specifiedSystem,
initBlocks, initBlocks,
@@ -213,7 +213,7 @@ export async function handleHeadlessCommand(
updateArgs, updateArgs,
false, false,
skillsDirectory, skillsDirectory,
settings.parallelToolCalls, true, // parallelToolCalls always enabled
sleeptimeFlag ?? settings.enableSleeptime, sleeptimeFlag ?? settings.enableSleeptime,
specifiedSystem, specifiedSystem,
undefined, undefined,

View File

@@ -597,7 +597,7 @@ async function main() {
updateArgs, updateArgs,
freshBlocks, // Only create new blocks if --fresh-blocks passed freshBlocks, // Only create new blocks if --fresh-blocks passed
skillsDirectory, skillsDirectory,
settings.parallelToolCalls, true, // parallelToolCalls always enabled
sleeptimeFlag ?? settings.enableSleeptime, sleeptimeFlag ?? settings.enableSleeptime,
system, system,
initBlocks, initBlocks,
@@ -648,7 +648,7 @@ async function main() {
updateArgs, updateArgs,
false, // Don't force new blocks when auto-creating (reuse shared blocks) false, // Don't force new blocks when auto-creating (reuse shared blocks)
skillsDirectory, skillsDirectory,
settings.parallelToolCalls, true, // parallelToolCalls always enabled
sleeptimeFlag ?? settings.enableSleeptime, sleeptimeFlag ?? settings.enableSleeptime,
system, system,
undefined, undefined,

View File

@@ -6,13 +6,9 @@ import { join } from "node:path";
import type { PermissionRules } from "./permissions/types"; import type { PermissionRules } from "./permissions/types";
import { exists, mkdir, readFile, writeFile } from "./utils/fs.js"; import { exists, mkdir, readFile, writeFile } from "./utils/fs.js";
export type UIMode = "simple" | "rich";
export interface Settings { export interface Settings {
uiMode: UIMode;
lastAgent: string | null; lastAgent: string | null;
tokenStreaming: boolean; tokenStreaming: boolean;
parallelToolCalls: boolean;
enableSleeptime: boolean; enableSleeptime: boolean;
globalSharedBlockIds: Record<string, string>; globalSharedBlockIds: Record<string, string>;
permissions?: PermissionRules; permissions?: PermissionRules;
@@ -34,10 +30,8 @@ export interface LocalProjectSettings {
} }
const DEFAULT_SETTINGS: Settings = { const DEFAULT_SETTINGS: Settings = {
uiMode: "simple",
lastAgent: null, lastAgent: null,
tokenStreaming: false, tokenStreaming: false,
parallelToolCalls: true,
enableSleeptime: false, enableSleeptime: false,
globalSharedBlockIds: {}, globalSharedBlockIds: {},
}; };

View File

@@ -6,10 +6,7 @@ import { join } from "node:path";
import type { PermissionRules } from "./permissions/types"; import type { PermissionRules } from "./permissions/types";
import { exists, mkdir, readFile, writeFile } from "./utils/fs.js"; import { exists, mkdir, readFile, writeFile } from "./utils/fs.js";
export type UIMode = "simple" | "rich";
export interface Settings { export interface Settings {
uiMode: UIMode;
lastAgent: string | null; lastAgent: string | null;
tokenStreaming: boolean; tokenStreaming: boolean;
globalSharedBlockIds: Record<string, string>; // label -> blockId mapping (persona, human; style moved to project settings) globalSharedBlockIds: Record<string, string>; // label -> blockId mapping (persona, human; style moved to project settings)
@@ -23,7 +20,6 @@ export interface ProjectSettings {
} }
const DEFAULT_SETTINGS: Settings = { const DEFAULT_SETTINGS: Settings = {
uiMode: "simple",
lastAgent: null, lastAgent: null,
tokenStreaming: false, tokenStreaming: false,
globalSharedBlockIds: {}, globalSharedBlockIds: {},

View File

@@ -255,7 +255,7 @@ test("Save permission preserves other settings fields", async () => {
await Bun.write( await Bun.write(
settingsPath, settingsPath,
JSON.stringify({ JSON.stringify({
uiMode: "rich", tokenStreaming: true,
lastAgent: "agent-123", lastAgent: "agent-123",
permissions: { permissions: {
allow: [], allow: [],
@@ -268,7 +268,7 @@ test("Save permission preserves other settings fields", async () => {
const file = Bun.file(settingsPath); const file = Bun.file(settingsPath);
const settings = await file.json(); const settings = await file.json();
expect(settings.uiMode).toBe("rich"); expect(settings.tokenStreaming).toBe(true);
expect(settings.lastAgent).toBe("agent-123"); expect(settings.lastAgent).toBe("agent-123");
expect(settings.permissions.allow).toContain("Bash(ls:*)"); expect(settings.permissions.allow).toContain("Bash(ls:*)");
}); });
@@ -298,7 +298,7 @@ test("Load permissions handles missing permissions field", async () => {
await Bun.write( await Bun.write(
settingsPath, settingsPath,
JSON.stringify({ JSON.stringify({
uiMode: "rich", tokenStreaming: true,
// No permissions field // No permissions field
}), }),
); );

View File

@@ -45,7 +45,6 @@ describe("Settings Manager - Initialization", () => {
// Settings should be accessible immediately after initialization // Settings should be accessible immediately after initialization
const settings = settingsManager.getSettings(); const settings = settingsManager.getSettings();
expect(settings).toBeDefined(); expect(settings).toBeDefined();
expect(settings.uiMode).toBeDefined();
expect(typeof settings.tokenStreaming).toBe("boolean"); expect(typeof settings.tokenStreaming).toBe("boolean");
expect(settings.globalSharedBlockIds).toBeDefined(); expect(settings.globalSharedBlockIds).toBeDefined();
expect(typeof settings.globalSharedBlockIds).toBe("object"); expect(typeof settings.globalSharedBlockIds).toBe("object");
@@ -55,7 +54,6 @@ describe("Settings Manager - Initialization", () => {
// First initialize and set some settings // First initialize and set some settings
await settingsManager.initialize(); await settingsManager.initialize();
settingsManager.updateSettings({ settingsManager.updateSettings({
uiMode: "rich",
tokenStreaming: true, tokenStreaming: true,
lastAgent: "agent-123", lastAgent: "agent-123",
}); });
@@ -68,7 +66,6 @@ describe("Settings Manager - Initialization", () => {
await settingsManager.initialize(); await settingsManager.initialize();
const settings = settingsManager.getSettings(); const settings = settingsManager.getSettings();
expect(settings.uiMode).toBe("rich");
expect(settings.tokenStreaming).toBe(true); expect(settings.tokenStreaming).toBe(true);
expect(settings.lastAgent).toBe("agent-123"); expect(settings.lastAgent).toBe("agent-123");
}); });
@@ -110,35 +107,35 @@ describe("Settings Manager - Global Settings", () => {
}); });
test("Get specific setting", () => { test("Get specific setting", () => {
settingsManager.updateSettings({ uiMode: "rich" }); settingsManager.updateSettings({ tokenStreaming: true });
const uiMode = settingsManager.getSetting("uiMode"); const tokenStreaming = settingsManager.getSetting("tokenStreaming");
expect(uiMode).toBe("rich"); expect(tokenStreaming).toBe(true);
}); });
test("Update single setting", () => { test("Update single setting", () => {
// Verify initial state first // Verify initial state first
const initialSettings = settingsManager.getSettings(); const initialSettings = settingsManager.getSettings();
const initialUiMode = initialSettings.uiMode; const initialLastAgent = initialSettings.lastAgent;
settingsManager.updateSettings({ tokenStreaming: true }); settingsManager.updateSettings({ tokenStreaming: true });
const settings = settingsManager.getSettings(); const settings = settingsManager.getSettings();
expect(settings.tokenStreaming).toBe(true); expect(settings.tokenStreaming).toBe(true);
expect(settings.uiMode).toBe(initialUiMode); // Other settings unchanged expect(settings.lastAgent).toBe(initialLastAgent); // Other settings unchanged
}); });
test("Update multiple settings", () => { test("Update multiple settings", () => {
settingsManager.updateSettings({ settingsManager.updateSettings({
uiMode: "rich",
tokenStreaming: true, tokenStreaming: true,
lastAgent: "agent-456", lastAgent: "agent-456",
enableSleeptime: true,
}); });
const settings = settingsManager.getSettings(); const settings = settingsManager.getSettings();
expect(settings.uiMode).toBe("rich");
expect(settings.tokenStreaming).toBe(true); expect(settings.tokenStreaming).toBe(true);
expect(settings.lastAgent).toBe("agent-456"); expect(settings.lastAgent).toBe("agent-456");
expect(settings.enableSleeptime).toBe(true);
}); });
test("Update global shared block IDs", () => { test("Update global shared block IDs", () => {
@@ -187,7 +184,7 @@ describe("Settings Manager - Global Settings", () => {
test("Settings persist to disk", async () => { test("Settings persist to disk", async () => {
settingsManager.updateSettings({ settingsManager.updateSettings({
uiMode: "rich", tokenStreaming: true,
lastAgent: "agent-789", lastAgent: "agent-789",
}); });
@@ -199,7 +196,7 @@ describe("Settings Manager - Global Settings", () => {
await settingsManager.initialize(); await settingsManager.initialize();
const settings = settingsManager.getSettings(); const settings = settingsManager.getSettings();
expect(settings.uiMode).toBe("rich"); expect(settings.tokenStreaming).toBe(true);
expect(settings.lastAgent).toBe("agent-789"); expect(settings.lastAgent).toBe("agent-789");
}); });
}); });
@@ -452,7 +449,7 @@ describe("Settings Manager - Reset", () => {
test("Can reinitialize after reset", async () => { test("Can reinitialize after reset", async () => {
await settingsManager.initialize(); await settingsManager.initialize();
settingsManager.updateSettings({ uiMode: "rich" }); settingsManager.updateSettings({ tokenStreaming: true });
// Wait for persist // Wait for persist
await new Promise((resolve) => setTimeout(resolve, 100)); await new Promise((resolve) => setTimeout(resolve, 100));
@@ -461,7 +458,7 @@ describe("Settings Manager - Reset", () => {
await settingsManager.initialize(); await settingsManager.initialize();
const settings = settingsManager.getSettings(); const settings = settingsManager.getSettings();
expect(settings.uiMode).toBe("rich"); expect(settings.tokenStreaming).toBe(true);
}); });
}); });
@@ -483,7 +480,6 @@ describe("Settings Manager - Edge Cases", () => {
// Should have default values (not corrupt) // Should have default values (not corrupt)
expect(settings).toBeDefined(); expect(settings).toBeDefined();
expect(settings.uiMode).toBeDefined();
expect(settings.tokenStreaming).toBeDefined(); expect(settings.tokenStreaming).toBeDefined();
expect(typeof settings.tokenStreaming).toBe("boolean"); expect(typeof settings.tokenStreaming).toBe("boolean");
}); });
@@ -509,9 +505,9 @@ describe("Settings Manager - Edge Cases", () => {
await settingsManager.initialize(); await settingsManager.initialize();
settingsManager.updateSettings({ settingsManager.updateSettings({
uiMode: "rich",
tokenStreaming: true, tokenStreaming: true,
lastAgent: "agent-1", lastAgent: "agent-1",
enableSleeptime: true,
}); });
// Partial update // Partial update
@@ -520,8 +516,8 @@ describe("Settings Manager - Edge Cases", () => {
}); });
const settings = settingsManager.getSettings(); const settings = settingsManager.getSettings();
expect(settings.uiMode).toBe("rich"); // Preserved
expect(settings.tokenStreaming).toBe(true); // Preserved expect(settings.tokenStreaming).toBe(true); // Preserved
expect(settings.enableSleeptime).toBe(true); // Preserved
expect(settings.lastAgent).toBe("agent-2"); // Updated expect(settings.lastAgent).toBe("agent-2"); // Updated
}); });
}); });