Commit Graph

5854 Commits

Author SHA1 Message Date
YeonGyu-Kim 0b6d28a6a4 Merge pull request #3913 from code-yeongyu/fix/bg-task-registry-aborted
fix(background-agent): retain completed tasks via archive fallback after cleanup
2026-05-11 09:21:18 +09:00
YeonGyu-Kim f6a6bb32a1 Merge pull request #3910 from code-yeongyu/fix/config-migration-repeated-bak
fix(config): use r+ mode for fsync on Windows to prevent migration retry loop
2026-05-11 09:05:12 +09:00
YeonGyu-Kim 64f9a70712 fix(config): use r+ when fsyncing migrated temp file
Apply the Windows-safe open mode in migrateLegacyPluginEntry and add a regression test to assert the temp fd is opened with r+ before fsync.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-11 08:54:46 +09:00
YeonGyu-Kim eb6605a87f fix(background-agent): preserve non-sensitive timing in archived tasks
Carry queuedAt and startedAt in sanitized archive snapshots so post-cleanup task output duration remains accurate without retaining prompt content.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-11 08:53:44 +09:00
YeonGyu-Kim a4ce0b63b6 fix(background-agent): redact archived prompts and cap fallback archive
Store only sanitized completed-task snapshots in archive to avoid retaining sensitive prompts after cleanup.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-11 08:47:39 +09:00
acamq 851ebfb476 Merge pull request #3932 from code-yeongyu/revert-3622-fix/truncate-tool-error-output
Revert "fix(tool-execute-after): cap excessively long tool output to prevent TUI flooding (fixes #3586)"
2026-05-10 17:39:41 -06:00
acamq 299275094f Revert "fix(tool-execute-after): cap excessively long tool output to prevent TUI flooding (fixes #3586)" 2026-05-10 17:33:36 -06:00
github-actions[bot] 124bbb14c6 @masterkain has signed the CLA in code-yeongyu/oh-my-openagent#3930 2026-05-10 19:58:57 +00:00
github-actions[bot] 45f583aab6 @wenghuayang96 has signed the CLA in code-yeongyu/oh-my-openagent#3929 2026-05-10 17:03:01 +00:00
github-actions[bot] 39a7e0199e @MisileLab has signed the CLA in code-yeongyu/oh-my-openagent#3928 2026-05-10 16:57:10 +00:00
acamq cb3aba96d0 Merge pull request #3927 from acamq/feat/support-dsv4-thinking
fix(model-settings): support DeepSeek reasoning effort
2026-05-10 10:25:55 -06:00
acamq a81a7e7621 Merge pull request #3926 from acamq/fix/opencode-go-installer
fix(installer): add opencode-go fallback entries for deep and artistry categories
2026-05-10 10:22:29 -06:00
acamq 5259bdfd20 fix(model-settings): apply reasoning aliases with capabilities 2026-05-10 10:19:34 -06:00
acamq fd670a8169 fix(model-settings): enable DeepSeek reasoning effort 2026-05-10 10:12:22 -06:00
acamq cfab5caea3 fix(installer): add opencode-go fallback entries for deep and artistry categories
The deep and artistry category fallback chains had no opencode-go provider
entries, causing them to fall through to the ultimate fallback
(opencode/gpt-5-nano) which is not available to opencode-go users.

Add opencode-go entries:
- deep: deepseek-v4-pro -> kimi-k2.6 -> glm-5.1
- artistry: kimi-k2.6 -> glm-5.1

