- 品牌替换:OpenCode/opencode → AirCoding/aircoding(16+ 文件) - Logo ASCII art:修复 left/right 行数不匹配导致的启动崩溃 - 启动诊断:添加 OPENCODE_PRINT_TIMING 计时探针 - dev 模式默认 --pure 跳过外部插件加载 - AGENTS.md 模板:追加 AirCoding 多 Agent 专项段落 - architect prompt + plugin:强化 AGENTS.md 产出验证
21 lines
747 B
TypeScript
21 lines
747 B
TypeScript
import type { WorkspaceV2 } from "@opencode-ai/core/workspace"
|
|
import { Flag } from "@opencode-ai/core/flag/flag"
|
|
import { Effect, Scope } from "effect"
|
|
|
|
/**
|
|
* Scoped override for `Flag.OPENCODE_WORKSPACE_ID`. Saves the previous value
|
|
* on entry and restores it via finalizer when the surrounding scope closes —
|
|
* preserves the original try/finally semantics regardless of test outcome.
|
|
*/
|
|
export function withFixedWorkspaceID(id: WorkspaceV2.ID): Effect.Effect<void, never, Scope.Scope> {
|
|
return Effect.gen(function* () {
|
|
const previous = Flag.OPENCODE_WORKSPACE_ID
|
|
Flag.OPENCODE_WORKSPACE_ID = id
|
|
yield* Effect.addFinalizer(() =>
|
|
Effect.sync(() => {
|
|
Flag.OPENCODE_WORKSPACE_ID = previous
|
|
}),
|
|
)
|
|
})
|
|
}
|