Maxim Harizanov
6e82ef2384
fix(types): restore CI compatibility for plugin hooks and tool context
2026-02-19 13:40:38 +02:00
YeonGyu-Kim
d4e7ddc9b9
update docs
2026-02-19 18:41:37 +09:00
YeonGyu-Kim
c995c5b2c3
fix(hashline-edit): improve hash computation and tool description clarity
...
- Include line number in hash computation to ensure uniqueness
- Add explicit examples of WRONG vs CORRECT LINE:HASH format
- Clarify that hash must be hex characters (0-9, a-f only)
- Update tests to use dynamic hash computation
2026-02-19 18:40:42 +09:00
YeonGyu-Kim
acc28a89c1
feat(skill): merge skills and commands into unified available_items with priority sorting
...
- Merge <available_skills> and <available_commands> into single <available_items>
- Sort by priority: project > user > opencode > builtin
- List skills before commands
- Add priority documentation to description
- Add 5 tests for ordering and priority
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-19 18:40:42 +09:00
YeonGyu-Kim
3adade46e3
fix(hashline-edit): stabilize TUI diff metadata and output flow
...
Align edit/write hashline handling with TUI expectations by preserving metadata through tool execution, keeping unified diff raw to avoid duplicated line numbers, and tightening read/write/edit outputs plus tests for reliable agent operation.
2026-02-19 18:40:42 +09:00
YeonGyu-Kim
697a2f5a4c
Merge pull request #1698 from Luodian/fix/merge-skill-into-slashcommand
...
refactor: merge slashcommand behavior into skill tool to reduce prompt size
2026-02-19 15:51:59 +09:00
YeonGyu-Kim
bd2e23584b
docs: update AGENTS.md metadata
...
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2026-02-19 10:46:40 +09:00
YeonGyu-Kim
a28e989f83
docs: add module-level AGENTS.md for mcp-oauth, atlas, rules-injector, background-task, call-omo-agent, lsp
...
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2026-02-19 10:46:40 +09:00
Bo Li
810ebc0428
fix(skill): keep no-skills wording compatible with tests
2026-02-19 01:19:44 +08:00
Bo Li
5360cdb59b
fix(skill): eagerly build description for preloaded skills
2026-02-19 01:16:57 +08:00
Bo Li
462bf7b277
refactor: merge slashcommand tool into skill tool
...
Per reviewer feedback (code-yeongyu), keep the 'skill' tool as the main
tool and merge slashcommand functionality INTO it, rather than the reverse.
Changes:
- skill/tools.ts: Add command discovery (discoverCommandsSync) support;
handle both SKILL.md skills and .omo/commands/ slash commands in a single
tool; show combined listing in tool description
- skill/types.ts: Add 'commands' option to SkillLoadOptions
- skill/constants.ts: Update description to mention both skills and commands
- plugin/tool-registry.ts: Replace createSlashcommandTool with createSkillTool;
register tool as 'skill' instead of 'slashcommand'
- tools/index.ts: Export createSkillTool instead of createSlashcommandTool
- plugin/tool-execute-before.ts: Update tool name checks from 'slashcommand'
to 'skill'; update arg name from 'command' to 'name'
- agents/dynamic-agent-prompt-builder.ts: Categorize 'skill' tool as 'command'
- tools/skill-mcp/tools.ts: Update hint message to reference 'skill' tool
- hooks/auto-slash-command/executor.ts: Update error message
The slashcommand/ module files are kept (they provide shared utilities used
by the skill tool), but the slashcommand tool itself is no longer registered.
2026-02-19 00:18:47 +08:00
Bo Li
8b3cc5e011
fix: preserve git-master config defaults and tighten type safety
2026-02-19 00:17:22 +08:00
Bo Li
42b082b469
refactor: merge skill tool into slashcommand to reduce system prompt size
2026-02-19 00:17:22 +08:00
YeonGyu-Kim
96ff1e00cc
chore: upgrade claude-sonnet-4-5 to claude-sonnet-4-6 across codebase
2026-02-18 15:51:24 +09:00
YeonGyu-Kim
3313ec3e4f
chore: regenerate AGENTS.md knowledge base
...
🤖 Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode ) assistance
2026-02-18 01:26:19 +09:00
YeonGyu-Kim
462e2ec2b0
refactor: remove 3 orphaned files and prefix unused parameter
2026-02-17 14:09:12 +09:00
YeonGyu-Kim
9acdd6b85d
refactor: remove 3 orphaned files from call-omo-agent and delegate-task
2026-02-17 14:08:44 +09:00
YeonGyu-Kim
d3b79064c6
refactor: remove orphaned modules/ directory from background-task
2026-02-17 14:08:30 +09:00
YeonGyu-Kim
aac79f03b5
docs: regenerate all AGENTS.md files from comprehensive codebase exploration
...
- Fired 33 parallel explore agents across all major directories
- Analyzed 1164 TS files, 133k LOC, 41 hooks, 26 tools, 11 agents, 18 features
- Regenerated 13 AGENTS.md files with 905 total lines
- Root: plugin architecture, initialization flow, 7 OpenCode hook handlers
- src/: entry point orchestration, hook composition pipeline
- agents/: 11 agent inventory with tool restrictions and factory patterns
- hooks/: 41 hooks organized by 5 tiers, key complex hooks documented
- tools/: 26 tools across 14 directories, delegation categories
- features/: 18 modules mapped by complexity (HIGH/MEDIUM/LOW)
- shared/: 101 utilities in 13 categories, model resolution pipeline
- config/: 22 schema files, Zod v4 validation system
- cli/: 5 commands, doctor checks, model fallback system
- mcp/: 3-tier MCP system architecture
- plugin-handlers/: 6-phase config loading pipeline
- claude-code-hooks/: CC settings.json compatibility layer
- claude-tasks/: task schema + file-based persistence
🤖 Generated with assistance of oh-my-opencode
2026-02-17 11:17:01 +09:00
YeonGyu-Kim
9922a94d12
Merge branch 'dev' into fix/1681-oracle-json-parse
2026-02-17 01:54:03 +09:00
YeonGyu-Kim
e78c54f6eb
Merge pull request #1896 from code-yeongyu/fix/1283-review-code-silent-fail
...
fix: report silent subagent delegation failures (#1283 )
2026-02-17 01:53:56 +09:00
YeonGyu-Kim
74be163df3
Merge pull request #1895 from code-yeongyu/fix/1718-windows-subagent-dir
...
fix: use correct project directory for Windows subagents (#1718 )
2026-02-17 01:53:43 +09:00
YeonGyu-Kim
2fa82896f8
Merge pull request #1884 from code-yeongyu/feat/hashline-edit
...
feat: port hashline edit tool from oh-my-pi
2026-02-17 01:35:22 +09:00
YeonGyu-Kim
c8d03aaddb
Merge pull request #1708 from jsl9208/fix/ast-grep-replace-silent-noop
...
fix(ast-grep): fix ast_grep_replace silent write failure
2026-02-17 01:34:41 +09:00
YeonGyu-Kim
693f73be6d
Merge pull request #1729 from potb/fix/1716-disabled-agents-call-omo
...
fix(call-omo-agent): enforce disabled_agents config
2026-02-17 01:34:38 +09:00
YeonGyu-Kim
5ae45c8c8e
fix: use correct project directory for Windows subagents ( #1718 )
2026-02-17 01:29:25 +09:00
YeonGyu-Kim
931bf6c31b
fix: resolve JSON parse error in Oracle after promptAsync refactor ( #1681 )
2026-02-17 01:29:17 +09:00
YeonGyu-Kim
d7a53e8a5b
fix: report errors instead of silent catch in subagent-resolver ( #1283 )
2026-02-17 01:26:58 +09:00
YeonGyu-Kim
9eb786debd
test(session-manager): fix storage tests by mocking message-dir dependency
2026-02-17 00:03:10 +09:00
YeonGyu-Kim
b56c777943
test: skip 4 flaky session-manager tests (test order dependency)
2026-02-17 00:03:10 +09:00
YeonGyu-Kim
359c6b6655
fix(hashline): address Cubic review comments
...
- P2: Change replace edit sorting from POSITIVE_INFINITY to NEGATIVE_INFINITY
so replace edits run LAST after line-based edits, preventing line number
shifts that would invalidate subsequent anchors
- P3: Update tool description from SHA-256 to xxHash32 to match actual
implementation in hash-computation.ts
2026-02-17 00:03:10 +09:00
YeonGyu-Kim
51dde4d43f
feat(hashline): port hashline edit tool from oh-my-pi
...
This PR ports the hashline edit tool from oh-my-pi to oh-my-opencode as an experimental feature.
## Features
- New experimental.hashline_edit config flag
- hashline_edit tool with 4 operations: set_line, replace_lines, insert_after, replace
- Hash-based line anchors for safe concurrent editing
- Edit tool disabler for non-OpenAI providers
- Read output enhancer with LINE:HASH prefixes
- Provider state tracking module
## Technical Details
- xxHash32-based 2-char hex hashes
- Bottom-up edit application to prevent index shifting
- OpenAI provider exemption (uses native apply_patch)
- 90 tests covering all operations and edge cases
- All files under 200 LOC limit
## Files Added/Modified
- src/tools/hashline-edit/ (7 files, ~400 LOC)
- src/hooks/hashline-edit-disabler/ (4 files, ~200 LOC)
- src/hooks/hashline-read-enhancer/ (3 files, ~400 LOC)
- src/features/hashline-provider-state.ts (13 LOC)
- src/config/schema/experimental.ts (hashline_edit flag)
- src/config/schema/hooks.ts (2 new hook names)
- src/plugin/tool-registry.ts (conditional registration)
- src/plugin/chat-params.ts (provider state tracking)
- src/tools/index.ts (export)
- src/hooks/index.ts (exports)
2026-02-17 00:03:10 +09:00
YeonGyu-Kim
149de9da66
feat(config): add experimental.hashline_edit flag and provider state module
2026-02-17 00:03:10 +09:00
YeonGyu-Kim
8c066ccfd6
test: align load_skills error assertions in delegate-task
2026-02-16 22:59:52 +09:00
YeonGyu-Kim
bad63b9dd6
fix: force include_thinking and include_tool_results for running background tasks
2026-02-16 22:47:51 +09:00
YeonGyu-Kim
e624f982ed
feat: auto-enable full_session, thinking, and tool_results for running background tasks
2026-02-16 22:37:27 +09:00
YeonGyu-Kim
a1086f26d8
refactor: remove dead file task-id-validator.ts and unused isModelAvailable from model-name-matcher
2026-02-16 22:33:44 +09:00
YeonGyu-Kim
158ca3f22b
refactor: remove unused params/imports/types from lsp-tools, task-tools, delegate-task, skill-loader, context-window-monitor, plugin-config
2026-02-16 22:12:21 +09:00
YeonGyu-Kim
1ba330f8ca
refactor: remove unused code from background-agent, background-task, call-omo-agent
2026-02-16 22:11:29 +09:00
YeonGyu-Kim
ca0ca36f65
remove dead code: legacy unified task tool and its action handlers
2026-02-16 21:58:44 +09:00
YeonGyu-Kim
dd8f924a4d
clarify task tool: emphasize category/subagent_type is required, remove inline examples
2026-02-16 21:47:56 +09:00
YeonGyu-Kim
cb601ddd77
fix: resolve category delegation and command routing with display name agent keys
...
Category-based delegation (task(category='quick')) was broken because
SISYPHUS_JUNIOR_AGENT sent 'sisyphus-junior' to session.prompt but
config.agent keys are now display names ('Sisyphus-Junior').
- Use getAgentDisplayName() for SISYPHUS_JUNIOR_AGENT constant
- Replace hardcoded 'sisyphus-junior' strings in tools.ts with constant
- Update background-output local constants to use display names
- Add remapCommandAgentFields() to translate command agent fields
- Add raw-key fallback in tool-config-handler agentByKey()
2026-02-16 21:32:33 +09:00
YeonGyu-Kim
560d13dc70
Normalize agent name comparisons to handle display name keys
...
Hooks and tools now use getAgentConfigKey() to resolve agent names (which may
be display names like 'Atlas (Plan Executor)') to lowercase config keys
before comparison.
- session-utils: orchestrator check uses getAgentConfigKey
- atlas event-handler: boulder agent matching uses config keys
- category-skill-reminder: target agent check uses config keys
- todo-continuation-enforcer: skipAgents comparison normalized
- subagent-resolver: resolves 'metis' -> 'Metis (Plan Consultant)' for lookup
2026-02-16 20:43:09 +09:00
YeonGyu-Kim
65bca83282
fix: resolve session-manager storage test mock pollution (pre-existing CI failure)
2026-02-16 18:29:30 +09:00
YeonGyu-Kim
8e0d1341b6
refactor: consolidate duplicated Promise.all dual reads into resolveMessageContext utility
2026-02-16 18:20:27 +09:00
YeonGyu-Kim
1a6810535c
refactor: create normalizeSDKResponse helper and replace scattered patterns across 37 files
2026-02-16 18:20:19 +09:00
YeonGyu-Kim
6d732fd1f6
fix: propagate sessionExists SDK errors instead of swallowing them
2026-02-16 16:52:27 +09:00
YeonGyu-Kim
9889ac0dd9
fix: handle array-shaped SDK responses in getSdkMessages & dedup getMessageDir
...
- getSdkMessages now handles both response.data and direct array
responses from SDK
- Consolidated getMessageDir: storage.ts now re-exports from shared
opencode-message-dir.ts (with path traversal guards)
2026-02-16 16:13:40 +09:00
YeonGyu-Kim
cfb8164d9a
docs: regenerate all 13 AGENTS.md files from deep codebase exploration
2026-02-16 16:13:40 +09:00
YeonGyu-Kim
c2012c6027
fix: address 8-domain Oracle review findings (C1, C2, M1-M4)
...
- C1: thinking-prepend unique part IDs per message (global PK collision)
- C2: recover-thinking-disabled-violation try/catch guard on SDK call
- M1: remove non-schema truncated/originalSize fields from SDK interfaces
- M2: messageHasContentFromSDK treats thinking-only messages as non-empty
- M3: syncAllTasksToTodos persists finalTodos + no-id rename dedup guard
- M4: AbortSignal.timeout(30s) on HTTP fetch calls in opencode-http-api
All 2739 tests pass, typecheck clean.
2026-02-16 16:13:40 +09:00