Commit Graph

3117 Commits

Author SHA1 Message Date
YeonGyu-Kim ae5c7a4fa7 Merge pull request #2151 from ualtinok/fix/agent-usage-reminder-subagent-exclusion
[Bug]: agent-usage-reminder hook sends circular reminders to explore/librarian subagents
2026-02-28 13:37:14 +09:00
YeonGyu-Kim c8b0d17f65 Merge pull request #2204 from ualtinok/fix/glob-directory-prefix
fix(glob): use cwd-relative search for ripgrep to fix directory prefix patterns
2026-02-28 13:27:00 +09:00
ismeth cec148f874 fix(glob): use cwd-relative search for ripgrep to fix directory prefix patterns
Ripgrep's --glob flag silently returns zero results when the search target
is an absolute path and the pattern contains directory prefixes (e.g.
'apps/backend/**/*.ts' with '/project'). This is a known ripgrep behavior
where glob matching fails against paths rooted at absolute arguments.

Fix by running ripgrep with cwd set to the search path and '.' as the
search target, matching how the find backend already operates. Ripgrep
then sees relative paths internally, so directory-prefixed globs match
correctly. Output paths are resolved back to absolute via resolve().
2026-02-28 13:26:30 +09:00
YeonGyu-Kim 5770efc595 Merge pull request #2202 from ualtinok/fix/glob-grep-relative-path
fix(tools): resolve relative paths in glob/grep against project directory
2026-02-28 13:17:53 +09:00
YeonGyu-Kim 474cce1746 Merge pull request #2208 from code-yeongyu/feat/http-hook-support
feat(hooks): add HTTP hook handler support
2026-02-28 12:10:45 +09:00
YeonGyu-Kim b2183d360f style(hooks): add blank line between interpolateEnvVars and resolveHeaders 2026-02-28 12:05:08 +09:00
YeonGyu-Kim aa77c54e8f fix(agents): replace active polling with notification-based waiting for background tasks
Sisyphus prompt instructed 'your next action is background_output' which
caused agents to repeatedly poll running tasks instead of ending their
response and waiting for the system notification.

- Replace 'STOP all other output' with 'end your response' (actionable)
- Add system-reminder notification mechanism explanation
- Add explicit 'Do NOT poll' prohibition
- Reduce background_cancel(all=true) mentions from 5x to 1x (Hard Blocks)
- Reduce Oracle collect obligation from 4x to 2x
- Remove motivational fluff ('blind spots', 'normal and expected')

Net: -2 lines, clearer mechanism, eliminates polling loop root cause.
2026-02-28 12:04:18 +09:00
YeonGyu-Kim 56c12c360a fix(hooks): resolve cubic review issues
- Replace two-pass env interpolation with single-pass combined regex to
  prevent re-interpolation of $-sequences in substituted header values
- Convert HookEntry to discriminated union so type: "http" requires url,
  preventing invalid configs from passing type checking
- Add regression test for double-interpolation edge case
2026-02-28 12:00:02 +09:00
YeonGyu-Kim d960775da3 feat(hooks): add HTTP hook handler support
Add type: "http" hook support matching Claude Code's HTTP hook specification.
HTTP hooks send POST requests with JSON body, support env var interpolation
in headers via allowedEnvVars, and configurable timeout.

New files:
- execute-http-hook.ts: HTTP hook execution with env var interpolation
- dispatch-hook.ts: Unified dispatcher for command and HTTP hooks
- execute-http-hook.test.ts: 14 tests covering all HTTP hook scenarios

Modified files:
- types.ts: Added HookHttp interface, HookAction union type
- config.ts: Updated to accept HookAction in raw hook matchers
- pre-tool-use/post-tool-use/stop/user-prompt-submit/pre-compact:
  Updated all 5 executors to dispatch HTTP hooks via dispatchHook()
- plugin-loader/types.ts: Added "http" to HookEntry type union
2026-02-28 11:38:34 +09:00
ismeth 2efee73554 fix(tools): resolve relative paths in glob/grep against project directory
When models pass relative paths (e.g. 'apps/ios/CleanSlate') to glob/grep
tools, they were passed directly to ripgrep which resolved them against
process.cwd(). In OpenCode Desktop, process.cwd() is '/' causing all
relative path lookups to fail with 'No such file or directory'.

