2956 Commits

Author SHA1 Message Date
YeonGyu-Kim
745fd1fbb5 docs: integrate future-betting manifesto into README taglines
Remove separate 'The Bet' sections and weave the multi-model future
vision directly into the existing 'steroids/prison' taglines:

- English: Expanded tagline with model orchestration and future betting
- Korean: '우리가 보는 미래' 섹션 제거, 태그라인에 통합
- Japanese: '私たちが賭ける未来' セクション削除、タグライン統合
- Chinese: '我们押注的未来' 部分删除,整合到标语中

Key message: Models get cheaper/smarter every month. No provider
will dominate. We ride them all. Built for the open market.
2026-02-21 04:34:45 +09:00
YeonGyu-Kim
8938b6349e fix(rebase): restore missing hook export and fix duplicate function in event handler 2026-02-21 04:19:00 +09:00
YeonGyu-Kim
1db26ed114 fix(rebase): restore missing hook export and fix duplicate function in event handler 2026-02-21 04:18:20 +09:00
YeonGyu-Kim
86e3c7d199 docs: add future-betting manifesto to all READMEs and overview
Add 'The Bet' section to all 4 language READMEs (en, ko, ja, zh-cn):
- Models getting cheaper every month
- Models getting smarter every month
- No single provider will dominate the future
- We leverage ALL models, not just Claude
- Architecture gets more valuable as models specialize
- We're building for the open multi-model future

Also update overview.md to move 'Better Than Pure Codex' into
Hephaestus section and add 'Better Than Pure Claude Code' section
with fundamental multi-model advantage explanation.
2026-02-21 04:17:33 +09:00
YeonGyu-Kim
5ae9de0e8e fix: include line number in hashline computation 2026-02-21 04:14:54 +09:00
YeonGyu-Kim
df1a0a59d9 docs: add hyperlinks to IntentGate and Hash-Anchored Edit Tool table rows
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-21 04:11:02 +09:00
YeonGyu-Kim
f260d15632 fix(auto-update): support prerelease versions without numeric suffix in fallback 2026-02-21 04:10:27 +09:00
YeonGyu-Kim
88148fe248 fix(auto-update): treat only explicit semver pins as user-pinned
Fixes #1920

Installer-written exact versions (e.g., oh-my-opencode@3.5.2) were incorrectly treated as user-pinned, blocking auto-updates for all installer users.

