Commit Graph

6665 Commits

Author SHA1 Message Date
YeonGyu-Kim d7d023bf27 Merge pull request #4072 from PeterPonyu/fix/3645-runtime-fallback-git-silent-fail
fix(runtime-fallback): fall back to synthetic continuation when session messages are empty (#3645)
2026-05-21 12:58:30 +09:00
YeonGyu-Kim 689ad9970b Merge pull request #4079 from PeterPonyu/refactor/3694-extract-analyze-constants
refactor(keyword-detector): consolidate analyze pattern/message into analyze/default and document delegate_task params (#3694)
2026-05-21 12:58:27 +09:00
YeonGyu-Kim c5b1bff33f Merge pull request #4080 from PeterPonyu/docs/3469-mcp-list-plugin-vs-native
docs(mcp): clarify plugin-injected MCPs do not appear in opencode mcp list (#3469)
2026-05-21 12:58:24 +09:00
YeonGyu-Kim 9cca6848c9 Merge pull request #4081 from PeterPonyu/feat/4004-agent-display-name-i18n
feat(agents): support per-agent displayName for i18n (#4004)
2026-05-21 12:58:21 +09:00
YeonGyu-Kim acedacc5e7 Merge pull request #4084 from pizzav-xyz/feature/keyword-detector-enabled-expansions
feat(keyword-detector): add enabled_expansions config for allowlist control
2026-05-21 12:58:18 +09:00
YeonGyu-Kim ba5bc0ef4f Merge pull request #4092 from code-yeongyu/fix/status-timeout-hang
fix(shared): add timeout to isSessionActive to prevent infinite hang
2026-05-21 12:58:14 +09:00
YeonGyu-Kim a7401a34ac Merge pull request #4157 from ririnto/docs/config-reference-alignment
docs: align config reference with implementation
2026-05-21 12:58:11 +09:00
YeonGyu-Kim 323e53f3a5 Merge pull request #4181 from devswha/docs/add-vibetip-docs-link
docs(readme): add docs site badge linking to omo.vibetip.help/docs
2026-05-21 12:58:07 +09:00
YeonGyu-Kim b40426ca1b Merge pull request #4190 from herjarsa/feat/default-mode
feat(default-mode): auto-activate ultrawork and ralph loop without commands
2026-05-21 12:58:04 +09:00
YeonGyu-Kim d502900201 Merge pull request #4221 from heunghingwan/feat/plan-format-validator
Add plan format validator hook to detect malformed task labels
2026-05-21 12:58:01 +09:00
YeonGyu-Kim e4049b7ab3 Merge pull request #4222 from andomeder/wip/pr1-skip-disconnected-explicit-provider-fallbacks
fix(background-agent): skip disconnected explicit-provider fallbacks
2026-05-21 12:57:58 +09:00
YeonGyu-Kim bd61479315 Merge pull request #4227 from code-yeongyu/fix/post-4106-cleanup-20260521
fix: clean up post-4106 prompt gate artifacts
2026-05-21 12:53:17 +09:00
YeonGyu-Kim 95291fa4ed chore(evidence): refresh package layering refactor notes 2026-05-21 12:50:10 +09:00
YeonGyu-Kim fc0f4cc9ee chore(model-core): remove unused generated snapshot (DI strategy makes it dead) 2026-05-21 12:50:10 +09:00
YeonGyu-Kim f6a2ff3541 test(coupling-audit): allowlist dual-runtime spawn shims 2026-05-21 12:50:10 +09:00
YeonGyu-Kim 2f26f78f0d chore(evidence): backfill PASS sentinels in empty evidence files
Backfilled explicit PASS sentinel content in 14 evidence files:
- .omo/evidence/task-1-baseline.txt
- .omo/evidence/task-2-package-exists.txt
- .omo/evidence/task-2-no-coupling.txt
- .omo/evidence/task-2-reexports.txt
- .omo/evidence/task-2-tests.txt
- .omo/evidence/task-3-no-coupling.txt
- .omo/evidence/task-3-di-interface.txt
- .omo/evidence/task-3-tests.txt
- .omo/evidence/task-5-tests.txt
- .omo/evidence/task-5-no-coupling.txt
- .omo/evidence/task-9-loc-check.txt
- .omo/evidence/task-9-tests.txt
- .omo/evidence/task-9-no-coupling.txt
- .omo/evidence/w2-qa-coupling-sweep.txt
2026-05-21 12:50:10 +09:00
YeonGyu-Kim 017f05dddb refactor(packages/model-core): eliminate src/ back-imports via dependency injection 2026-05-21 12:50:10 +09:00
YeonGyu-Kim e15461febc refactor(model-core): inject bundled capabilities snapshot from harness
- remove bundled snapshot dependency on src/generated in model-core

- make shared harness provide runtime bundled snapshot

- update guardrail and capability tests to pass explicit snapshot

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-21 12:50:10 +09:00
YeonGyu-Kim 2462d7af29 refactor(model-core): remove src back-imports via core utilities and adapter
- move fuzzyMatchModel and transformModelForProvider into model-core

- replace connected-providers re-export with adapter contract

- route shared wrappers through model-core exports

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-21 12:50:10 +09:00
YeonGyu-Kim 819bf0d11f chore: update meta-audits + add opencode coupling grep gate 2026-05-21 12:50:10 +09:00
YeonGyu-Kim a089d4a584 docs: update AGENTS.md + ROADMAP.md for package layering refactor 2026-05-21 12:50:10 +09:00
YeonGyu-Kim faf4a2d349 chore: post-W2 cleanup (remove orphan rules-core dir + W2-QA evidence) 2026-05-21 12:50:10 +09:00
YeonGyu-Kim 27e434578a docs: update rules-core → rules-engine references
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-21 12:50:10 +09:00
YeonGyu-Kim 4bbf1d9388 refactor(packages): rename rules-core to rules-engine
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-21 12:50:10 +09:00
YeonGyu-Kim 7c7aa28160 refactor(packages): extract agents-md-core package 2026-05-21 12:50:10 +09:00
YeonGyu-Kim 2748009ff2 refactor(packages): extract model-core package 2026-05-21 12:49:50 +09:00
YeonGyu-Kim f7ceb03efe refactor(packages): extract boulder-state package 2026-05-21 12:49:33 +09:00
YeonGyu-Kim 7028c1f40a refactor(packages): extract comment-checker-core package 2026-05-21 12:49:10 +09:00
YeonGyu-Kim 3b303e79f4 refactor(packages): extract ast-grep-core from ast-grep-mcp 2026-05-21 12:48:43 +09:00
YeonGyu-Kim a5c1d71001 refactor(packages): extract utils package 2026-05-21 12:48:43 +09:00
YeonGyu-Kim c4fe747e15 chore: baseline measurements for package layering refactor 2026-05-21 12:45:21 +09:00
YeonGyu-Kim 8979e198ca Merge pull request #4226 from code-yeongyu/fix/background-notification-active-turn-queue
fix(background-agent): defer parent wakes during active turns
2026-05-21 12:17:33 +09:00
YeonGyu-Kim 0ad4d974f1 fix(background-agent): preserve parent activity across idle events
Cubic caught that clearing recent parent activity on session.idle could reopen the stale-idle race. Keep the fresh activity marker until its normal expiry so background completions still defer while the parent turn is actively reasoning.

Red: parent idle after fresh reasoning delta dispatched an unexpected parent wake. Green: focused parent-wake regression suite passes.
2026-05-21 12:07:40 +09:00
YeonGyu-Kim ced36bffc1 refactor: split prompt async gate modules
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-21 12:00:01 +09:00
YeonGyu-Kim 3717b33247 chore: remove leaked debugging artifact
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-21 11:59:44 +09:00
YeonGyu-Kim a8201726ef fix(background-agent): defer parent wakes during active turns
Record fresh parent session message activity before parent-wake flushing so stale idle status cannot dispatch a background completion into a live reasoning turn.

Add regression coverage for the Discord 4.2.3/OpenCode 1.15.5 duplicate-branch repro shape where a parent reasoning delta arrives before the background all-complete wake.

Refs #4212

Refs #4019

Refs #3774

Plan: plans/background-notification-active-turn-queue.md
2026-05-21 11:50:30 +09:00
YeonGyu-Kim 8b52612449 Merge pull request #4194 from MoerAI/fix/lsp-windows-cli-path-separator
fix(mcp): normalize path separators in LSP/ast-grep cli candidate detection (fixes #4151)
2026-05-21 11:44:28 +09:00
ZeyuFu 9bd2a9d7a9 fix(runtime-fallback): fall back to synthetic continuation when session messages are empty (#3645)
When the working directory contains a .git folder the OpenCode server
normalises the project root to the git root before persisting messages.
This creates a race: the 429/503/529 error event can fire before the
user's message is committed to storage, so session.messages returns []
and getLastUserRetryParts returns an empty array.  The previous code
treated that as a silent no-op (cleared all retry state, Sisyphus stalled).

Fix: when fetchedParts is empty, emit a structured log explaining the
.git-directory race and fall back to a synthetic { type:"text", text:"continue" }
part — matching the pattern already used by autoContinueAfterFallback in
event.ts.  The fallback dispatch always proceeds regardless of whether
the messages API can return user parts.

Update four tests that fired two consecutive session.error events relying
on the old silent-stop behaviour: add top-level model fields to the second
error so the awaiting-fallback gate recognises it as coming from the
dispatched fallback model and lets it through normally.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 22:29:59 -04:00
YeonGyu-Kim 20ba83e19e test(mcp): remove stale lsp exists import 2026-05-21 11:24:18 +09:00
MoerAI ed6e9955da fix(mcp): normalize path separators in LSP/ast-grep cli candidate detection (fixes #4151)
On Windows, path.resolve() returns paths with backslash separators. The previous endsWith("dist/cli.js") check uses forward slashes and always returned false on Windows, causing both LSP and ast-grep MCPs to fall through to the bootstrap path even when the dist cli exists. Result: LSP MCP completely unusable on Windows with MODULE_NOT_FOUND for dist/packages/lsp-tools-mcp/dist/cli.js.

Fix: derive a platform-aware suffix at module load time by replacing forward slashes in DIST_CLI_REL / SOURCE_CLI_REL with path.sep, then use that suffix in the endsWith check.

Verification: all 4 src/mcp/lsp.test.ts cases pass on Windows (previously 2 failed); all 13 src/mcp/ast-grep.test.ts cases pass (previously 2 failed). Total: 17/17 src/mcp tests green. bun run typecheck clean.
2026-05-21 11:20:25 +09:00
William Obino 5a965fb44f fix(background-agent): skip disconnected explicit-provider fallbacks 2026-05-21 02:55:18 +03:00
heunghingwan cfe29168aa Fix ambiguous FN. notation in Final Wave label instructions
Replace 'FN.' shorthand with explicit examples 'F1.', 'F2.' to prevent
LLMs from generating literal 'FN.' labels that the parser rejects.

Identified by cubic.
2026-05-21 05:26:32 +08:00
github-actions[bot] fcb96841f8 @heunghingwan has signed the CLA in code-yeongyu/oh-my-openagent#4221 2026-05-20 21:22:11 +00:00
heunghingwan 73b5a7eb0e Add plan format validator hook to detect malformed task labels
- Strengthen Prometheus plan template with FORMAT constraint
- Add task label format check to Oracle phase-2 (N/6 → N/7)
- Add format checks to self-review checklist
- New plan-format-validator hook: compares raw checkbox count
  against getPlanProgress() after plan writes, warns agent when
  labels are malformed (0/0 or partial skip scenarios)
2026-05-21 05:17:54 +08:00
YeonGyu-Kim a6e4691fcc fix: remove duplicate local isRecord declaration (conflicts with import) 2026-05-21 03:17:52 +09:00
YeonGyu-Kim 97c73b41bf Merge pull request #3147 from EZotoff/fix/notepad-directive-scope
fix(sisyphus-junior-notepad): scope plan directive to delegated workers
2026-05-21 00:59:10 +09:00
YeonGyu-Kim db4c9f49e3 Merge pull request #3316 from ahuangsnail/fix/max-output-tokens-zero-fallback
fix: treat zero limit.output as unknown to enable fallback to bundled…
2026-05-21 00:59:05 +09:00
YeonGyu-Kim 821ee92c2f Merge pull request #2965 from sjawhar/fix/chat-message-session-cache
fix(chat-message): refresh stale session-agent cache from explicit input.agent
2026-05-21 00:58:20 +09:00
YeonGyu-Kim 5b72411ba4 Merge pull request #3045 from haimingZZ/fix/gpt54-junior-edit-tool-haimingzz
fix(prompt): prefer edit tool for GPT-5.4 juniors
2026-05-21 00:58:01 +09:00
YeonGyu-Kim d7dbe7cdb0 Merge pull request #2988 from odedindi/fix/add-server-export
fix(package): add ./server export for OpenCode-Go plugin compatibility
2026-05-21 00:57:55 +09:00