From 07c89f009132cc7d587be1801f6a06d4ca4c4e18 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Sat, 21 Feb 2026 04:54:21 +0900 Subject: [PATCH] docs: restore coding on steroids narrative with future-betting manifesto in all READMEs --- README.ja.md | 12 +++++++----- README.zh-cn.md | 10 ++++++---- src/cli/run/events.test.ts | 13 +------------ .../executor.test.ts | 14 +++++++------- 4 files changed, 21 insertions(+), 28 deletions(-) diff --git a/README.ja.md b/README.ja.md index 3cf49d24e..45845a5c0 100644 --- a/README.ja.md +++ b/README.ja.md @@ -32,9 +32,9 @@ -> Anthropicはあなたを閉じ込めたがっています。Claude Codeは素敵な牢獄ですが、それでも牢獄には変わりありません。 +> これはステロイドを打ったコーディングです。一つのモデルのステロイドじゃない——薬局丸ごとです。 > -> 私たちは囲い込みをしません。Claudeでオーケストレーションし、GPTで推論し、Kimiでスピードを出し、Geminiでビジョンを処理する。未来は一つの勝者を選ぶことではなく、すべてをオーケストレーションすることだ。モデルはどんどん安くなり、どんどん賢くなる。特定のプロバイダーが独占することはない。私たちはその開かれた市場のために構築している。 +> Claudeでオーケストレーションし、GPTで推論し、Kimiでスピードを出し、Geminiでビジョンを処理する。モデルはどんどん安くなり、どんどん賢くなる。特定のプロバイダーが独占することはない。私たちはその開かれた市場のために構築している。Anthropicの牢獄は素敵だ。だが、私たちはそこに住まない。
@@ -79,11 +79,13 @@ # Oh My OpenCode -Claude Code、Codex、数々のOSSモデルに振り回されていませんか。ワークフローを設定し、エージェントをデバッグする毎日に疲れているでしょう。 +最初はこれを「Claude Codeにステロイドを打ったもの」と呼んでいました。それは過小評価でした。 -私たちがその泥臭い作業をすべてやっておきました。すべてをテストし、実際に機能するものだけを残しました。 +一つのモデルに薬を盛るのではありません。カルテルを動かすんです。Claude、GPT、Kimi、Gemini——それぞれが得意なことを、並列で、止まらずに。モデルは毎月安くなっており、どのプロバイダーも独占できません。私たちはすでにその世界に生きています。 -OmOをインストールして、`ultrawork`とタイプしてください。それだけです。 +その泥臭い作業をすべてやっておきました。すべてをテストし、実際に機能するものだけを残しました。 + +OmOをインストールして、`ultrawork`とタイプしてください。狂ったようにコーディングしてください。 ## インストール diff --git a/README.zh-cn.md b/README.zh-cn.md index a6962f618..f03163a4c 100644 --- a/README.zh-cn.md +++ b/README.zh-cn.md @@ -32,9 +32,9 @@
-> Anthropic 想把你锁在他们的生态里。Claude Code 是个漂亮的牢笼,但依然是牢笼。 +> 这是类固醇式编程。不是一个模型的类固醇——而是整个药库。 > -> 我们不玩那种封闭的花招。我们用 Claude 做编排,用 GPT 做推理,用 Kimi 提速度,用 Gemini 处理视觉。未来不是押注一个赢家,而是编排所有模型。模型正在变得越来越便宜,越来越聪明。没有一个提供商能够垄断。我们正在为那个开放的市场而构建。 +> 用 Claude 做编排,用 GPT 做推理,用 Kimi 提速度,用 Gemini 处理视觉。模型正在变得越来越便宜,越来越聪明。没有一个提供商能够垄断。我们正在为那个开放的市场而构建。Anthropic 的牢笼很漂亮。但我们不住那。
@@ -79,11 +79,13 @@ # Oh My OpenCode -你是不是还在不同的模型之间(Claude Code、Codex、各种开源模型)来回切换?还在死磕工作流配置?还在给 Agent 修 Bug? +我们最初把这叫做“给 Claude Code 打类固醇”。那是低估了它。 + +不是只给一个模型打药。我们在运营一个联合体。Claude、GPT、Kimi、Gemini——各司其职,并行运转,永不停歇。模型每个月都在变便宜,没有任何提供商能够垄断。我们已经活在那个世界里了。 脏活累活我们替你干了。我们测试了一切,只留下了真正有用的。 -安装 OmO。敲下 `ultrawork`。完事。 +安装 OmO。敲下 `ultrawork`。疯狂地写代码吧。 diff --git a/src/cli/run/events.test.ts b/src/cli/run/events.test.ts index d777ba54c..334d518ef 100644 --- a/src/cli/run/events.test.ts +++ b/src/cli/run/events.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect, spyOn } from "bun:test" -import { createEventState, serializeError, type EventState } from "./events" +import { createEventState, processEvents, serializeError, type EventState } from "./events" import type { RunContext, EventPayload } from "./types" const createMockContext = (sessionID: string = "test-session"): RunContext => ({ @@ -99,7 +99,6 @@ describe("event handling", () => { } const events = toAsyncIterable([payload]) - const { processEvents } = await import("./events") // when await processEvents(ctx, events, state) @@ -121,7 +120,6 @@ describe("event handling", () => { } const events = toAsyncIterable([payload]) - const { processEvents } = await import("./events") // when await processEvents(ctx, events, state) @@ -144,7 +142,6 @@ describe("event handling", () => { } const events = toAsyncIterable([payload]) - const { processEvents } = await import("./events") // when await processEvents(ctx, events, state) @@ -164,7 +161,6 @@ describe("event handling", () => { } const events = toAsyncIterable([payload]) - const { processEvents } = await import("./events") // when await processEvents(ctx, events, state) @@ -184,7 +180,6 @@ describe("event handling", () => { } const events = toAsyncIterable([payload]) - const { processEvents } = await import("./events") // when await processEvents(ctx, events, state) @@ -207,7 +202,6 @@ describe("event handling", () => { } const events = toAsyncIterable([payload]) - const { processEvents } = await import("./events") // when await processEvents(ctx, events, state) @@ -229,7 +223,6 @@ describe("event handling", () => { } const events = toAsyncIterable([payload]) - const { processEvents } = await import("./events") //#when await processEvents(ctx, events, state) @@ -251,7 +244,6 @@ describe("event handling", () => { } const events = toAsyncIterable([payload]) - const { processEvents } = await import("./events") // when await processEvents(ctx, events, state) @@ -275,7 +267,6 @@ describe("event handling", () => { } const events = toAsyncIterable([payload]) - const { processEvents } = await import("./events") // when await processEvents(ctx, events, state) @@ -299,7 +290,6 @@ describe("event handling", () => { } const events = toAsyncIterable([payload]) - const { processEvents } = await import("./events") // when await processEvents(ctx, events, state) @@ -328,7 +318,6 @@ describe("event handling", () => { } const events = toAsyncIterable([payload]) - const { processEvents } = await import("./events") // when await processEvents(ctx, events, state) diff --git a/src/hooks/anthropic-context-window-limit-recovery/executor.test.ts b/src/hooks/anthropic-context-window-limit-recovery/executor.test.ts index 8efb76de9..cc575e189 100644 --- a/src/hooks/anthropic-context-window-limit-recovery/executor.test.ts +++ b/src/hooks/anthropic-context-window-limit-recovery/executor.test.ts @@ -11,17 +11,17 @@ interface FakeTimeouts { restore: () => void } +// Capture the real implementations at module load time, before any test can patch them. +// This ensures restore() always returns to the true originals regardless of test execution order. +const TRUE_ORIGINAL_SET_TIMEOUT = globalThis.setTimeout +const TRUE_ORIGINAL_CLEAR_TIMEOUT = globalThis.clearTimeout + function createFakeTimeouts(): FakeTimeouts { let now = 0 let nextId = 1 const timers = new Map() const cleared = new Set() - const original = { - setTimeout: globalThis.setTimeout, - clearTimeout: globalThis.clearTimeout, - } - const normalizeDelay = (delay?: number) => { if (typeof delay !== "number" || !Number.isFinite(delay)) return 0 return delay < 0 ? 0 : delay @@ -68,8 +68,8 @@ function createFakeTimeouts(): FakeTimeouts { } const restore = () => { - globalThis.setTimeout = original.setTimeout - globalThis.clearTimeout = original.clearTimeout + globalThis.setTimeout = TRUE_ORIGINAL_SET_TIMEOUT + globalThis.clearTimeout = TRUE_ORIGINAL_CLEAR_TIMEOUT } return { advanceBy, restore }