Commit Graph

3198 Commits

Author SHA1 Message Date
YeonGyu-Kim 77b7430c56 fix(delegate-task): resolve timeout detection and config drift in sync poller 2026-03-03 00:38:22 +09:00
YeonGyu-Kim e461c81cec Merge pull request #2244 from code-yeongyu/fix/pr-2021-issues
fix(dispatch): resolve 3 bugs from PR #2021 plugin command wiring
2026-03-03 00:36:56 +09:00
YeonGyu-Kim 3d9ddd45d6 fix(test): resolve test failure in PR #2021 fixes 2026-03-03 00:27:53 +09:00
YeonGyu-Kim 3de05a55d5 fix(dispatch): resolve plugin namespace parsing, template substitution, and discovery duplication 2026-03-03 00:14:01 +09:00
YeonGyu-Kim 813973041e Revert "Merge pull request #1951 from edxeth/feat/custom-agents"
This reverts commit 47e300b17e, reversing
changes made to 243ce1b7e8.
2026-03-02 23:55:48 +09:00
YeonGyu-Kim 314532de6a docs(agents): regenerate AGENTS.md hierarchy with updated metrics and model configs
- 1208→1243 TS files (+35), 143k→155k LOC (+12k)
- Update all agent models: Sisyphus, Hephaestus, Oracle, Librarian, Atlas, Metis, Momus
- Add 6 new hook directories (39→45 dirs): beast-mode-system, hashline-edit-diff-enhancer, anthropic-image-context, task-reminder, compaction-todo-preserver, runtime-fallback
- Update category models: visual-engineering/artistry gemini-3-pro→gemini-3.1-pro
- Add 2 config schema files: fallback-models.ts, runtime-fallback.ts
- Timestamp: 2026-03-02 | Commit: 1c2caa09

🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-03-02 23:40:38 +09:00
sisyphus-dev-ai 09d30ea432 chore: changes by sisyphus-dev-ai 2026-03-02 14:40:25 +00:00
YeonGyu-Kim 6d7030e760 Merge pull request #1951 from edxeth/feat/custom-agents
feat(config): make custom agents first-class for planning and delegation
2026-03-02 23:28:57 +09:00
YeonGyu-Kim 4aaf89ad21 Merge pull request #1977 from iyoda/fix/doctor-cache-dir-fix-message
fix(doctor): point fix messages to actual OpenCode cache directory
2026-03-02 23:28:52 +09:00
YeonGyu-Kim cce36e7a56 Merge pull request #1906 from xinpengdr/feat/auto-convert-heic-images
feat: Add automatic image format conversion for HEIC/RAW/PSD files
2026-03-02 23:28:45 +09:00
YeonGyu-Kim 235dd86f29 Merge pull request #1984 from MoerAI/fix/respect-user-external-directory-permission
fix(config): respect user's external_directory permission setting
2026-03-02 23:28:22 +09:00
YeonGyu-Kim 3c1b0b344c fix(model-fallback): apply transformModelForProvider in getNextFallback
fix(model-fallback): apply transformModelForProvider in getNextFallback
2026-03-02 23:28:20 +09:00
YeonGyu-Kim 1840de8459 Merge pull request #2021 from cruzanstx/feat/marketplace-plugin-dispatch
feat(dispatch): wire marketplace plugin commands into slash command dispatch
2026-03-02 23:28:20 +09:00
YeonGyu-Kim 3339ef52e4 Merge pull request #2173 from Lynricsy/feat/sync-poll-timeout-config
feat(delegate-task): ⚙️ make sync subagent timeout configurable via syncPollTimeoutMs
2026-03-02 23:28:15 +09:00
YeonGyu-Kim de6c81b8a3 Merge pull request #2080 from Firstbober/dev
fix: model format normalization and explicit config cache bypass
2026-03-02 23:28:06 +09:00
YeonGyu-Kim 42d52f652f Merge pull request #2068 from DMax1314/patch-1
Update Kimi Code Subscription link in README
2026-03-02 23:28:03 +09:00
YeonGyu-Kim b180dfa11c Merge pull request #2125 from zhzy0077/fix/copilot-invalid-initiator
fix(chat-headers): skip x-initiator override for @ai-sdk/github-copilot models
2026-03-02 23:27:59 +09:00
YeonGyu-Kim 8610c359b8 Merge pull request #2131 from maou-shonen/fix/comment-checker-dependency-version
fix(comment-checker): bump dependency to ^0.7.0 for --prompt support
2026-03-02 23:27:59 +09:00
YeonGyu-Kim 3e0f67632a Merge pull request #2166 from 1noilimrev/fix/macos-notification-click-target
fix(hooks): use terminal-notifier for macOS notification click-to-focus
2026-03-02 23:27:57 +09:00
YeonGyu-Kim 1deb13230f Merge pull request #2237 from iyoda/refactor/model-resolution-dedup
refactor(shared): deduplicate model resolution utility functions
2026-03-02 23:27:49 +09:00
YeonGyu-Kim af70ec7449 Merge pull request #2198 from acamq/feat/no-auto-commit-work-plan
feat(start-work): add auto_commit config option
2026-03-02 23:27:44 +09:00
YeonGyu-Kim 622e8b6792 Merge pull request #2184 from mertyldrm/fix/config-context-warning-leak
fix: remove config-context console.warn that leaks into TUI textbox
2026-03-02 23:27:43 +09:00
YeonGyu-Kim 066c665c49 Merge pull request #2176 from YLRong/fix/replace-pos-only-description
fix: remove misleading hint from replace pos only description
2026-03-02 23:27:41 +09:00
YeonGyu-Kim 540cd22e8c fix: initialize config context in plugin runtime to prevent warnings
fix: initialize config context in plugin runtime to prevent warnings
2026-03-02 23:27:39 +09:00
YeonGyu-Kim 10662c7a33 Merge pull request #2193 from acamq/fix/load-mcp-hint
fix(skill_mcp): improve hint for builtin MCP names
2026-03-02 23:27:37 +09:00
YeonGyu-Kim 930ec52fd1 fix(preemptive-compaction): allow re-compaction after context grows and use model-specific limits
compactedSessions permanently blocked re-compaction after first success,
causing unbounded context growth (e.g. 500k on Kimi K2.5 with 256k limit).

- Clear compactedSessions flag on new message.updated so compaction can
  re-trigger when context exceeds threshold again
- Use modelContextLimitsCache for model-specific context limits instead
  of always falling back to 200k for non-Anthropic providers
2026-03-02 23:07:39 +09:00
IYODA Atsushi 51d53f9976 refactor(shared): deduplicate model resolution utility functions
Extract normalizeModel() (3 identical copies) and normalizeModelID()
(2 identical copies) into canonical src/shared/model-normalization.ts.
Delete dead-end duplicate model-name-matcher.ts. Update all consumers.
2026-03-02 16:38:22 +09:00
github-actions[bot] e4e13cdebf release: v3.10.0 2026-03-02 06:27:47 +00:00
YeonGyu-Kim 66b8b7e576 feat(hashline): change hashline_edit default from true to false
Hashline edit tool and companion hooks now require explicit opt-in
via `"hashline_edit": true` in config. Previously enabled by default.