Fix: use path.resolve(ctx.directory, args.path) to resolve relative paths
against the project directory instead of relying on process.cwd().
2026-02-28 00:58:05 +01:00
github-actions[bot] bd2f06f5cc @renanale has signed the CLA in code-yeongyu/oh-my-opencode#2201 2026-02-27 22:38:27 +00:00
Nguyen Khac Trung Kien ca2e046eb5 Merge pull request #2161 from acamq/fix/duplicate-agent-entries 2026-02-27 18:35:59 +07:00
Kenny e18aa71d5c Merge pull request #2153 from devxoul/fix/docs-master-to-dev-branch
replace master branch references with dev
2026-02-27 19:33:48 +08:00
Kenny da2f665f51 Merge pull request #2160 from dwnmf/add-russian-readme
Add Russian README
2026-02-27 19:32:14 +08:00
github-actions[bot] a6324ff1fe @mertyldrm has signed the CLA in code-yeongyu/oh-my-opencode#2184 2026-02-27 10:53:16 +00:00
github-actions[bot] 21d796b7d9 @YLRong has signed the CLA in code-yeongyu/oh-my-opencode#2176 2026-02-27 09:06:59 +00:00
YeonGyu-Kim 50573da6c5 fix(atlas): use start-work session agent for continuation gating
Prefer the in-memory session agent set by /start-work when validating idle continuation eligibility, so stale message storage agent values do not block boulder continuation.
2026-02-27 15:01:44 +09:00
github-actions[bot] a34ac6c119 @1noilimrev has signed the CLA in code-yeongyu/oh-my-opencode#2166 2026-02-27 05:53:45 +00:00
LYA_CAP_OCEAN 59d9836f9e Fix markdown blockquote structure in Russian README 2026-02-27 01:59:29 +03:00
acamq 44ea23fe7a fix(agents): remove duplicate remapped agent keys 2026-02-26 15:58:02 -07:00
github-actions[bot] a5a9184ca7 @dwnmf has signed the CLA in code-yeongyu/oh-my-opencode#2160 2026-02-26 22:51:52 +00:00
LYA_CAP_OCEAN e16cb692cb Add Russian README 2026-02-27 01:49:51 +03:00
YeonGyu-Kim f4f2278cb2 fix(ci): pre-download baseline compile targets to avoid Bun extraction failures
Bun's internal download of baseline compile targets from npm registry
consistently fails on Windows CI runners (ExtractionFailed error).
Pre-download the baseline binary via curl into Bun's cache directory
so the compile step finds it already cached and skips the download.

