YeonGyu-Kim
3ab2eec117
fix(hashline): add autocorrect, batch mismatch reporting, and write anchors
2026-02-20 11:02:07 +09:00
YeonGyu-Kim
ce44445946
update docs
2026-02-19 18:41:37 +09:00
YeonGyu-Kim
9402905738
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
27466b8baa
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
6869a2c0b5
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
8dcde36031
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
2df6655d1e
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
6fc1b8430b
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
d06f55325a
fix(skill): keep no-skills wording compatible with tests
2026-02-19 01:19:44 +08:00
Bo Li
1dce4d42e7
fix(skill): eagerly build description for preloaded skills
2026-02-19 01:16:57 +08:00
Bo Li
4a6335c232
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
2192f4a783
fix: preserve git-master config defaults and tighten type safety
2026-02-19 00:17:22 +08:00
Bo Li
6025035f27
refactor: merge skill tool into slashcommand to reduce system prompt size
2026-02-19 00:17:22 +08:00
YeonGyu-Kim
8ea24d26d2
chore: upgrade claude-sonnet-4-5 to claude-sonnet-4-6 across codebase
2026-02-18 15:51:24 +09:00
YeonGyu-Kim
a70ae411b0
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
1f46e73fa3
refactor: remove 3 orphaned files and prefix unused parameter
2026-02-17 14:09:12 +09:00
YeonGyu-Kim
eef47d794d
refactor: remove 3 orphaned files from call-omo-agent and delegate-task
2026-02-17 14:08:44 +09:00
YeonGyu-Kim
10c98519da
refactor: remove orphaned modules/ directory from background-task
2026-02-17 14:08:30 +09:00
YeonGyu-Kim
0a3c1bdd0f
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
2d80b76b30
Merge branch 'dev' into fix/1681-oracle-json-parse
2026-02-17 01:54:03 +09:00
YeonGyu-Kim
bdbc111384
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
12aae86dec
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
3a4325a800
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
f04045b335
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
04ee341399
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
2f08c1d316
fix: use correct project directory for Windows subagents ( #1718 )
2026-02-17 01:29:25 +09:00
YeonGyu-Kim
f4fc2fbbfd
fix: resolve JSON parse error in Oracle after promptAsync refactor ( #1681 )
2026-02-17 01:29:17 +09:00
YeonGyu-Kim
41c57df6f9
fix: report errors instead of silent catch in subagent-resolver ( #1283 )
2026-02-17 01:26:58 +09:00
YeonGyu-Kim
bcf0a4998d
test(session-manager): fix storage tests by mocking message-dir dependency
2026-02-17 00:03:10 +09:00
YeonGyu-Kim
1345c0719d
test: skip 4 flaky session-manager tests (test order dependency)
2026-02-17 00:03:10 +09:00
YeonGyu-Kim
eb6be8ac7b
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
9bd21c8a67
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
3e90ec6f93
feat(config): add experimental.hashline_edit flag and provider state module
2026-02-17 00:03:10 +09:00
YeonGyu-Kim
ba770dc9ec
test: align load_skills error assertions in delegate-task
2026-02-16 22:59:52 +09:00
YeonGyu-Kim
41286affff
fix: force include_thinking and include_tool_results for running background tasks
2026-02-16 22:47:51 +09:00
YeonGyu-Kim
cabd1e9696
feat: auto-enable full_session, thinking, and tool_results for running background tasks
2026-02-16 22:37:27 +09:00
YeonGyu-Kim
9cc941e0cf
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
d4f469827f
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
7c6da2b1f8
refactor: remove unused code from background-agent, background-task, call-omo-agent
2026-02-16 22:11:29 +09:00
YeonGyu-Kim
e5be444c07
remove dead code: legacy unified task tool and its action handlers
2026-02-16 21:58:44 +09:00
YeonGyu-Kim
d7b4ed7c2a
clarify task tool: emphasize category/subagent_type is required, remove inline examples
2026-02-16 21:47:56 +09:00
YeonGyu-Kim
513e618bab
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
49b6c108e2
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
8582fe267b
fix: resolve session-manager storage test mock pollution (pre-existing CI failure)
2026-02-16 18:29:30 +09:00
YeonGyu-Kim
63e983269d
refactor: consolidate duplicated Promise.all dual reads into resolveMessageContext utility
2026-02-16 18:20:27 +09:00
YeonGyu-Kim
0b10245c34
refactor: create normalizeSDKResponse helper and replace scattered patterns across 37 files
2026-02-16 18:20:19 +09:00
YeonGyu-Kim
90555f3d5e
fix: propagate sessionExists SDK errors instead of swallowing them
2026-02-16 16:52:27 +09:00
YeonGyu-Kim
64000785c7
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
9c2a92c235
docs: regenerate all 13 AGENTS.md files from deep codebase exploration
2026-02-16 16:13:40 +09:00
YeonGyu-Kim
052f52822c
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