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
24789334e4
fix: detect AppData directory paths without trailing separators
2026-02-17 01:45:14 +09:00
YeonGyu-Kim
0e0bfc1cd6
Merge pull request #1849 from jkoelker/preserve-default-agent
...
fix(config): preserve configured default_agent
2026-02-17 01:43:04 +09:00
Jason Kölker
90ede4487b
fix(config): preserve configured default_agent
...
oh-my-opencode overwrote OpenCode's default_agent with sisyphus whenever
Sisyphus orchestration was enabled. This made explicit defaults like
Hephaestus ineffective and forced manual agent switching in new sessions.
Only assign sisyphus as default when default_agent is missing or blank,
and preserve existing configured values. Add tests for both preservation
and fallback behavior to prevent regressions.
2026-02-17 01:41:52 +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
5aa9ecdd5d
Merge pull request #1870 from dankochetov/fix/background-notification-hook-gate
...
fix(background-agent): honor disabled background-notification for system reminders
2026-02-17 01:35:21 +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
1b05c3fb52
Merge pull request #1819 from jonasherr/feat/add-playwright-cli-provider
...
feat(browser-automation): add playwright-cli as browser automation provider
2026-02-17 01:34:34 +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
sisyphus-dev-ai
65216ed081
chore: changes by sisyphus-dev-ai
2026-02-16 16:21:51 +00:00
YeonGyu-Kim
af7b1ee620
refactor(hashline): override native edit tool instead of separate tool + disabler hook
...
Replace 3-component hashline system (separate hashline_edit tool + edit
disabler hook + OpenAI-exempted read enhancer) with 2-component system
that directly overrides the native edit tool key, matching the
delegate_task pattern.
- Register hashline tool as 'edit' key to override native edit
- Delete hashline-edit-disabler hook (no longer needed)
- Delete hashline-provider-state module (no remaining consumers)
- Remove OpenAI exemption from read enhancer (explicit opt-in means all providers)
- Remove setProvider wiring from chat-params
2026-02-17 00:03:10 +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
25f2003962
fix(ci): isolate session-manager tests to prevent flakiness
...
- Move src/tools/session-manager to isolated test section
- Prevents mock.module() pollution across parallel test runs
- Fixes 4 flaky storage tests that failed in CI
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
github-actions[bot]
fcf26d9898
release: v3.6.0
v3.6.0
2026-02-16 15:02:43 +00:00
YeonGyu-Kim
7e9b9cedec
Merge pull request #1721 from edxeth/fix/disable-mcps
...
fix(mcp): preserve user's enabled:false and apply disabled_mcps to all MCP sources
2026-02-16 23:52:24 +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
2eb4251b9a
refactor: rewrite remove-deadcode command for parallel deep agent batching
2026-02-16 22:37:18 +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
c59f63a636
test: remove tests for dead pollSessions function
2026-02-16 22:13:55 +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
9dbb9552b8
refactor: remove unused imports from auto-update-checker, claude-code-hooks, mcp
2026-02-16 22:11:38 +09:00
YeonGyu-Kim
bfabad7681
refactor: remove unused imports from interactive-bash-session, session-recovery, start-work
2026-02-16 22:11:35 +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
169c07ebf8
refactor: remove unused imports from injector, tool-result-storage-sdk, session-notification-utils, model-resolver
2026-02-16 22:11:05 +09:00
YeonGyu-Kim
ec0833b96b
refactor: remove unused constants and dead pollSessions from tmux-subagent
2026-02-16 22:11:00 +09:00
YeonGyu-Kim
8dd3d07efd
refactor: remove unused hasIgnoredParts variables from context-window-limit-recovery
2026-02-16 22:10:44 +09:00
YeonGyu-Kim
731a331fbc
refactor: remove dead file message-storage-locator.ts
2026-02-16 22:09:10 +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
Dan Kochetov
9b187e2128
Merge remote-tracking branch 'origin/dev' into fix/background-notification-hook-gate
...
# Conflicts:
# src/features/background-agent/manager.ts
2026-02-16 13:56:33 +02:00
YeonGyu-Kim
be2e45b4cb
test: update assertions for display name agent keys
...
- config-handler.test: look up agents by display name keys
- agent-key-remapper.test: new tests for key remapping function
- Rebuild schema asset
2026-02-16 20:43:18 +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
d94a739203
Remap config.agent keys to display names at output boundary
...
Use display names as config.agent keys so opencode shows proper names in UI
(Tab/@ menu). Key remapping happens after all agents are assembled but before
reordering, via remapAgentKeysToDisplayNames().
- agent-config-handler: set default_agent to display name, add key remapping
- agent-key-remapper: new module to transform lowercase keys to display names
- agent-priority-order: CORE_AGENT_ORDER uses display names
- tool-config-handler: look up agents by config key via agentByKey() helper
2026-02-16 20:42:58 +09:00
YeonGyu-Kim
c71a80a86c
Revert name fields from agent configs, add getAgentConfigKey reverse lookup
...
Remove crash-causing name fields from 6 agent configs (sisyphus, hephaestus,
atlas, metis, momus, prometheus). The name field approach breaks opencode
because Agent.get(agent.name) uses name as lookup key.
Add getAgentConfigKey() to agent-display-names.ts for resolving display names
back to lowercase config keys (e.g. 'Atlas (Plan Executor)' -> 'atlas').
2026-02-16 20:42:45 +09:00
YeonGyu-Kim
71df52fc5c
Add display names to all core agents via name field
...
Sisyphus (Ultraworker), Hephaestus (Deep Agent), Prometheus (Plan Builder),
Atlas (Plan Executor), Metis (Plan Consultant), Momus (Plan Critic).
Requires opencode fix: Agent.get() fallback to name-based lookup when key
lookup fails, since opencode stores agent.name in messages and reuses it
for subsequent Agent.get() calls.
2026-02-16 20:15:58 +09:00
YeonGyu-Kim
91734ded77
Update agent display names: add Hephaestus (Deep Agent), rename Atlas to (Plan Executor), rename Momus to (Plan Critic)
2026-02-16 20:12:24 +09:00
YeonGyu-Kim
e97f8ce082
Revert "Add display names to core agents: Sisyphus (Ultraworker), Hephaestus (Deep Agent), Prometheus (Plan Builder), Atlas (Plan Executor)"
...
This reverts commit 655899a264 .
2026-02-16 20:12:24 +09:00
YeonGyu-Kim
1670b4ecda
Revert "Add display names to Metis (Plan Consultant) and Momus (Plan Critic)"
...
This reverts commit 301847011c .
2026-02-16 20:12:24 +09:00