Commit Graph

1787 Commits

Author SHA1 Message Date
YeonGyu-Kim
1e05f4770e fix(cli-run): retry server start on port binding race condition
When port appears available but binding fails (race with another opencode
instance), retry on next available port (auto mode) or attach to existing
server (explicit port mode) instead of crashing with exit code 1.
2026-02-18 15:01:09 +09:00
YeonGyu-Kim
c21e0b094f fix(cli-run): strip ANSI codes in think block test assertions for CI compatibility 2026-02-18 02:13:41 +09:00
YeonGyu-Kim
2f659e9b97 fix(cli-run): improve agent header and think block spacing
Add newlines around agent header for visual separation, dim the thinking
label, and add trailing newline after think block close.

🤖 Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) assistance
2026-02-18 02:01:16 +09:00
YeonGyu-Kim
d9751bd5cb fix(cli-run): deduplicate tool headers and message counter resets on repeated events
Guard against duplicate tool header/output rendering when both tool.execute
and message.part.updated fire for the same tool, and prevent message counter
resets when message.updated fires multiple times for the same assistant message.

🤖 Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) assistance
2026-02-18 02:01:08 +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
04e95d7e27 refactor(cli-run): stream reasoning text instead of summarized thinking line
Replace the single-line "Thinking: <summary>" rendering with direct streaming
of reasoning tokens via writePaddedText. Removes maybePrintThinkingLine and
renderThinkingLine in favor of incremental output with dim styling.

🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-02-18 01:14:01 +09:00
YeonGyu-Kim
0bffdc441e feat(hooks): add sisyphus-gpt-hephaestus-reminder hook
Shows error toast when Sisyphus runs with a GPT model, nudging user to
use Hephaestus instead.

🤖 Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-02-18 01:08:40 +09:00
YeonGyu-Kim
eaf315a8d7 feat(cli-run): add streaming delta, think block rendering, and rich tool headers
Adds message.part.delta event handling for real-time streaming output,
reasoning/think block display with in-place updates, per-agent profile
colors, padded text output, and semantic tool headers with icons.