- tool-registry: hashline edit tool not registered unless opted in
- create-tool-guard-hooks: hashline-read-enhancer disabled by default
- Updated config schema comment and documentation
- Added TDD tests for default behavior
2026-03-02 15:20:31 +09:00
YeonGyu-Kim 5f0aec81e5 perf(read-image-resizer): decode only first 32KB of base64 for dimension parsing
Previously decoded entire image buffer to read headers. Now slices base64
to 32KB prefix before decoding — sufficient for PNG/GIF/WebP/JPEG headers.
Dramatically reduces memory allocation for large images.
2026-03-02 15:20:31 +09:00
YeonGyu-Kim d495604129 fix(hook-message-injector): add process-unique prefix to message/part IDs to prevent storage collisions
IDs now include a random 8-hex-char prefix per process (e.g. msg_a1b2c3d4_000001)
preventing collisions when counters reset across process restarts.
2026-03-02 15:20:31 +09:00
YeonGyu-Kim 7224433790 fix(hooks): prevent SSRF via URL scheme validation and extend disable mechanism to HTTP hooks
- Restrict HTTP hook URLs to http: and https: schemes only (blocks file://, data://, ftp://)
- Extend hook disable config to cover HTTP hooks by matching against hook URL identifier
- Update all 5 hook executors (pre-tool-use, post-tool-use, stop, pre-compact, user-prompt-submit)
- Add 6 new tests for URL scheme validation (file, data, ftp rejection + http, https, invalid URL)
2026-03-02 15:20:31 +09:00
github-actions[bot] 2c0b29ec15 @mathew-cf has signed the CLA in code-yeongyu/oh-my-opencode#2233 2026-03-01 20:19:41 +00:00
github-actions[bot] 96e52348e8 @Chocothin has signed the CLA in code-yeongyu/oh-my-opencode#2230 2026-03-01 13:52:22 +00:00
github-actions[bot] 6d6431ebc4 @DEAN-Cherry has signed the CLA in code-yeongyu/oh-my-opencode#2227 2026-03-01 08:13:56 +00:00
github-actions[bot] 485382e950 @laciferin2024 has signed the CLA in code-yeongyu/oh-my-opencode#2222 2026-03-01 01:16:35 +00:00
YeonGyu-Kim 5ebd779b46 Merge pull request #2212 from code-yeongyu/fix/h5-collector-ordering
fix(context-injector): use monotonic registration order instead of timestamp for deterministic sorting
2026-02-28 13:40:20 +09:00
YeonGyu-Kim e9f5424260 Merge pull request #2211 from code-yeongyu/fix/c2-hook-message-ids
fix(hook-message-injector): use monotonic counter for deterministic message/part IDs
2026-02-28 13:40:18 +09:00
YeonGyu-Kim f1174cd47d Merge pull request #2210 from code-yeongyu/fix/c1-synthetic-part-id
fix(context-injector): use deterministic synthetic part ID for cache stability
2026-02-28 13:40:16 +09:00
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 bb3e5071df fix(context-injector): use monotonic registration order instead of timestamp for deterministic sorting 2026-02-28 13:30:57 +09:00
YeonGyu-Kim 5981eff841 fix(context-injector): use deterministic synthetic part ID for cache stability 2026-02-28 13:30:49 +09:00
YeonGyu-Kim ad2599112f fix(hook-message-injector): use monotonic counter for deterministic message/part IDs 2026-02-28 13:30: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 4b69667aa8 feat(hooks): add read-image-resizer hook
Intercepts Read tool output with image attachments and resizes to comply with Anthropic API limits (≤1568px long edge, ≤5MB). Only activates for Anthropic provider sessions and appends resize metadata (original/new resolution, token count) to tool output.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-28 13:21:40 +09:00
YeonGyu-Kim aba68d9555 feat(agents): add Gemini tool guide and few-shot examples to system prompt
Embed tool usage guide (per-tool parallel/sequential signals) and 5 concrete tool-calling examples directly in Gemini system prompt. Modeled after Antigravity's inline schema approach to improve Gemini tool-call quality.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-28 13:21:40 +09:00
YeonGyu-Kim 4554f608ed feat(agents): add Plan Agent dependency and strengthen Deep Parallel Delegation for non-Claude models
Non-Claude models skip planning and under-parallelize. Two new sections
injected only when model is not Claude:

- Plan Agent Dependency: multi-step tasks MUST consult Plan Agent first,
  use session_id for follow-ups, ask aggressively when ambiguous
- Deep Parallel Delegation (rewrite): explicit '4 units = 4 agents'
  pattern, each with clear GOAL + success criteria, all run_in_background
2026-02-28 13:21:40 +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