github-actions[bot]
1cf918362d
release: v3.8.4
2026-02-23 17:11:38 +00:00
YeonGyu-Kim
58c396c861
fix(test): sync AGENTS_WITH_TODO_DENY with tool-config-handler implementation
2026-02-24 02:08:30 +09:00
YeonGyu-Kim
a117780132
test(hashline-edit): cover concise responses and anchor alias normalization
...
Update expectations to the new pi-style response contract and add cases for one-anchor replace_lines fallback plus after_line alias handling.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 18:51:37 +09:00
YeonGyu-Kim
fdc4a5a2ad
refactor(hashline-edit): adopt normalized single-shape edit input
...
Keep current field names but accept a pi-style flexible edit payload that is normalized to concrete operations at execution time.
Response now follows concise update/move status with diff metadata retained, removing full-file hashline echo to reduce model feedback loops.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 18:51:32 +09:00
YeonGyu-Kim
e97679eaa9
refactor(hashline-edit): stabilize hashes and tighten prefix stripping
...
Switch line hashing to significance-aware seeding so meaningful lines stay stable across reflows while punctuation-only lines still disambiguate by line index.
Also narrow prefix stripping to hashline/diff patterns that reduce accidental content corruption during edit normalization.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 18:51:25 +09:00
github-actions[bot]
8f8b18c089
@DMax1314 has signed the CLA in code-yeongyu/oh-my-opencode#2068
2026-02-23 07:06:25 +00:00
YeonGyu-Kim
f79aa04f12
fix(tools/call-omo-agent): replace as any with Record type cast in session-creator
...
Cast session body to Record<string, unknown> instead of as any
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:43:48 +09:00
YeonGyu-Kim
94adb0b08e
chore(assets): regenerate JSON schema
...
Regenerate oh-my-opencode.schema.json after config export changes
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:43:19 +09:00
YeonGyu-Kim
05b42ff944
refactor(config): remove unused barrel exports
...
Clean up unused re-exports from config barrel file
Remove 14 unused schema exports identified by knip analysis
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:43:17 +09:00
YeonGyu-Kim
4b043c9d0b
refactor(agents/prometheus): remove unused barrel exports
...
Clean up unused re-exports from prometheus agents barrel file
Remove 9 unused exports identified by knip analysis
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:43:16 +09:00
YeonGyu-Kim
86a5bf32f6
refactor(agents/atlas): remove unused barrel exports
...
Clean up unused re-exports from atlas agents barrel file
Remove 12 unused exports identified by knip analysis
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:43:14 +09:00
YeonGyu-Kim
3a6a00a445
refactor(agents): remove unused barrel exports
...
Clean up unused re-exports from agents barrel file
Remove 24 unused exports identified by knip analysis
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:43:12 +09:00
YeonGyu-Kim
6c2d43630b
refactor(features): remove empty barrel files
...
Delete 2 empty barrel index.ts files:
- claude-tasks/index.ts
- mcp-oauth/index.ts
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:43:11 +09:00
YeonGyu-Kim
61315dd149
refactor(hooks): remove dead hook files
...
Delete 3 unused hook files:
- hashline-edit-diff-enhancer/index.ts (and test file)
- session-recovery/recover-empty-content-message.ts
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:43:08 +09:00
YeonGyu-Kim
6764dea1b3
refactor(shared): remove dead utility files
...
Delete 4 unused utility files:
- models-json-cache-reader.ts
- open-code-client-accessors.ts
- open-code-client-shapes.ts
- provider-models-cache-model-reader.ts
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:43:06 +09:00
YeonGyu-Kim
acc7083570
refactor(tools/call-omo-agent): remove dead code submodules
...
Delete 3 unused files in call-omo-agent module:
- session-completion-poller.ts
- session-message-output-extractor.ts
- subagent-session-prompter.ts
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:43:04 +09:00
YeonGyu-Kim
56167c6f23
refactor(features/background-agent): remove dead code submodules
...
Delete 15 unused files in background-agent module:
- background-task-completer.ts
- format-duration.ts
- message-dir.ts
- parent-session-context-resolver.ts
- parent-session-notifier.ts (and its test file)
- result-handler-context.ts
- result-handler.ts
- session-output-validator.ts
- session-task-cleanup.ts
- session-todo-checker.ts
- spawner/background-session-creator.ts
- spawner/concurrency-key-from-launch-input.ts
- spawner/spawner-context.ts
- spawner/tmux-callback-invoker.ts
Update index.ts barrel and manager.ts/spawner.ts imports
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:43:01 +09:00
YeonGyu-Kim
556bad0e22
fix(plugin/hooks): remove unnecessary as any cast
...
Remove as any from modelCacheState parameter
Structural typing works without explicit cast
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:42:45 +09:00
YeonGyu-Kim
2168770bec
fix(shared): fix optional chaining on modelItem
...
Change modelItem.id to modelItem?.id to handle null values
Prevents TypeError when modelItem is null in provider-models cache
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:42:43 +09:00
YeonGyu-Kim
6af5dca1b5
fix(cli/run): replace as any with Record type cast
...
Cast session body to Record<string, unknown> instead of as any
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:42:40 +09:00
YeonGyu-Kim
19e24205ee
fix(tools/delegate-task): replace as any with Record type cast
...
Cast session body to Record<string, unknown> instead of as any
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:42:38 +09:00
YeonGyu-Kim
15bfd4e963
fix(tools/call-omo-agent): replace as any with SessionWithPromptAsync type
...
Add SessionWithPromptAsync local type for promptAsync access
Remove as any cast from session.promptAsync call
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:42:37 +09:00
YeonGyu-Kim
6f4a028042
fix(tools/call-omo-agent): replace as any with SDKMessage interface
...
Add SDKMessage local interface for message type safety
Replace any lambda params and message casts with SDKMessage
Remove eslint-disable comments for no-explicit-any
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:42:34 +09:00
YeonGyu-Kim
832c146e5a
fix(features/task-toast-manager): replace as any with ClientWithTui type
...
Add ClientWithTui local type for tui.showToast access
Remove 2 as any casts and eslint-disable comments
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:42:32 +09:00
YeonGyu-Kim
89a52cc1a8
fix(hooks/shared): replace as any with proper Record type cast
...
Cast pluginConfig.agents to Record type with proper structure
Remove eslint-disable comment for no-explicit-any
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:42:30 +09:00
YeonGyu-Kim
a2e451d646
fix(hooks/thinking-block-validator): replace as any with typed interfaces
...
Add ThinkingPart and MessageInfoExtended local interfaces
Replace 3 as any casts with proper unknown-to-typed casts
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:42:28 +09:00
YeonGyu-Kim
83dfc624bb
fix(hooks/session-recovery): replace @ts-expect-error with proper type cast
...
Add ClientWithPromptAsync local type to avoid @ts-expect-error
Cast client to proper type before calling session.promptAsync
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:42:26 +09:00
YeonGyu-Kim
1985131731
fix(hooks/anthropic-context-window-limit-recovery): remove @ts-ignore comments and fix parameter types
...
Remove @ts-ignore and eslint-disable comments from executor.ts and recovery-hook.ts
- Change client: any to client: Client with proper import
- Rename experimental to _experimental for unused parameter
- Remove @ts-ignore for ctx.client casts
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-23 02:42:24 +09:00
github-actions[bot]
3ceb553aea
@imadal1n has signed the CLA in code-yeongyu/oh-my-opencode#2045
2026-02-22 10:57:45 +00:00
YeonGyu-Kim
7b88dc137c
fix: deny todo tools for prometheus and sisyphus-junior when task_system enabled
...
Amp-Thread-ID: https://ampcode.com/threads/T-019c848f-b2a8-7037-9eb5-a258df14b683
Co-authored-by: Amp <amp@ampcode.com >
2026-02-22 17:58:42 +09:00
YeonGyu-Kim
f9dc71a912
feat(hooks): add Gemini-optimized ultrawork message with intent gate
...
Create dedicated Gemini ultrawork variant that enforces intent
classification as mandatory Step 0 before any action. Routes Gemini
models to the new variant via source-detector priority chain
(planner > GPT > Gemini > default). Includes anti-optimism checkpoint
and tool-call mandate sections tuned for Gemini's eager behavior.
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2026-02-22 17:40:38 +09:00
YeonGyu-Kim
9694525612
feat(agents): add Gemini intent gate enforcement overlay for Sisyphus
...
Counter Gemini's tendency to skip Phase 0 intent classification by
injecting a mandatory self-check gate before tool calls. Includes
intent type classification, anti-skip mechanism, and common mistake
table showing wrong vs correct behavior per intent type.
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2026-02-22 17:40:20 +09:00
YeonGyu-Kim
b9bd713f97
feat(model-fallback): disable model fallback retry by default
...
Model fallback is now opt-in via `model_fallback: true` in plugin config,
matching the runtime-fallback pattern. Prevents unexpected automatic model
switching on API errors unless explicitly enabled.
2026-02-22 17:25:04 +09:00
YeonGyu-Kim
ea0c45ad1b
feat(hooks): wire pluginConfig to preemptive-compaction hook factory
2026-02-22 17:19:46 +09:00
YeonGyu-Kim
ce89364c69
feat(recovery-strategy): apply compaction model override in context window recovery
2026-02-22 17:19:43 +09:00
YeonGyu-Kim
8f9b73c82e
feat(preemptive-compaction): apply compaction model override from agent config
2026-02-22 17:19:39 +09:00
YeonGyu-Kim
6fae60b947
feat(schema): add compaction model and variant override configuration
2026-02-22 17:19:35 +09:00
YeonGyu-Kim
183f12eac0
feat(hooks): add compaction-model-resolver utility for session agent model lookup
2026-02-22 17:19:31 +09:00
YeonGyu-Kim
9b3cd50898
Merge pull request #2041 from code-yeongyu/fix/rewrite-overmocked-tests
...
refactor(tests): rewrite 5 over-mocked test files to test real behavior
2026-02-22 16:54:13 +09:00
YeonGyu-Kim
fac2808e70
chore(tests): remove duplicate test in background-update-check (cubic feedback)
2026-02-22 16:51:04 +09:00
YeonGyu-Kim
584b1478ba
refactor(tests): rewrite 5 over-mocked test files to test real behavior
...
- formatter.test.ts: use dynamic imports with cache-busting to avoid mock pollution from runner.test.ts; test real format output instead of dispatch mocking
- hook.test.ts: rewrite with proper branch coverage (7 tests), add success/guard/subagent paths
- background-update-check.test.ts: rewrite with 10 tests covering all branches (early returns, pinned versions, auto-update success/failure)
- directory-agents-injector/injector.test.ts: replace finder/storage mocks with real filesystem + temp directories, verify actual AGENTS.md injection content
- directory-readme-injector/injector.test.ts: same pattern as agents-injector but for README.md, verifies root inclusion behavior
2026-02-22 16:43:56 +09:00
github-actions[bot]
84e103c41f
release: v3.8.3
2026-02-22 06:46:51 +00:00
YeonGyu-Kim
e2ab76261d
feat(write-existing-file-guard): allow writes outside session directory
...
Remove blocking logic that prevented writes to files outside the
session directory. The guard now only applies to files within the
session directory, allowing free writes to external paths.
- Remove OUTSIDE_SESSION_MESSAGE constant
- Update test to expect outside writes to be allowed
- Add early return for paths outside session directory
- Keep isPathInsideDirectory for session boundary check
TDD cycle:
1. RED: Update test expectation
2. GREEN: Implement early return for outside paths
3. REFACTOR: Clean up unused constants
2026-02-22 15:43:19 +09:00
github-actions[bot]
ef8a332b8f
release: v3.8.2
2026-02-22 06:35:05 +00:00
YeonGyu-Kim
ac081de03e
bun
2026-02-22 15:30:59 +09:00
YeonGyu-Kim
53403eeaad
refactor(background-agent): wire session-idle-event-handler into manager, add unit tests
...
The extracted handleSessionIdleBackgroundEvent was never imported by
manager.ts — dead code from incomplete refactoring (d53bcfbc ). Replace
the inline session.idle handler (58 LOC) with a call to the extracted
function, remove unused MIN_IDLE_TIME_MS import, and add 13 unit tests
covering all edge cases.
2026-02-22 15:30:40 +09:00
YeonGyu-Kim
11ea988c01
feat(agents,hooks): wire Sisyphus Gemini overlays and add Gemini verification reminder
...
Sisyphus: inject TOOL_CALL_MANDATE after intent gate, append delegation
and verification override sections for Gemini models.
Atlas hook: add VERIFICATION_REMINDER_GEMINI with stronger language -
'EXTREMELY SUSPICIOUS', explicit 'NOT reasoning, TOOL CALLS', and
consequence-driven framing for Gemini's optimistic tendencies.
2026-02-22 15:30:40 +09:00
YeonGyu-Kim
e87579b687
feat(agents): wire Gemini prompt routing into Sisyphus-Junior, Atlas, Prometheus
...
Add 'gemini' to prompt source types and route Gemini models to new
Gemini-optimized prompts via isGeminiModel detection. Update barrel
exports for all 3 agent modules. All existing tests pass.
2026-02-22 15:30:40 +09:00
YeonGyu-Kim
3f9b5e6f44
feat(agents): add isGeminiModel detection function with TDD
...
Detects Gemini models via:
- Provider prefixes: google/, google-vertex/
- GitHub Copilot: github-copilot/gemini-*
- Model name: gemini-* (for proxied providers like litellm)
Follows existing isGptModel pattern. All 16 tests pass.
2026-02-22 15:30:40 +09:00
YeonGyu-Kim
0425c75447
feat(agents): add Gemini-optimized prompts for Sisyphus, Sisyphus-Junior, Prometheus, Atlas
...
Gemini models are aggressively optimistic and avoid tool calls in favor of
internal reasoning. These prompts counter that with:
- TOOL_CALL_MANDATE sections forcing actual tool usage
- Anti-optimism checkpoints before claiming completion
- Stronger delegation enforcement (Gemini prefers doing work itself)
- Aggressive verification language (subagent results are 'EXTREMELY SUSPICIOUS')
- Mandatory thinking checkpoints in Prometheus (prevents jumping to conclusions)
- Scope discipline reminders (creativity → implementation quality, not scope creep)
2026-02-22 15:30:40 +09:00