🤖 Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-02-18 01:08:39 +09:00
YeonGyu-Kim
24d5d50c6f fix(prometheus): replace single atomic write with incremental Write+Edit protocol (#1904) 2026-02-17 18:02:45 +09:00
YeonGyu-Kim
d0bd24bede fix(cli-run): rely on continuation markers for completion
Use hook-written continuation marker state to gate run completion checks and remove the noisy event-stream shutdown timeout log in run mode.
2026-02-17 17:50:47 +09:00
YeonGyu-Kim
0d888df879 fix(cli-run): avoid infinite wait on missing child status
Treat child sessions missing from session.status as transient so completion polling can proceed while still blocking on explicit non-idle descendants.
2026-02-17 16:15:25 +09:00
YeonGyu-Kim
5f9cfcbcf3 feat(cli-run): show agent/model header and suppress toast output 2026-02-17 16:11:34 +09:00
YeonGyu-Kim
4d3cce685d refactor: remove cli run timeout path and rely on strict completion 2026-02-17 16:01:57 +09:00
YeonGyu-Kim
7b2c2529fe fix: enforce continuation-aware completion gating 2026-02-17 16:01:57 +09:00
YeonGyu-Kim
47a8c3e4a9 fix: harden run completion checks and graceful timeout 2026-02-17 16:01:57 +09:00
YeonGyu-Kim
5f5b476f12 fix: gate run event traces behind --verbose 2026-02-17 16:01:57 +09:00
YeonGyu-Kim
991dcdb6c1 Merge pull request #1845 from iyoda/refactor/consolidate-port-utils
refactor(mcp-oauth): consolidate duplicate port utilities into shared/port-utils
2026-02-17 15:59:51 +09:00
YeonGyu-Kim
f4eef9f534 Merge pull request #1907 from BowTiedSwan/fix/json-retry-loop
feat(hooks): add json-error-recovery hook to prevent infinite retry loops
2026-02-17 15:59:44 +09:00
YeonGyu-Kim
8384fd1d07 Merge pull request #1911 from jkoelker/preserve-default-agent
fix(config): normalize configured default_agent
2026-02-17 15:59:36 +09:00
code-yeongyu
a2ad7ce6a7 fix(config): scope default_agent normalization to Sisyphus mode 2026-02-17 15:50:08 +09:00
YeonGyu-Kim
5f939f900a fix(hooks): harden json-error-recovery matching and scope 2026-02-17 15:46:21 +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
1fb6a7cc80 refactor: remove 16 orphaned files from background-agent 2026-02-17 14:08:38 +09:00
YeonGyu-Kim
d3b79064c6 refactor: remove orphaned modules/ directory from background-task 2026-02-17 14:08:30 +09:00
YeonGyu-Kim
744dee70e9 refactor: remove 3 orphaned files and unused import from tmux-subagent 2026-02-17 14:08:28 +09:00
YeonGyu-Kim
0265fa6990 refactor: remove 3 orphaned files from background-agent/spawner 2026-02-17 14:08:12 +09:00
YeonGyu-Kim
e3342dcd4a refactor(prompts): replace markdown tables with bullet lists, harden Oracle protection
Convert all markdown tables in Sisyphus and dynamic-agent-prompt-builder
to plain bullet lists for cleaner prompt rendering.

Add explicit Oracle safeguards:
- Hard Block: background_cancel(all=true) when Oracle running
- Hard Block: delivering final answer before collecting Oracle result
- Anti-Pattern: background_cancel(all=true) and skipping Oracle
- Oracle section: NEVER cancel, collect via background_output first
- Background Result Collection: split cancel/wait into separate steps
  with explicit NEVER use background_cancel(all=true) instruction
2026-02-17 13:26:37 +09:00
YeonGyu-Kim
3facf9fac3 docs: fix structural counts in AGENTS.md (hook handlers 7→8, tool dirs 14→15, core hooks 33→32, session hooks 20→19, config merge order) 2026-02-17 11:26:28 +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
d786691260 fix: read anthropic 1m flag from live model cache state 2026-02-17 10:51:01 +09:00
YeonGyu-Kim
363016681b test: cover model-cache and env fallback context limits 2026-02-17 10:51:01 +09:00
YeonGyu-Kim
b444899153 fix: use model cache context flag for runtime context limits 2026-02-17 10:51:01 +09:00
YeonGyu-Kim
8e115c7f9d fix: export fallback availability from traced module 2026-02-17 10:47:09 +09:00
Jason Kölker
a562e3aa4b fix(config): normalize configured default_agent
Agent keys are remapped to display names, so preserving `default_agent`
values could still select a missing key at runtime.

This regression surfaced after d94a739203 remapped `config.agent` keys
to display names without canonicalizing configured defaults.

Normalize configured `default_agent` through display-name mapping before
fallback logic and extend tests to cover canonical and display-name
inputs.
2026-02-17 01:45:47 +00:00
YeonGyu-Kim
ca06ce134f fix: add fallback resolution warnings for unavailable models 2026-02-17 10:29:48 +09:00
YeonGyu-Kim
72fa2c7e65 fix(tmux): stop layout override after spawn, use configured main pane size
Remove applyLayout(select-layout main-vertical) call after spawn which
was destroying grid arrangements by forcing vertical stacking. Now only
enforceMainPaneWidth is called, preserving the grid created by manual
split directions. Also fix enforceMainPaneWidth to use config's
main_pane_size percentage instead of hardcoded 50%.
2026-02-17 09:50:17 +09:00
YeonGyu-Kim
b3c5f4caf5 fix(tmux): use actual pane dimensions and configured min width for grid calculation
Agent area width now uses real mainPane.width instead of hardcoded 50%
ratio. Grid planning, split availability, and spawn target finding now
respect user's agent_pane_min_width config instead of hardcoded
MIN_PANE_WIDTH=52, enabling 2-column grid layouts on narrower terminals.
2026-02-17 09:48:18 +09:00
YeonGyu-Kim
219c1f8225 update: always wait for Oracle results instead of blanket background_cancel(all=true) 2026-02-17 09:42:59 +09:00
bowtiedswan
86f2a93fc9 feat(hooks): add json-error-recovery hook to prevent infinite retry loops 2026-02-16 21:35:58 +02:00
YeonGyu-Kim
84a83922c3 fix: stop tracking sessions that never become ready
When session readiness times out, immediately close the spawned pane and skip tracking to prevent stale mappings from causing reopen and close anomalies.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-17 03:40:55 +09:00
YeonGyu-Kim
17da22704e fix: size main pane using configured layout percentage
Main pane resize now uses main_pane_size instead of a hardcoded 50 percent fallback so post-split layout remains stable and predictable.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-17 03:40:46 +09:00
YeonGyu-Kim
da3f24b8b1 fix: align split targeting with configured pane width
Use the configured agent pane width consistently in split target selection and avoid close+spawn churn by replacing the oldest pane when eviction is required.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-17 03:40:37 +09:00
YeonGyu-Kim
b02721463e refactor: route status porcelain map parsing through line parser 2026-02-17 03:29:10 +09:00
YeonGyu-Kim
1f31a3d8f1 test: add dedicated status porcelain line parser with coverage 2026-02-17 03:29:01 +09:00
YeonGyu-Kim
1566cfcc1e update: Hephaestus completion guarantee, Sisyphus-Junior Hephaestus-style rewrite, snake_case tools
Hephaestus:
- Add Completion Guarantee section with Codex-style persistence framing
- Add explicit explore/librarian call syntax examples (subagent_type, not category)
- Use positive 'keep going until resolved' over negative 'NEVER stop'
- Fix tool names: TaskCreate/TaskUpdate → task_create/task_update

Sisyphus-Junior GPT:
- Full Hephaestus-style rewrite: autonomy, reporting, parallelism, tool usage
- Remove Blocked & Allowed Tools section and 'You work ALONE' messaging
- Add Progress Updates, Ambiguity Protocol, Code Quality sections
- Fix tool names: TaskCreate/TaskUpdate → task_create/task_update

Sisyphus-Junior Default:
- Remove buildConstraintsSection and blocked actions messaging
- Fix tool names: TaskCreate/TaskUpdate → task_create/task_update

Tests: update all assertions for new prompt structure (31/31 pass)
2026-02-17 03:12:32 +09:00
YeonGyu-Kim
2b5887aca3 fix: prevent overlapping poll cycles in managers
Guarding polling re-entry avoids stacked async polls under slow responses, and unref on pending-call cleanup timer reduces idle wakeups.
2026-02-17 03:06:40 +09:00
YeonGyu-Kim
8c88da51e1 update: soften Hephaestus brevity bias — replace 'brief/briefly' with 'clear' throughout
Replace 7 instances of brief/briefly that caused over-terse behavior:
- 'briefly restate' → 'restate'
- 'brief summary' → 'clear summary'
- 'briefly state the WHY' → 'explain the WHY' (×2)
- 'brief context' → 'clear context'
- 'Brief updates' → 'Clear updates (a few sentences)'
- 'keep it brief and clear' → 'keep it clear and helpful'
2026-02-17 02:58:42 +09:00
YeonGyu-Kim
199992e05b update: Hephaestus prompt — restore intent gate, strengthen parallelism and reporting
- Restore Assumptions Check and When to Challenge the User from Sisyphus intent gate
- Add proactive explore/librarian firing to CORRECT behavior list
- Strengthen parallel execution with GPT-5.2 tool_usage_rules (parallelize ALL independent calls)
- Embed reporting into each Execution Loop step (Tell user pattern)
- Strengthen Progress Updates with plain-language and WHY-not-just-WHAT guidance
- Add post-edit reporting to Output Contract and After Implementation
- Fix Output Contract preamble conflict (skip empty preambles, but DO report actions)
2026-02-17 02:56:22 +09:00
YeonGyu-Kim
6b546526f3 refactor: diet Hephaestus prompt — remove redundancy, add progress updates and skill examples
- Remove router nudge (reasoning configuration section)
- Remove redundant sections: Role & Agency, Judicious Initiative, Success
  Criteria, Response Compaction, Soft Guidelines
- Merge Identity + Core Principle into compact Identity section
- Restore autonomous behavior policy (FORBIDDEN/CORRECT) from Role & Agency
- Add Progress Updates section with friendly tone and concrete examples
- Add Skill Loading Examples table (frontend-ui-ux, playwright, git-master, tauri)
- Condense Parallel Execution, Execution Loop, Verification, Failure Recovery
- Update Output Contract with friendly communication style

651 → 437 lines (33% reduction), behavior preserved
2026-02-17 02:46:11 +09:00