Merge pull request #3050 from code-yeongyu/fix/p0-4-tmux-default-isolation
fix: revert tmux default isolation to inline
This commit is contained in:
@@ -6002,7 +6002,7 @@
|
|||||||
"minimum": 20
|
"minimum": 20
|
||||||
},
|
},
|
||||||
"isolation": {
|
"isolation": {
|
||||||
"default": "session",
|
"default": "inline",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": [
|
"enum": [
|
||||||
"inline",
|
"inline",
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
/// <reference types="bun-types" />
|
||||||
|
|
||||||
|
import { describe, expect, test } from "bun:test"
|
||||||
|
|
||||||
|
import { TmuxConfigSchema, TmuxIsolationSchema } from "./tmux"
|
||||||
|
|
||||||
|
describe("TmuxIsolationSchema", () => {
|
||||||
|
describe('#given all supported isolation values', () => {
|
||||||
|
test('#when parsed #then it accepts inline, window, and session', () => {
|
||||||
|
expect(TmuxIsolationSchema.parse("inline")).toBe("inline")
|
||||||
|
expect(TmuxIsolationSchema.parse("window")).toBe("window")
|
||||||
|
expect(TmuxIsolationSchema.parse("session")).toBe("session")
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe("TmuxConfigSchema", () => {
|
||||||
|
describe('#given tmux isolation is omitted', () => {
|
||||||
|
test('#when parsed #then default isolation is inline', () => {
|
||||||
|
const result = TmuxConfigSchema.parse({})
|
||||||
|
|
||||||
|
expect(result.isolation).toBe("inline")
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
@@ -20,7 +20,7 @@ export const TmuxConfigSchema = z.object({
|
|||||||
main_pane_size: z.number().min(20).max(80).default(60),
|
main_pane_size: z.number().min(20).max(80).default(60),
|
||||||
main_pane_min_width: z.number().min(40).default(120),
|
main_pane_min_width: z.number().min(40).default(120),
|
||||||
agent_pane_min_width: z.number().min(20).default(40),
|
agent_pane_min_width: z.number().min(20).default(40),
|
||||||
isolation: TmuxIsolationSchema.default("session"),
|
isolation: TmuxIsolationSchema.default("inline"),
|
||||||
})
|
})
|
||||||
|
|
||||||
export type TmuxConfig = z.infer<typeof TmuxConfigSchema>
|
export type TmuxConfig = z.infer<typeof TmuxConfigSchema>
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/// <reference types="bun-types" />
|
||||||
|
|
||||||
|
import { describe, expect, test } from "bun:test"
|
||||||
|
|
||||||
|
import { TmuxConfigSchema } from "./config/schema/tmux"
|
||||||
|
import { createRuntimeTmuxConfig } from "./create-runtime-tmux-config"
|
||||||
|
|
||||||
|
describe("createRuntimeTmuxConfig", () => {
|
||||||
|
describe("#given tmux isolation is omitted from plugin config", () => {
|
||||||
|
test("#when runtime tmux config is created #then it matches the schema default", () => {
|
||||||
|
const runtimeTmuxConfig = createRuntimeTmuxConfig({})
|
||||||
|
const schemaDefault = TmuxConfigSchema.parse({}).isolation
|
||||||
|
|
||||||
|
expect(runtimeTmuxConfig.isolation).toBe(schemaDefault)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
import type { OhMyOpenCodeConfig, TmuxConfig } from "./config"
|
||||||
|
import { TmuxConfigSchema } from "./config/schema/tmux"
|
||||||
|
|
||||||
|
export function createRuntimeTmuxConfig(pluginConfig: { tmux?: OhMyOpenCodeConfig["tmux"] }): TmuxConfig {
|
||||||
|
return TmuxConfigSchema.parse(pluginConfig.tmux ?? {})
|
||||||
|
}
|
||||||
+2
-8
@@ -5,6 +5,7 @@ import type { HookName } from "./config"
|
|||||||
|
|
||||||
import { createHooks } from "./create-hooks"
|
import { createHooks } from "./create-hooks"
|
||||||
import { createManagers } from "./create-managers"
|
import { createManagers } from "./create-managers"
|
||||||
|
import { createRuntimeTmuxConfig } from "./create-runtime-tmux-config"
|
||||||
import { createTools } from "./create-tools"
|
import { createTools } from "./create-tools"
|
||||||
import { createPluginInterface } from "./plugin-interface"
|
import { createPluginInterface } from "./plugin-interface"
|
||||||
import { createPluginDispose, type PluginDispose } from "./plugin-dispose"
|
import { createPluginDispose, type PluginDispose } from "./plugin-dispose"
|
||||||
@@ -45,14 +46,7 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => {
|
|||||||
|
|
||||||
const firstMessageVariantGate = createFirstMessageVariantGate()
|
const firstMessageVariantGate = createFirstMessageVariantGate()
|
||||||
|
|
||||||
const tmuxConfig = {
|
const tmuxConfig = createRuntimeTmuxConfig(pluginConfig)
|
||||||
enabled: pluginConfig.tmux?.enabled ?? false,
|
|
||||||
layout: pluginConfig.tmux?.layout ?? "main-vertical",
|
|
||||||
main_pane_size: pluginConfig.tmux?.main_pane_size ?? 60,
|
|
||||||
main_pane_min_width: pluginConfig.tmux?.main_pane_min_width ?? 120,
|
|
||||||
agent_pane_min_width: pluginConfig.tmux?.agent_pane_min_width ?? 40,
|
|
||||||
isolation: pluginConfig.tmux?.isolation ?? "session",
|
|
||||||
}
|
|
||||||
|
|
||||||
const modelCacheState = createModelCacheState()
|
const modelCacheState = createModelCacheState()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user