YeonGyu-Kim
f69ae16036
docs(agents): update hook counts 44→46, add hashline-edit documentation
...
- Update root AGENTS.md: hook count 44→46, commit fcb90d92 , generated 2026-02-24
- Update src/AGENTS.md: core hooks 35→37, session hooks 21→23
- Update src/hooks/AGENTS.md: 46 hooks total, add modelFallback/noSisyphusGpt/noHephaestusNonGpt/runtimeFallback, jsonErrorRecovery moved to tool-guard (tier 2)
- Create src/tools/hashline-edit/AGENTS.md (93 lines): documents three-op model, LINE#ID format, execution pipeline
- Refresh timestamps: 2026-02-21→2026-02-24 on 28 files
- Update plugin/AGENTS.md hook composition counts
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2026-02-25 00:02:05 +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
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
f2c989662a
Merge pull request #2030 from acamq/feature/agent-input-notifications
...
feat(notification): alert when agent asks questions or needs permission
2026-02-22 15:09:24 +09:00
Cole Leavitt
7ab4b7510f
fix: plug resource leaks and add hook command timeout
...
- LSP signal handlers: store refs, return unregister handle, call in stopAll()
- session-tools-store: add per-session deleteSessionTools(), wire into session.deleted
- executeHookCommand: add 30s timeout with SIGTERM→SIGKILL escalation
2026-02-21 16:44:59 -07:00
acamq
2f9ec22495
fix(notification): use permission.asked and main-session fallback
2026-02-21 16:42:23 -07:00
acamq
aae4363b56
feat(notification): alert when agent asks questions or needs permission
2026-02-21 16:01:38 -07:00
YeonGyu-Kim
f1246ef110
refactor(hooks): remove beast-mode system integration
...
Remove the beast-mode-system hook and all transform wiring so Copilot-specific prompt injection is fully eliminated from the runtime pipeline.
2026-02-22 01:57:22 +09:00
YeonGyu-Kim
c1f17136b1
feat(config): disable runtime_fallback by default (opt-in)
2026-02-22 01:54:34 +09:00
YeonGyu-Kim
0bb599722e
feat(config): allow runtime_fallback to be configured as boolean
...
Enable simple boolean configuration for runtime_fallback:
- "runtime_fallback": true - Enable with defaults
- "runtime_fallback": false - Disable
- "runtime_fallback": { ... } - Advanced object config (existing)
Updated schema, event handler, chat-message handler, and session hooks
to handle both boolean and object formats.
2026-02-22 01:44:53 +09:00
YeonGyu-Kim
e263156335
fix: resolve ultrabrain review findings
...
- Remove runtime-fallback gate from session.status retry handler — runtime-fallback
has no session.status handler, so gating it causes retry signals to be silently dropped
- Fix background_output full_session arg description: default is true, not false
2026-02-21 16:40:15 +09:00
YeonGyu-Kim
ace914f1ef
fix: resolve publish blockers for v3.7.4→v3.8.0 release
...
- Fix #1991 crash: optional chaining for task-history sessionID access
- Fix #1992 think-mode: add antigravity entries to HIGH_VARIANT_MAP
- Fix #1949 Copilot premium misattribution: use createInternalAgentTextPart
- Fix #1982 load_skills: pass directory to discoverSkills for project-level skills
- Fix command priority: sort scopePriority before .find(), project-first return
- Fix Google provider transform: apply in userFallbackModels path
- Fix ralph-loop TUI: optional chaining for event handler
- Fix runtime-fallback: unify dual fallback engines, remove HTTP 400 from retry,
fix pendingFallbackModel stuck state, add priority gate to skip model-fallback
when runtime-fallback is active
- Fix Prometheus task system: exempt from todowrite/todoread deny
- Fix background_output: default full_session to true
- Remove orphan hooks: hashline-edit-diff-enhancer (redundant with hashline_edit
built-in diff), task-reminder (dead code)
- Remove orphan config entries: 3 stale hook names from Zod schema
- Fix disabled_hooks schema: accept arbitrary strings for forward compatibility
- Register json-error-recovery hook in tool-guard pipeline
- Add disabled_hooks gating for question-label-truncator, task-resume-info,
claude-code-hooks
- Update test expectations to match new behavior
2026-02-21 16:24:18 +09:00
YeonGyu-Kim
611465f9a3
refactor: remove unused 'message' variable from chat-message.ts
2026-02-21 14:31:42 +09:00
YeonGyu-Kim
e4a335a8e9
fix: resolve 5 deployment blockers (runtime-fallback race, hashline legacy, tmux spawn, db open)
...
- runtime-fallback: guard session.error with sessionRetryInFlight to prevent
double-advance during active retry; expand session.stop abort to include
sessionAwaitingFallbackResult; remove premature pendingFallbackModel clearing
from auto-retry finally block
- hashline-edit: add HASHLINE_LEGACY_REF_PATTERN for backward-compatible
LINE:HEX dual-parse in parseLineRef and normalizeLineRef
- tmux-subagent: defer session on null queryWindowState; unconditionally
re-queue deferred session on spawn failure (not just close+spawn)
- ultrawork-db: wrap new Database(dbPath) in try/catch to handle corrupted DB
- event: add try/catch guards around model-fallback logic in message.updated,
session.status, and session.error handlers
2026-02-21 05:59:30 +09:00
YeonGyu-Kim
97245394e7
Merge pull request #2007 from code-yeongyu/fix/1901-ralph-loop-fresh-context
...
feat(ralph-loop): add strategy option for fresh context per iteration
2026-02-21 05:41:12 +09:00
YeonGyu-Kim
73ab0d2cec
fix(rebase): remove duplicated hooks exports and event dispatch artifact
2026-02-21 05:36:11 +09:00
YeonGyu-Kim
419711c2da
fix(plugin): repair event dispatch parse error
...
Remove duplicated dispatchToHooks declaration that broke TypeScript parsing, and isolate chat-headers tests from marker cache collisions with unique message IDs.
2026-02-21 05:34:34 +09:00
YeonGyu-Kim
817292c87a
fix(ci): restore missing hook exports and align config-handler test fixtures
2026-02-21 05:33:53 +09:00
YeonGyu-Kim
e7697567d5
feat(ralph-loop): add strategy option for fresh context per iteration
...
Closes #1901
Add 'default_strategy' config option (default: 'continue') to control whether ralph-loop creates a new session per iteration ('reset') or keeps the same session ('continue'). The 'reset' strategy keeps the model in the smart zone by starting with fresh context for each iteration.
Supports --strategy flag for per-command override.
2026-02-21 05:33:53 +09:00
YeonGyu-Kim
dae64e35ac
fix(plugin): remove stale hook wiring for missing hooks
2026-02-21 05:33:52 +09:00
YeonGyu-Kim
ce55256eaf
docs: update all 31 AGENTS.md files with current project state
2026-02-21 04:38:18 +09:00
YeonGyu-Kim
050b2fb006
test: update model-fallback and chat-headers test expectations
...
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2026-02-21 03:33:42 +09:00
YeonGyu-Kim
4924f62f80
fix(event): remove duplicate dispatchToHooks from merge artifact
...
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2026-02-21 03:33:15 +09:00
YeonGyu-Kim
8a8d21e7bb
fix(model-requirements): remove custom quotio provider, restore standard providers
2026-02-21 03:03:57 +09:00
YeonGyu-Kim
82e4bf07d2
Merge branch 'pr-1959' into dev
...
# Conflicts:
# src/hooks/index.ts
# src/plugin/event.ts
# src/tools/delegate-task/sync-task.ts
2026-02-21 02:49:39 +09:00
YeonGyu-Kim
f08c12c209
fix: resolve post-rebase runtime fallback merge leftovers
2026-02-21 02:45:48 +09:00
YeonGyu-Kim
b17743e50c
fix(ultrawork-db): wrap microtask/setTimeout callbacks in try/catch/finally
...
Unhandled SQLite exceptions (SQLITE_BUSY, database locked, etc.) in queueMicrotask/setTimeout callbacks could crash the entire process. Added try/catch/finally to ensure db.close() is always called and errors are logged instead of crashing.
2026-02-21 02:42:16 +09:00
YeonGyu-Kim
3b8fba99a6
fix(chat-headers): cache internal marker lookups to prevent N+1 API calls
...
- BUG-4: Add in-memory cache for hasInternalMarker() results with 1000-entry limit
- Eliminates redundant session.message API calls for copilot marker detection
2026-02-21 02:41:46 +09:00
um1ng
f5f54ae1ed
feat(runtime-fallback): automatic model switching on API errors
...
Implements runtime model fallback that automatically switches to backup models
when the primary model encounters transient errors (rate limits, overload, etc.).
Features:
- runtime_fallback configuration with customizable error codes, cooldown, notifications
- Runtime fallback hook intercepts API errors (429, 503, 529)
- Support for fallback_models from agent/category configuration
- Session-state TTL and periodic cleanup to prevent memory leaks
- Robust agent name detection with explicit AGENT_NAMES array
- Session category registry for category-specific fallback lookup
Schema changes:
- Add RuntimeFallbackConfigSchema with enabled, retry_on_errors, max_fallback_attempts,
cooldown_seconds, notify_on_fallback options
- Add fallback_models to AgentOverrideConfigSchema and CategoryConfigSchema
- Add runtime-fallback to HookNameSchema
Files added:
- src/hooks/runtime-fallback/index.ts - Main hook implementation
- src/hooks/runtime-fallback/types.ts - Type definitions
- src/hooks/runtime-fallback/constants.ts - Constants and defaults
- src/hooks/runtime-fallback/index.test.ts - Comprehensive tests
- src/config/schema/runtime-fallback.ts - Schema definition
- src/shared/session-category-registry.ts - Session category tracking
Files modified:
- src/hooks/index.ts - Export runtime-fallback hook
- src/plugin/hooks/create-session-hooks.ts - Register runtime-fallback hook
- src/config/schema.ts - Export runtime-fallback schema
- src/config/schema/oh-my-opencode-config.ts - Add runtime_fallback config
- src/config/schema/agent-overrides.ts - Add fallback_models to agent config
- src/config/schema/categories.ts - Add fallback_models to category config
- src/config/schema/hooks.ts - Add runtime-fallback to hook names
- src/shared/index.ts - Export session-category-registry
- docs/configurations.md - Add Runtime Fallback documentation
- docs/features.md - Add runtime-fallback to hooks list
Supersedes #1237 , #1408
Closes #1408
2026-02-21 02:36:56 +09:00
Rebase Bot
a49f80dd0b
feat(config): add runtime_fallback and fallback_models schema
...
Add configuration schemas for runtime model fallback feature:
- RuntimeFallbackConfigSchema with enabled, retry_on_errors,
max_fallback_attempts, cooldown_seconds, notify_on_fallback
- FallbackModelsSchema for init-time fallback model selection
- Add fallback_models to AgentOverrideConfigSchema and CategoryConfigSchema
- Export types and schemas from config/index.ts
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-21 02:28:27 +09:00
YeonGyu-Kim
4b09428d7b
Merge pull request #1981 from VespianRex/fix/fallback-sync-model-ui
...
Fix model fallback retries for main, background, and sync subagents + show runtime fallback model in task UI
2026-02-21 02:28:18 +09:00
YeonGyu-Kim
598e451ca7
Merge pull request #1952 from gustavosmendes/codex/fix-write-existing-file-guard-1871
...
fix: make write-existing-file-guard read-gated with overwrite bypass
2026-02-21 02:17:11 +09:00
VespianRex
8ccb1eaef0
Address review feedback for fallback fixes
2026-02-20 17:46:12 +02:00
VespianRex
ff78a7f46a
Fix model fallback across main/background/sync agents
2026-02-20 17:45:53 +02:00
YeonGyu-Kim
ce7a5427c0
fix(variant): respect TUI variant and enforce max in ultrawork mode
...
- keyword-detector: always set variant to 'max' when ultrawork/ulw keyword detected
- chat-message: remove variant resolution logic to passthrough TUI variant unchanged
- Tests updated to reflect new behavior
🤖 Generated with OhMyOpenCode assistance
2026-02-20 17:47:21 +09:00
YeonGyu-Kim
bce12d2fdc
Merge pull request #1953 from maximharizanov/fix/copilot-initiator-attribution
...
fix(copilot): mark internal hook injections as agent-initiated
2026-02-20 11:54:01 +09:00
YeonGyu-Kim
f30c656ebf
fix(config): promote hashline_edit to top-level flag
...
Move hashline_edit out of experimental so it is a stable top-level config with default-on runtime behavior and explicit disable support. Add migration and tests to preserve existing experimental.hashline_edit users without breaking configs.
2026-02-20 11:12:33 +09:00
YeonGyu-Kim
e849cfe819
feat(hooks): add no-hephaestus-non-gpt hook to enforce GPT-only for Hephaestus
2026-02-20 10:49:04 +09:00
Maxim Harizanov
2e5fd99918
fix(types): restore CI compatibility for plugin hooks and tool context
2026-02-19 13:40:38 +02:00
Maxim Harizanov
8b4a1972ea
fix(copilot): keep notifications visible and detect marker via message lookup
2026-02-19 13:17:02 +02:00
Maxim Harizanov
dcfe72e989
fix(copilot): mark internal background notifications as agent-initiated
2026-02-19 13:17:02 +02:00
YeonGyu-Kim
ce44445946
update docs
2026-02-19 18:41:37 +09:00
YeonGyu-Kim
c5a7a6d410
fix(ultrawork): use session agent fallback and skip same-model override
2026-02-19 18:40:42 +09:00
YeonGyu-Kim
347ce0005f
fix(ultrawork): respect variant-only schema overrides
...
Allow ultrawork overrides configured with only variant to apply at message time so thinking level is honored even without model replacement.
2026-02-19 18:40:42 +09:00
YeonGyu-Kim
0af912a87d
feat(ultrawork): implement per-message model override with deferred DB retry strategy
...
- Add per-message ultrawork mode detection via keyword matching
- Implement deferred DB override strategy using microtask retry loop
- Fall back to setTimeout after 10 microtask retries for robustness
- Update agent configuration schema with ultrawork model/variant fields
- Integrate with chat.message hook to apply overrides on detection
- Add comprehensive tests for all override scenarios
- Generated schema includes ultrawork configuration
🤖 Generated with assistance of OhMyOpenCode (https://github.com/code-yeongyu/oh-my-opencode )
2026-02-19 18:40:42 +09:00
YeonGyu-Kim
9a46843f4d
feat(hooks): add hashline-edit-diff-enhancer for TUI inline diff display
...
Capture file content before hashline edit execution and compute filediff
metadata after, enabling opencode TUI to render inline diffs for the
plugin's edit tool (which replaces the built-in EditTool).
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
d5f85eb9c4
feat(hashline): enable hashline-edit by default
...
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2026-02-19 10:46:40 +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