feat: remove uimode/parallel from settings (#206)
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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: {},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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: {},
|
||||||
|
|||||||
@@ -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
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -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
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user