Fix isPinned to only block auto-update when pinnedVersion is an explicit semver string (user's intent). Channel tags (latest, beta, next) and bare package name all allow auto-update.

Fix installer fallback to return bare PACKAGE_NAME for stable versions and PACKAGE_NAME@{channel} for prerelease versions, preserving channel tracking.
2026-02-21 04:09:50 +09:00
YeonGyu-Kim
67c2cfddf4 fix(migration): remove non-existent gpt-5.3-codex from MODEL_VERSION_MAP
Fixes #1804, fixes #1962

The migration entry 'gpt-5.2-codex → gpt-5.3-codex' caused the plugin to silently overwrite user configs on every startup with a model that doesn't exist in the OpenAI API. Users explicitly setting gpt-5.2-codex (the correct current model) were forced to revert their config manually every session.
2026-02-21 04:08:44 +09:00
YeonGyu-Kim
880c5e3beb docs: restructure and rewrite all documentation from scratch
Consolidate 12 docs into 8, eliminating ~70% duplicate content.
Fix all broken doc links across 4 README translations.

New structure:
- docs/guide/: overview, installation (with agent-model setup), orchestration
- docs/reference/: features, configuration, cli
- docs/manifesto.md, docs/troubleshooting/ollama.md

Deleted: agent-model-matching, understanding-orchestration-system,
orchestration-guide, category-skill-guide, task-system, cli-guide,
configurations, ultrawork-manifesto, features, ollama-streaming-issue
2026-02-21 04:07:06 +09:00
YeonGyu-Kim
ddadd923de docs: add IntentGate documentation to translated READMEs
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-21 03:59:49 +09:00
YeonGyu-Kim
4ed36438ad docs: add IntentGate feature documentation
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-21 03:59:34 +09:00
YeonGyu-Kim
79d0c69fb7 docs: rewrite README for readability and tone
Rewrote prose for SF engineer voice: shorter sentences, punchier copy,
no em-dashes. Kept all structural elements, badges, testimonials, and
code blocks unchanged.

🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-02-21 03:43:16 +09:00
YeonGyu-Kim
c115880f74 docs: update README tagline, add subscription recommendations, remove warnings
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-02-21 03:33:47 +09:00
YeonGyu-Kim
67f4c7039c test: update model-fallback and chat-headers test expectations
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-02-21 03:33:42 +09:00
YeonGyu-Kim
63ccf2abe0 fix(category-resolver): add kimi to unstable agent detection, check category config model
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-02-21 03:33:37 +09:00
YeonGyu-Kim
9f09f77588 feat(hooks): export json-error-recovery hook
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-02-21 03:33:30 +09:00
YeonGyu-Kim
6153a43c39 fix(hashline-read-enhancer): support plain read output without content tags
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-02-21 03:33:26 +09:00
YeonGyu-Kim
fb4530cafe fix(provider-matching): normalize provider names to lowercase for connectivity checks
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-02-21 03:33:20 +09:00
YeonGyu-Kim
b9442f51da fix(event): remove duplicate dispatchToHooks from merge artifact
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-02-21 03:33:15 +09:00
YeonGyu-Kim
4039fd451f docs: translate README tagline from Korean to English 2026-02-21 03:19:19 +09:00
YeonGyu-Kim
0f30b5068d docs: audit and fix features.md against actual codebase
- Fix all agent models/fallbacks (ground truth: model-requirements.ts)
- Add missing agents: Atlas, Sisyphus-Junior
- Fix Multimodal-Looker tool restrictions (read only, not read/glob/grep)
- Add missing tools: grep, glob, edit, look_at, skill, task system tools
- Add missing commands: /stop-continuation, /handoff
- Remove non-existent hooks: empty-message-sanitizer, background-compaction, grep-output-truncator
- Add 19 undocumented hooks with correct event types
- Fix Claude Code compatibility paths (MCP, commands, skills)
- Remove unverified Data Storage section (todos/transcripts)
- Add features.md link to README Highlights
2026-02-21 03:19:19 +09:00
JiHongKim98
02017a1b70 fix(tools): address PR review feedback from cubic
- Use tool.schema.enum() for output_mode instead of generic string()
- Remove unsafe type assertion for output_mode
- Fix files_with_matches mode returning empty results by adding
  filesOnly flag to parseOutput for --files-with-matches rg output
2026-02-21 03:17:48 +09:00
YeonGyu-Kim
032d7fd139
Merge pull request #2010 from code-yeongyu/fix/remove-quotio-provider
fix(model-requirements): remove custom quotio provider, restore standard providers
2026-02-21 03:14:51 +09:00
github-actions[bot]
2a7d6ff23e
@JiHongKim98 has signed the CLA in code-yeongyu/oh-my-opencode#2009 2026-02-20 18:11:10 +00:00
YeonGyu-Kim
97a48995b2 test(cli): align librarian fallback expectations with actual resolution 2026-02-21 03:10:29 +09:00
YeonGyu-Kim
9059a4fdbc fix(model-requirements): remove custom quotio provider, restore standard providers 2026-02-21 03:03:57 +09:00
JiHongKim98
dafdca217b fix(tools): throttle ripgrep CPU usage with thread limits and concurrency control
- Add --threads=4 flag to all rg invocations (grep and glob)
- Add global semaphore limiting concurrent rg processes to 2
- Reduce grep timeout from 300s to 60s (matches tool description)
- Reduce max output from 10MB to 256KB (prevents excessive memory usage)
- Add output_mode parameter (content/files_with_matches/count)
- Add head_limit parameter for incremental result fetching

Closes #2008

Ref: #674, #1722
2026-02-21 03:02:01 +09:00
YeonGyu-Kim
481106a12e Merge branch 'pr-1959' into dev
# Conflicts:
#	src/hooks/index.ts
#	src/plugin/event.ts
#	src/tools/delegate-task/sync-task.ts
2026-02-21 02:49:39 +09:00
YeonGyu-Kim
4c13c96cf7
Merge pull request #2001 from code-yeongyu/fix/bug-7-14-model-fallback
fix(model-fallback): add gpt-5-nano to multimodal-looker chain, remove librarian hardcoding
2026-02-21 02:47:37 +09:00
YeonGyu-Kim
f0ff232b43 fix(model-fallback): add gpt-5-nano to multimodal-looker chain, remove librarian hardcoding
- BUG-7: Add gpt-5-nano as final fallback in multimodal-looker model requirements
- BUG-14: Remove hardcoded LIBRARIAN_MODEL, let librarian resolve through normal fallback chain
- Update snapshots and tests to reflect new fallback behavior
2026-02-21 02:47:19 +09:00
YeonGyu-Kim
13196aedb7 fix: resolve post-rebase runtime fallback merge leftovers 2026-02-21 02:45:48 +09:00
YeonGyu-Kim
aa1c8a4626
Merge pull request #1999 from code-yeongyu/fix/bug-3-6-15-tmux-deferred
fix(tmux-deferred): add TTL/max-size guards, null-state exit, and spawn atomicity
2026-02-21 02:43:41 +09:00
YeonGyu-Kim
148687c7fe fix: remove unused spawnFailed variable (dead code) 2026-02-21 02:43:24 +09:00
YeonGyu-Kim
52f62c3fda fix(tmux-deferred): add TTL/max-size guards, null-state exit, and spawn atomicity
- BUG-3: Add DEFERRED_SESSION_TTL_MS (5min) and MAX_DEFERRED_QUEUE_SIZE (20) to prevent unbounded growth
- BUG-15: Track consecutive null window states, stop polling after 3 nulls to prevent immortal loop
- BUG-6: Track close+spawn failure and re-queue deferred session for retry
2026-02-21 02:43:24 +09:00
YeonGyu-Kim
8885f677c2
Merge pull request #2002 from code-yeongyu/fix/bug-19-20-skill-command
fix(skill/command): add user_message param to skill tool, fix command priority order
2026-02-21 02:43:07 +09:00
YeonGyu-Kim
945c7e658a fix(skill/command): add user_message param to skill tool, fix command priority order
- BUG-20: Add optional user_message parameter to skill tool for command arguments
- BUG-19: Reorder command discovery: user > project > opencode-project > opencode-global > builtin
- Update AGENTS.md to reflect slashcommand removal and skill tool changes
2026-02-21 02:42:51 +09:00
YeonGyu-Kim
7fa22aebdf
Merge pull request #1998 from code-yeongyu/fix/bug-1-ultrawork-db-crash
fix(ultrawork-db): handle SQLite exceptions in deferred model override
2026-02-21 02:42:34 +09:00
IYODA Atsushi
a8e3e1ea01 fix(test): correct browserProvider assertion to match actual behavior
When browserProvider is not set, agent-browser skill should NOT resolve.
Test assertions were inverted — expected 'Skills not found' but asserted the opposite.
2026-02-21 02:42:20 +09:00
IYODA Atsushi
fcaaa11a06 fix(runtime-fallback): detect type:error message parts for fallback progression 2026-02-21 02:42:20 +09:00
IYODA Atsushi
f82e65fdd1 docs(runtime-fallback): clarify timeout_seconds=0 disables auto-retry detection 2026-02-21 02:42:20 +09:00
Youngbin Kim
eef80a4e23 chore: regenerate JSON schema after merge 2026-02-21 02:42:20 +09:00
YeonGyu-Kim
695b8a16b8 fix(ultrawork-db): wrap microtask/setTimeout callbacks in try/catch/finally
Unhandled SQLite exceptions (SQLITE_BUSY, database locked, etc.) in queueMicrotask/setTimeout callbacks could crash the entire process. Added try/catch/finally to ensure db.close() is always called and errors are logged instead of crashing.
2026-02-21 02:42:16 +09:00
Youngbin Kim
b6456faea8 refactor(runtime-fallback): decompose index.ts into focused modules
Split 1021-line index.ts into 10 focused modules per project conventions.

New structure:

- error-classifier.ts: error analysis with dynamic status code extraction

- agent-resolver.ts: agent detection utilities

- fallback-state.ts: state management and cooldown logic

- fallback-models.ts: model resolution from config

- auto-retry.ts: retry helpers with mutual recursion support

- event-handler.ts: session lifecycle events

- message-update-handler.ts: message.updated event handling

- chat-message-handler.ts: chat message interception

- hook.ts: main factory with proper cleanup

- types.ts: updated with HookDeps interface

- index.ts: 2-line barrel re-export

Embedded fixes:

- Fix setInterval leak with .unref()

- Replace require() with ESM import

- Add log warning on invalid model format

- Update sessionLastAccess on normal traffic

- Make extractStatusCode dynamic from config

- Remove unused SessionErrorInfo type

All 61 tests pass without modification.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-21 02:42:12 +09:00
Youngbin Kim
22dda6178a docs(config): fix runtime fallback documentation
Remove duplicate Runtime Fallback section from configurations.md.

Fix max_fallback_attempts range from (1-10) to (1-20) to match schema.

Update retry_on_errors default to include 400 status code.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-21 02:42:12 +09:00
YeonGyu-Kim
2dc690d1dc
Merge pull request #2000 from code-yeongyu/fix/bug-4-copilot-n-plus-1
fix(chat-headers): cache internal marker lookups to prevent N+1 API calls
2026-02-21 02:42:04 +09:00
YeonGyu-Kim
cd5e071eda fix(chat-headers): cache internal marker lookups to prevent N+1 API calls
- BUG-4: Add in-memory cache for hasInternalMarker() results with 1000-entry limit
- Eliminates redundant session.message API calls for copilot marker detection
2026-02-21 02:41:46 +09:00
Youngbin Kim
c54da1e670 docs(config): correct retry_on_errors default in schema comment
Update schema comment to match actual code default [400, 429, 503, 529].

Previously the comment omitted 400 which is included in the code default.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-21 02:41:43 +09:00
YeonGyu-Kim
21850face7
Merge pull request #2003 from code-yeongyu/fix/bug-21-indent-restore
fix(hashline-edit): restore leading indentation for first line in replace_lines
2026-02-21 02:41:33 +09:00
YeonGyu-Kim
07fa0560c2 fix(hashline-edit): restore leading indentation for first line in replace_lines
- BUG-21: Apply restoreLeadingIndent to first entry of replace_lines, matching set_line behavior
- Update test to verify indentation preservation
2026-02-21 02:41:21 +09:00