Also makes publish job resilient with if: always() so one failed
platform doesn't block publishing all other successful platforms.
2026-02-27 04:43:29 +09:00
YeonGyu-Kim 9b24ffa202 fix(ci): make platform publish resilient to individual build failures
publish job now runs with if: always() && !cancelled(), and gates
each publish step on download.outcome == 'success'. One flaky target
(e.g. windows-x64-baseline) no longer blocks all other platforms.
2026-02-27 04:39:05 +09:00
github-actions[bot] 54ed45059b release: v3.9.0 2026-02-26 19:30:38 +00:00
YeonGyu-Kim e548243378 fix(hephaestus): remove auto-commit policy to prevent surprise commits
The auto-commit section instructed Hephaestus to automatically commit after
implementation work. Users who didn't know about this behavior would get
surprise commits — a trust-breaking behavioral change flagged by 5 Oracle
reviews as the sole publish blocker for 3.9.0.
2026-02-27 04:27:07 +09:00
YeonGyu-Kim ccce641ccd Merge pull request #2159 from code-yeongyu/fix/ralph-loop-completion-scoping
fix(ralph-loop): scope completion detection to messages since loop start
2026-02-27 03:23:46 +09:00
YeonGyu-Kim 9cf140ddba Merge pull request #2158 from code-yeongyu/fix/hashline-diff-format-compat
test(hashline-edit): verify diff format compatibility with OpenCode UI
2026-02-27 03:23:43 +09:00
YeonGyu-Kim 1f79dfa544 Merge pull request #2157 from code-yeongyu/fix/token-limiter-safe-truncation
fix(token-limiter): truncate at newline boundaries instead of raw slice
2026-02-27 03:23:40 +09:00
YeonGyu-Kim a0954268a4 Merge pull request #2156 from code-yeongyu/fix/background-pending-notif-leak
fix(background-agent): clean pendingNotifications on session.deleted
2026-02-27 03:23:38 +09:00
YeonGyu-Kim 973952af30 Merge pull request #2155 from code-yeongyu/fix/ultrawork-thinking-db-write
fix(ultrawork-db): write $.thinking alongside $.variant in deferred model override
2026-02-27 03:23:30 +09:00
YeonGyu-Kim 5f7bdf6cdd test(ralph-loop): harden completion detector PluginInput mock 2026-02-27 03:12:22 +09:00
YeonGyu-Kim cf3aed301c fix(ralph-loop): persist session message count at loop start 2026-02-27 03:08:30 +09:00
YeonGyu-Kim e034930194 fix(ralph-loop): scope completion detection to messages since loop start 2026-02-27 03:05:14 +09:00
YeonGyu-Kim fcd8e1080b test(hashline-edit): add diff format compatibility tests 2026-02-27 03:02:49 +09:00
YeonGyu-Kim 44b8ec750f fix(token-limiter): truncate at newline boundaries instead of raw slice 2026-02-27 03:02:04 +09:00
YeonGyu-Kim 16672bae16 fix(background-agent): clean pendingNotifications on session.deleted 2026-02-27 03:00:39 +09:00
YeonGyu-Kim a5b6681390 fix(ultrawork-db): write $.thinking alongside $.variant in deferred model override 2026-02-27 02:59:22 +09:00
YeonGyu-Kim 485ef2476f Merge pull request #2154 from minpeter/feat/hashline-benchmark
fix(hashline-edit): harden deduplication, validation, and add benchmark suite
2026-02-27 02:14:12 +09:00
minpeter a2b2cb7e87 fix(benchmarks): address review feedback on error handling and validation
- headless.ts: emit error field on tool_result when output starts with Error:
- test-multi-model.ts: errored/timed-out models now shown as RED and exit(1)
- test-multi-model.ts: validate --timeout arg (reject NaN/negative)
- test-edge-cases.ts: use exact match instead of trim() for whitespace test
- test-edge-cases.ts: skip file pre-creation for create-via-append test

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-27 01:44:51 +09:00
minpeter 3cff4c1bce feat(benchmarks): add hashline-edit test suites (46 tests)
Ported from code-editing-agent benchmark:
- test-edit-ops.ts: 21 basic edit operations (replace, append, prepend, delete, batch, range)
- test-edge-cases.ts: 25 edge cases (unicode, long lines, whitespace, special chars, file creation)
- test-multi-model.ts: multi-model comparison runner

Verified 21/21 + 25/25 (100%) with Minimax M2.5 via FriendliAI.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-27 01:37:49 +09:00
minpeter a71a97c2ea feat(benchmarks): add hashline-edit benchmark agent and deps
Standalone headless agent using Vercel AI SDK v6 with FriendliAI provider.
Imports hashline-edit pure functions directly from src/ for benchmarking
the edit tool against LLMs (Minimax M2.5 via FriendliAI).

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-27 01:37:40 +09:00
minpeter 26004f93ec Fix hashline-edit deduplication and validation
- Canonicalize anchors in dedupe keys to handle whitespace variants
- Make lines field required in edit operations
- Only allow unanchored append/prepend to create missing files
- Reorder delete/rename validation to prevent edge cases
- Add allow_non_gpt_model and max_prompt_tokens to config schema
  ```
2026-02-27 01:37:19 +09:00
ismeth 05f1e1fedb fix(agent-usage-reminder): skip reminders for non-orchestrator subagents 2026-02-26 17:05:33 +01:00
Jeon Suyeol 36fbbde08a replace master branch references with dev across docs, schema URLs, and tests 2026-02-27 00:49:53 +09:00
YeonGyu-Kim d491a20fe4 Merge pull request #2093 from code-yeongyu/fix/issue-1966-ultrawork-variant
fix(keyword-detector): respect ultrawork config variant instead of hardcoding "max"
2026-02-26 23:23:14 +09:00
YeonGyu-Kim 8b3335fb2c Merge pull request #2149 from code-yeongyu/fix/issue-1815-1733-prompt-token-count
fix(delegate-task): add token counting and truncation to prevent context overflow
2026-02-26 23:19:35 +09:00
YeonGyu-Kim 51db9da426 fix(keyword-detector): respect ultrawork config variant instead of hardcoding "max"
Closes #1966
2026-02-26 23:15:32 +09:00
YeonGyu-Kim 3981190fb6 ci: trigger CI 2026-02-26 23:14:33 +09:00
YeonGyu-Kim 4b946c8883 Merge pull request #1963 from MoerAI/fix/multi-issue-1888-1693-1891
fix: resolve issues #1888, #1693, #1891
2026-02-26 23:13:00 +09:00