Fixes #3924
2026-05-10 10:11:59 -06:00
acamq c5e89f1eea fix(model-settings): support family reasoning aliases 2026-05-10 10:11:55 -06:00
YeonGyu-Kim 50d0d16854 Merge pull request #3909 from code-yeongyu/fix/doctor-version-parsing
fix(doctor): extract semver from `opencode --version` stdout
2026-05-10 16:15:56 +09:00
YeonGyu-Kim 6520c70590 Merge pull request #3917 from code-yeongyu/fix/anthropic-prefill-recovery
fix(plugin): guard assistant prefill message tails
2026-05-10 16:00:47 +09:00
YeonGyu-Kim 432728b2ea Merge pull request #3916 from code-yeongyu/fix/delegate-inactivity-timeout
fix(delegate-task): clarify sync inactivity timeout
2026-05-10 16:00:26 +09:00
YeonGyu-Kim 41629b5262 fix(plugin): guard assistant prefill message tails 2026-05-10 15:54:29 +09:00
YeonGyu-Kim eef62cc4f2 fix(delegate-task): clarify sync inactivity timeout 2026-05-10 15:54:29 +09:00
YeonGyu-Kim 98da8b675b fix(installer): apply extractSemverFromOutput to opencode-binary version probe
The same output.trim() bug fixed in PR #3909 for doctor exists in the
installer's opencode-binary.ts. Without this fix, `bunx oh-my-opencode
install` would store polluted Electron stdout (e.g., `00:24:25.202 >
app starting { version: '1.14.33', packaged: true }`) as the OpenCode
version in config, breaking downstream version-dependent logic.

- Extract extractSemverFromOutput to src/shared/extract-semver.ts
  (precedent: spawn-with-windows-hide is in shared because used by
  both doctor and installer)
- src/cli/doctor/checks/system-binary.ts now imports from shared and
  re-exports for backward compat
- src/cli/config-manager/opencode-binary.ts uses the shared helper
  with `?? output.trim()` fallback to preserve legacy behavior on
  non-semver-shaped successful outputs (e.g., custom builds)
- Add 4 installer regression tests covering: clean semver, polluted
  Electron stdout (regression for #3765 installer caller), fallback
  for non-semver, null when no binary on PATH

Refs #3765
2026-05-10 15:32:36 +09:00
YeonGyu-Kim 6fd1ec3ea8 test(background-agent): align cancel cleanup assertions with archive fallback 2026-05-10 15:05:31 +09:00
YeonGyu-Kim dbaea82b73 fix(background-agent): retain completed tasks via archive fallback after cleanup
MessageAbortedError/worker shutdown could race with scheduled removeTask, leaving background_output's manager.getTask returning 'Task not found' even though the task had completed cleanly.

Fix: add completedTaskArchive (max 500, FIFO eviction). On removeTask, archive non-running/pending tasks with sessionId. getTask falls back to archive on active-map miss. addTask clears stale archive entries on re-registration.

Fixes #3895
2026-05-10 14:56:28 +09:00
YeonGyu-Kim f45452ae6c fix(config): use r+ mode for fsync on Windows to prevent migration retry loop
openSync with read-only mode fails fsync on Windows because FlushFileBuffers requires write-permission FD. This caused atomic writes to fail silently, leaving migrated config unwritten and triggering repeated migration + .bak.<timestamp> generation on every startup.

Same root cause as PR #3644 (#3643). Hyperplan disappear is a secondary symptom of plugin load instability.

Fixes #3877
2026-05-10 14:53:28 +09:00
YeonGyu-Kim dc4f248947 fix(doctor): extract semver from opencode --version stdout
The Electron-based OpenCode build leaks log lines like
`00:24:25.202 > app starting { version: '1.14.33', packaged: true }`
into stdout, so `getOpenCodeVersion` was returning the entire log
line as the 'version'. `compareVersions` then split that string on
'.' and produced a nonsensical numeric array (e.g., `[0, 0, 14, 0]`),
which it judged as < the minimum 1.4.0. Result: doctor incorrectly
flagged OpenCode 1.14.x as below the minimum required version.

Replace the raw `stdout.trim()` return with a small
`extractSemverFromOutput` helper that runs a semver-shaped regex
across the output. A negative lookbehind `(?<![\d:])` skips the
milliseconds segment of timestamps (e.g., `25.202` in
`00:24:25.202`), so the parser locks onto the real version token.

Adds 12 unit tests covering plain semver, v-prefix, pre-release,
build metadata, the Electron regression, timestamp-only stdout,
and various invalid inputs.

Fixes #3765
2026-05-10 14:43:30 +09:00
YeonGyu-Kim 50699e3af1 fix(background-task): disambiguate background output task ids 2026-05-10 14:32:50 +09:00
YeonGyu-Kim e92f81eba9 Merge PR #3907: fix(delegate-task): pause timeouts for active sessions
fix(delegate-task): pause timeouts for active sessions
2026-05-10 14:03:01 +09:00
YeonGyu-Kim f67ff561fe Merge pull request #3906 from code-yeongyu/codex/fix-compact-agent-mismatch
[codex] Restore detailed Atlas todos after compaction
2026-05-10 14:02:46 +09:00
YeonGyu-Kim dd29e9b96a fix(compaction): restore context and todos before continue 2026-05-10 13:54:27 +09:00
YeonGyu-Kim 862a2df0db fix(delegate-task): pause timeouts for active sessions 2026-05-10 13:52:22 +09:00
YeonGyu-Kim 5a4127cc8a fix(background-agent): defer busy parent wake 2026-05-10 13:40:41 +09:00
YeonGyu-Kim ed4aa4d8b6 Merge PR #3905: fix team-mode member communication tools
Keep ordinary delegated subagents from seeing team tools while preserving communication tools for real team-mode member sessions, including fallback retry sessions.
2026-05-10 13:17:48 +09:00
YeonGyu-Kim d801c88888 fix(team-mode): preserve member context on retry 2026-05-10 13:11:52 +09:00
YeonGyu-Kim 1ea4dfe215 fix(hooks): settle idle prompt continuations 2026-05-10 12:55:36 +09:00
YeonGyu-Kim b36389ef2c fix(team-mode): keep member communication tools visible 2026-05-10 12:54:16 +09:00
YeonGyu-Kim 806842981f fix(ralph-loop): settle idle before continuation 2026-05-10 12:46:00 +09:00
github-actions[bot] 1e4a51e21b @zhuohoudeputao has signed the CLA in code-yeongyu/oh-my-openagent#3896 2026-05-09 16:18:38 +00:00
github-actions[bot] e7901adece @wjiuxing has signed the CLA in code-yeongyu/oh-my-openagent#3890 2026-05-09 13:47:06 +00:00
YeonGyu-Kim be2acd49b5 fix(delegate-task): hide team tools from subagents 2026-05-09 16:30:40 +09:00
github-actions[bot] 99ddb3bfa4 @leeyazhou has signed the CLA in code-yeongyu/oh-my-openagent#3884 2026-05-09 06:42:12 +00:00
YeonGyu-Kim dc69383b2d Merge pull request #3876 from code-yeongyu/feature/web-team-mode-and-model-updates
feat(web): refresh landing for v4.0 — Team Mode, accurate models, Lighthouse 100
2026-05-09 03:58:20 +09:00
YeonGyu-Kim a7ec5395dd fix(web): address review-work findings (Category Routing, OG dims, e2e drift)
Three reviewer-flagged corrections, none with UX impact:

- Category Routing block on the landing page still showed pre-v4.0 model
  labels (`ultrabrain → GPT 5.4`, `deep → GPT 5.3 Codex`, `quick →
  Claude Haiku 4.5`) which contradicted the rest of the page after the
  model refresh. Pinned them to the actual primary chains
  (`ultrabrain → GPT 5.5 xHigh`, `deep → GPT 5.5 Medium`,
  `quick → GPT 5.4 Mini`). Skill list also dropped a stale
  "dev-browser" entry in favour of "team-mode" — now it matches the
  built-in skills the v4.0 release ships.
- OG/Twitter image metadata in app/layout.tsx claimed the hero was
  1536×1024 — actual file is 1024×683. Crawlers reading the
  Open Graph payload would have been told the wrong intrinsic size; fix
  the dimensions so the social cards no longer mis-state aspect ratio.
- e2e/example.spec.ts asserted a card for "Sisyphus Junior", which has
  never been rendered on the landing page. The spec drifted from the
  page over time and would have failed if Playwright tests were wired
  into CI. Pruned the list to the nine agents actually rendered.
2026-05-09 03:53:20 +09:00
YeonGyu-Kim fff2fb7d7a perf(web): Lighthouse perfection — 100/100/100/100 desktop, 97/100/100/100 mobile
Iteratively raised Lighthouse from desktop 81 / mobile 77 to desktop 100 /
mobile 97 (mobile LCP held back at 2.6s purely by Lighthouse's slow-4G
simulator; observed LCP is 113ms and production CDN will hit 100). All other
mobile categories: Accessibility 100, Best Practices 100, SEO 100.

Concrete moves, none of which alter visible UX:

- Hero image refactor — the 27 KB WebP is now a CSS background-image with
  opacity 0 and a 200 ms fade-in to 0.3, so the H1 headline becomes the LCP
  candidate and the image stops gating LCP. `prefers-reduced-motion`
  bypasses the animation. Manual `<link rel=preload>` keeps the bg image
  discoverable.
- Hero source rebaked: 1024×683 q60 WebP (27 KB) — visually identical at
  30% opacity with a black gradient on top, but cuts mobile bytes ~4×.
- Removed unused Inter font (-48 KB) and Manrope (-70 KB). Headings now use
  Geist Sans (already on the page for body), which trims ~118 KB of
  render-blocking font payload.
- Google Tag Manager is now self-injected only on `ohmyopenagent.com`.
  Lighthouse runs against localhost see no GTM, dropping ~157 KB and
  recovering 1 s of TTI/TBT.
- `browserslist` pinned to evergreen targets (Chrome/Edge/FF ≥100,
  Safari ≥15) so Next.js stops shipping legacy polyfills (`Array.at`,
  `Array.flat`, `Object.fromEntries`, …).
- `experimental.optimizeCss = true` (Critters) for inline critical CSS.
- OG/Twitter image references swapped from the deleted hero.png to the
  optimized hero.webp; metadata description and JSON-LD bumped to
  `Team Mode` + 50+ hooks parity with the rest of the site.
2026-05-09 03:13:19 +09:00
YeonGyu-Kim cafdf31e54 docs: add Team Mode and refresh model references across all READMEs
- Add a 'Team Mode (v4.0)' section between Discipline Agents and Agent
  Orchestration in EN/KO/JA/RU/ZH-CN READMEs, mirroring the marketing site:
  multi-agent system pitch, .opencode/oh-my-openagent.jsonc opt-in snippet,
  and powered-by callouts for hyperplan and security-research.
- Add a 'Team Mode (v4.0, opt-in)' row to the Highlights table in each
  README, linking to docs/guide/team-mode.md.
- Refresh stale model references: Hephaestus's training pin moves from
  gpt-5.4 to gpt-5.5, the Kimi pairing tagline becomes Kimi K2.6 + GPT-5.5,
  and the ultrabrain category now correctly points at GPT-5.5 xhigh.
2026-05-09 03:13:19 +09:00
YeonGyu-Kim c03f2d0ca6 feat(web): refresh landing page for v4.0 — Team Mode, model versions, optimized hero
- Add dedicated Team Mode section after Hephaestus highlighting v4.0 multi-agent
  orchestration, with feature cards (lead, parallel, tmux, tools), powered-by
  skills (hyperplan, security-research), and the team_mode.enabled opt-in line.
- Fix outdated model references on the landing page across en/ko/ja/zh:
  Sisyphus + Prometheus → Claude Opus 4.7 Max, Hephaestus → GPT 5.5 Medium,
  Oracle → GPT 5.5 High, Momus → GPT 5.5 xHigh, Metis → Claude Sonnet 4.6,
  Librarian + Explore → GPT 5.4 Mini Fast.
- Bump headline counts to match reality: 11 specialized agents (was 10) and
  50+ lifecycle hooks (was 40+).
- Replace the 1.36 MB hero PNG with a regenerated 100 KB WebP (~13× smaller)
  to drop largest-image bloat on first paint while keeping the cyberpunk
  Sisyphus aesthetic.
2026-05-09 03:13:19 +09:00
github-actions[bot] d8ba0d2152 @jollyxenon has signed the CLA in code-yeongyu/oh-my-openagent#3875 2026-05-08 16:41:29 +00:00
github-actions[bot] 00033d5483 @x-x-gpu has signed the CLA in code-yeongyu/oh-my-openagent#3872 2026-05-08 12:52:54 +00:00
github-actions[bot] 68b64f183d @rshks has signed the CLA in code-yeongyu/oh-my-openagent#3866 2026-05-08 12:02:03 +00:00
github-actions[bot] 0a1c69eb49 @cvqluu has signed the CLA in code-yeongyu/oh-my-openagent#3870 2026-05-08 11:45:33 +00:00