Skip to content
This repository was archived by the owner on Apr 17, 2026. It is now read-only.

Commit c6de52e

Browse files
frankxairuvnet
andcommitted
merge: sync with upstream/dev (oh-my-opencode v3.14.0+)
Merge 3185 upstream commits from code-yeongyu/oh-my-opencode dev branch. Accept upstream structural refactors while preserving Arcanea branding in package.json. Arcanea agent overlay files preserved in src/agents/arcanea/. Resolved conflicts: - package.json: keep Arcanea name/URLs, accept upstream deps/version - src/agents/: accept upstream restructure (utils.ts deleted, builtin-agents.ts added) - src/config/schema.ts: accept modular schema/ directory restructure - src/shared/config-path.ts: removed (upstream deleted, functionality moved) - src/tools/lsp/utils.ts: removed (upstream deleted, functionality split) Co-Authored-By: claude-flow <ruv@ruv.net>
2 parents aeb1168 + ab0b084 commit c6de52e

1,730 files changed

Lines changed: 246630 additions & 46410 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,13 @@ body:
1414
label: Prerequisites
1515
description: Please confirm the following before submitting
1616
options:
17+
- label: I will write this issue in English (see our [Language Policy](https://github.com/code-yeongyu/oh-my-opencode/blob/dev/CONTRIBUTING.md#language-policy))
18+
required: true
1719
- label: I have searched existing issues to avoid duplicates
1820
required: true
1921
- label: I am using the latest version of oh-my-opencode
2022
required: true
21-
- label: I have read the [documentation](https://github.com/code-yeongyu/oh-my-opencode#readme)
23+
- label: I have read the [documentation](https://github.com/code-yeongyu/oh-my-opencode#readme) or asked an AI coding agent with this project's GitHub URL loaded and couldn't find the answer
2224
required: true
2325

2426
- type: textarea

.github/ISSUE_TEMPLATE/feature_request.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,13 @@ body:
1414
label: Prerequisites
1515
description: Please confirm the following before submitting
1616
options:
17+
- label: I will write this issue in English (see our [Language Policy](https://github.com/code-yeongyu/oh-my-opencode/blob/dev/CONTRIBUTING.md#language-policy))
18+
required: true
1719
- label: I have searched existing issues and discussions to avoid duplicates
1820
required: true
1921
- label: This feature request is specific to oh-my-opencode (not OpenCode core)
2022
required: true
21-
- label: I have read the [documentation](https://github.com/code-yeongyu/oh-my-opencode#readme)
23+
- label: I have read the [documentation](https://github.com/code-yeongyu/oh-my-opencode#readme) or asked an AI coding agent with this project's GitHub URL loaded and couldn't find the answer
2224
required: true
2325

2426
- type: textarea

.github/ISSUE_TEMPLATE/general.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@ body:
1414
label: Prerequisites
1515
description: Please confirm the following before submitting
1616
options:
17+
- label: I will write this issue in English (see our [Language Policy](https://github.com/code-yeongyu/oh-my-opencode/blob/dev/CONTRIBUTING.md#language-policy))
18+
required: true
1719
- label: I have searched existing issues and discussions
1820
required: true
19-
- label: I have read the [documentation](https://github.com/code-yeongyu/oh-my-opencode#readme)
21+
- label: I have read the [documentation](https://github.com/code-yeongyu/oh-my-opencode#readme) or asked an AI coding agent with this project's GitHub URL loaded and couldn't find the answer
2022
required: true
2123
- label: This is a question (not a bug report or feature request)
2224
required: true
277 KB
Loading

.github/assets/elestyle.jpg

116 KB
Loading

.github/assets/hephaestus.png

8.21 MB
Loading

.github/workflows/ci.yml

Lines changed: 94 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,32 @@ on:
44
push:
55
branches: [master, dev]
66
pull_request:
7-
branches: [master]
7+
branches: [master, dev]
88

99
concurrency:
1010
group: ${{ github.workflow }}-${{ github.ref }}
1111
cancel-in-progress: true
1212

1313
jobs:
14+
# Block PRs targeting master branch
15+
block-master-pr:
16+
runs-on: ubuntu-latest
17+
if: github.event_name == 'pull_request'
18+
steps:
19+
- name: Check PR target branch
20+
run: |
21+
if [ "${{ github.base_ref }}" = "master" ]; then
22+
echo "::error::PRs to master branch are not allowed. Please target the 'dev' branch instead."
23+
echo ""
24+
echo "PULL REQUESTS TO MASTER ARE BLOCKED"
25+
echo ""
26+
echo "All PRs must target the 'dev' branch."
27+
echo "Please close this PR and create a new one targeting 'dev'."
28+
exit 1
29+
else
30+
echo "PR targets '${{ github.base_ref }}' branch - OK"
31+
fi
32+
1433
test:
1534
runs-on: ubuntu-latest
1635
steps:
@@ -25,8 +44,80 @@ jobs:
2544
env:
2645
BUN_INSTALL_ALLOW_SCRIPTS: "@ast-grep/napi"
2746

28-
- name: Run tests
29-
run: bun test
47+
- name: Run mock-heavy tests (isolated)
48+
run: |
49+
# These files use mock.module() which pollutes module cache
50+
# Run them in separate processes to prevent cross-file contamination
51+
bun test src/plugin-handlers
52+
bun test src/hooks/atlas
53+
bun test src/hooks/compaction-context-injector
54+
bun test src/features/tmux-subagent
55+
bun test src/cli/doctor/formatter.test.ts
56+
bun test src/cli/doctor/format-default.test.ts
57+
bun test src/tools/call-omo-agent/sync-executor.test.ts
58+
bun test src/tools/call-omo-agent/session-creator.test.ts
59+
bun test src/tools/session-manager
60+
bun test src/features/opencode-skill-loader/loader.test.ts
61+
bun test src/hooks/anthropic-context-window-limit-recovery/recovery-hook.test.ts
62+
bun test src/hooks/anthropic-context-window-limit-recovery/executor.test.ts
63+
# src/shared mock-heavy files (mock.module pollutes connected-providers-cache and legacy-plugin-warning)
64+
bun test src/shared/model-capabilities.test.ts
65+
bun test src/shared/log-legacy-plugin-startup-warning.test.ts
66+
bun test src/shared/model-error-classifier.test.ts
67+
bun test src/shared/opencode-message-dir.test.ts
68+
# session-recovery mock isolation (recover-tool-result-missing mocks ./storage)
69+
bun test src/hooks/session-recovery/recover-tool-result-missing.test.ts
70+
# legacy-plugin-toast mock isolation (hook.test.ts mocks ./auto-migrate)
71+
bun test src/hooks/legacy-plugin-toast/hook.test.ts
72+
73+
- name: Run remaining tests
74+
run: |
75+
# Enumerate subdirectories/files explicitly to EXCLUDE mock-heavy files
76+
# that were already run in isolation above.
77+
# Excluded from src/shared: model-capabilities, log-legacy-plugin-startup-warning, model-error-classifier, opencode-message-dir
78+
# Excluded from src/cli: doctor/formatter.test.ts, doctor/format-default.test.ts
79+
# Excluded from src/tools: call-omo-agent/sync-executor.test.ts, call-omo-agent/session-creator.test.ts, session-manager (all)
80+
# Excluded from src/hooks/anthropic-context-window-limit-recovery: recovery-hook.test.ts, executor.test.ts
81+
# Build src/shared file list excluding mock-heavy files already run in isolation
82+
SHARED_FILES=$(find src/shared -name '*.test.ts' \
83+
! -name 'model-capabilities.test.ts' \
84+
! -name 'log-legacy-plugin-startup-warning.test.ts' \
85+
! -name 'model-error-classifier.test.ts' \
86+
! -name 'opencode-message-dir.test.ts' \
87+
| sort | tr '\n' ' ')
88+
bun test bin script src/config src/mcp src/index.test.ts \
89+
src/agents $SHARED_FILES \
90+
src/cli/run src/cli/config-manager src/cli/mcp-oauth \
91+
src/cli/index.test.ts src/cli/install.test.ts src/cli/model-fallback.test.ts \
92+
src/cli/config-manager.test.ts \
93+
src/cli/doctor/runner.test.ts src/cli/doctor/checks \
94+
src/tools/ast-grep src/tools/background-task src/tools/delegate-task \
95+
src/tools/glob src/tools/grep src/tools/interactive-bash \
96+
src/tools/look-at src/tools/lsp \
97+
src/tools/skill src/tools/skill-mcp src/tools/slashcommand src/tools/task \
98+
src/tools/call-omo-agent/background-agent-executor.test.ts \
99+
src/tools/call-omo-agent/background-executor.test.ts \
100+
src/tools/call-omo-agent/subagent-session-creator.test.ts \
101+
src/hooks/anthropic-context-window-limit-recovery/empty-content-recovery-sdk.test.ts src/hooks/anthropic-context-window-limit-recovery/parser.test.ts src/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.test.ts src/hooks/anthropic-context-window-limit-recovery/recovery-deduplication.test.ts src/hooks/anthropic-context-window-limit-recovery/storage.test.ts \
102+
src/hooks/session-recovery/detect-error-type.test.ts src/hooks/session-recovery/index.test.ts src/hooks/session-recovery/recover-empty-content-message-sdk.test.ts src/hooks/session-recovery/resume.test.ts src/hooks/session-recovery/storage \
103+
src/hooks/legacy-plugin-toast/auto-migrate.test.ts \
104+
src/hooks/claude-code-compatibility \
105+
src/hooks/context-injection \
106+
src/hooks/provider-toast \
107+
src/hooks/session-notification \
108+
src/hooks/sisyphus \
109+
src/hooks/todo-continuation-enforcer \
110+
src/features/background-agent \
111+
src/features/builtin-commands \
112+
src/features/builtin-skills \
113+
src/features/claude-code-session-state \
114+
src/features/hook-message-injector \
115+
src/features/opencode-skill-loader/config-source-discovery.test.ts \
116+
src/features/opencode-skill-loader/merger.test.ts \
117+
src/features/opencode-skill-loader/skill-content.test.ts \
118+
src/features/opencode-skill-loader/blocking.test.ts \
119+
src/features/opencode-skill-loader/async-loader.test.ts \
120+
src/features/skill-mcp-manager
30121
31122
typecheck:
32123
runs-on: ubuntu-latest

.github/workflows/cla.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
path-to-signatures: 'signatures/cla.json'
2626
path-to-document: 'https://github.com/code-yeongyu/oh-my-opencode/blob/master/CLA.md'
2727
branch: 'dev'
28-
allowlist: bot*,dependabot*,github-actions*,*[bot],sisyphus-dev-ai
28+
allowlist: code-yeongyu,bot*,dependabot*,github-actions*,*[bot],sisyphus-dev-ai,web-flow
2929
custom-notsigned-prcomment: |
3030
Thank you for your contribution! Before we can merge this PR, we need you to sign our [Contributor License Agreement (CLA)](https://github.com/code-yeongyu/oh-my-opencode/blob/master/CLA.md).
3131

0 commit comments

Comments
 (0)