Commit Graph

2802 Commits

Author SHA1 Message Date
YeonGyu-Kim cfae1c8255 docs: restore coding on steroids narrative with future-betting manifesto in all READMEs 2026-02-21 04:54:21 +09:00
YeonGyu-Kim ce55256eaf docs: update all 31 AGENTS.md files with current project state 2026-02-21 04:38:18 +09:00
YeonGyu-Kim 989284ee08 docs: update Korean and Chinese README taglines with future-betting message
Complete the integration of multi-model future vision into all 4 READMEs:
- Korean: Full tagline with orchestration, cheaper/smarter models, open market
- Chinese: Full tagline with model orchestration and future betting

All READMEs now consistently convey: we ride all models, not just Claude.
The future is multi-model orchestration, not picking one winner.
2026-02-21 04:35:14 +09:00
YeonGyu-Kim a492451193 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 99b01b09e5 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 96a9c989aa fix: include line number in hashline computation 2026-02-21 04:14:54 +09:00
YeonGyu-Kim d5e3039035 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 e18f643b18 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 ff2873d777 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 2a54bb2366 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 1ee0a8945f 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 6ad01ea228 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 050b2fb006 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 8f31bfbb00 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 2c3ee36059 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 734e052e42 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 86cc394f4a 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 4924f62f80 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 500497e28a docs: translate README tagline from Korean to English 2026-02-21 03:19:19 +09:00
YeonGyu-Kim cf5c361aaf 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
YeonGyu-Kim c0758ff20c 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] 6881741827 @JiHongKim98 has signed the CLA in code-yeongyu/oh-my-opencode#2009 2026-02-20 18:11:10 +00:00
YeonGyu-Kim 15ae0ff625 test(cli): align librarian fallback expectations with actual resolution 2026-02-21 03:10:29 +09:00
YeonGyu-Kim 8a8d21e7bb fix(model-requirements): remove custom quotio provider, restore standard providers 2026-02-21 03:03:57 +09:00
YeonGyu-Kim 82e4bf07d2 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 bab90584a3 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 3610954f98 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 f08c12c209 fix: resolve post-rebase runtime fallback merge leftovers 2026-02-21 02:45:48 +09:00
YeonGyu-Kim 1882d4fce4 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 ef888a67c7 fix: remove unused spawnFailed variable (dead code) 2026-02-21 02:43:24 +09:00
YeonGyu-Kim b8c6897e15 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 a8efbdca55 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 598dc48d30 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 7bfd0c7ae7 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 e2658b68cd 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 478061c731 fix(runtime-fallback): detect type:error message parts for fallback progression 2026-02-21 02:42:20 +09:00
IYODA Atsushi 4dd05d8c2d docs(runtime-fallback): clarify timeout_seconds=0 disables auto-retry detection 2026-02-21 02:42:20 +09:00
Youngbin Kim 280e4a6a41 chore: regenerate JSON schema after merge 2026-02-21 02:42:20 +09:00
YeonGyu-Kim b17743e50c 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 df990f1174 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 03c0e5acfc 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 7eac2a0825 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 3b8fba99a6 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 bb15a89b6f 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 49853852e7 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 e549d24f6f 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
Youngbin Kim a326c090ba fix(test): revert atlas test to use uiSelectedModel
Revert test name and assertion to original behavior per PR review feedback.

The test now correctly expects Atlas to respect uiSelectedModel instead of using its own fallback chain.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-21 02:40:47 +09:00
Youngbin Kim 90cae149b0 fix(config): allow timeout_seconds to be 0 to disable fallback
Previously, the Zod schema rejected timeout_seconds: 0 due to .min(1).
Now it accepts 0-integer values to allow disabling timeout-based fallback.

- Changed z.number().min(1) to z.number().min(0)
- Updated comment to clarify 0 disables timeout checks
- All tests pass (44 runtime-fallback + 46 schema tests)
- Build successful
2026-02-21 02:40:47 +09:00
Youngbin Kim c3350497c5 feat(runtime-fallback): add timeout toggle for quota retry detection
Make provider auto-retry signal detection respect timeout_seconds setting:
- When timeout_seconds=0, disable quota-based fallback escalation
- Only treat auto-retry signals as errors when timeout is enabled
- Add test to verify behavior when timeout_seconds is disabled
- Update documentation to explain timeout_seconds=0 behavior

This allows users to disable timeout-based fallbacks while keeping
error-based fallback functionality intact.
2026-02-21 02:40:47 +09:00
Youngbin Kim 395b6a48be feat(runtime-fallback): generalize provider auto-retry signal detection
Refactor retry signal detection to be provider-agnostic:
- Replace hardcoded Copilot/OpenAI checks with generic pattern matching
- Detect any provider message containing limit/quota keywords + [retrying in X]
- Add OpenAI pattern: 'usage limit has been reached [retrying in X]'
- Update logging to use generic 'provider' instead of specific names
- Add 'usage limit has been reached' to RETRYABLE_ERROR_PATTERNS

This enables fallback escalation for any provider that signals automatic
retries due to quota/rate limits, not just Copilot and OpenAI.

Closes PR discussion: generalize retry pattern detection
2026-02-21 02:40:47 +09:00