Commit Graph

4934 Commits

Author SHA1 Message Date
YeonGyu-Kim 50df6f0d3e test(claude-code-plugin-loader): cover plugin path nullish resolution
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-12 00:07:10 +09:00
YeonGyu-Kim cd8352c108 refactor(claude-code-mcp-loader): simplify env expansion null guard
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-12 00:07:10 +09:00
YeonGyu-Kim 79a475d60f refactor(background-agent): simplify loop detector null guard
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-12 00:07:10 +09:00
YeonGyu-Kim 2d65896bbd refactor(shared): simplify normalize SDK null guards
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-12 00:07:10 +09:00
YeonGyu-Kim 470ed8b13a fix(ci): remove existing signature before ad-hoc signing darwin binary
Bun-compiled binaries contain a malformed LC_CODE_SIGNATURE load
command that prevents codesign from directly replacing it. Remove
the existing signature first, then apply a fresh ad-hoc signature.
2026-04-11 23:55:02 +09:00
YeonGyu-Kim 16e7fa5b1a fix(ci): ad-hoc sign darwin binaries with plain codesign
Bun on github macos-latest runners does not emit linker-signed
signatures by default. Sign explicitly with 'codesign --sign -'
without preserve-metadata since the binary has no prior signature.
2026-04-11 23:51:50 +09:00
YeonGyu-Kim 71b5ab67f6 fix(ci): replace breaking codesign step with signature verification
The previous ad-hoc codesign step failed with 'invalid or unsupported
format for signature' because it tried to preserve the 'linker-signed'
flag which cannot be re-signed. The native macOS build already produces
a valid ad-hoc signature via Bun's linker, so we only need to verify
the signature exists rather than re-sign it.
2026-04-11 23:47:54 +09:00
YeonGyu-Kim 565d3ffa91 fix(ci): build darwin binaries on macOS runners to restore code signing
v3.16.0 binaries had 'adhoc,linker-signed' signatures because newer
Bun versions no longer emit linker-signed signatures when cross-compiling
darwin targets from Linux. Current releases have 'code object is not
signed at all', causing macOS Gatekeeper to reject them immediately.

Verified empirically:
- v3.16.0 darwin-arm64: Signature=adhoc, flags=0x20002(adhoc,linker-signed)
- v3.17.0 darwin-arm64: 'code object is not signed at all'
- Local bun build on macos: produces linker-signed signature (matches v3.16.0)

Changes:
- Route darwin-* platforms to macos-latest runner (native compile)
- Add explicit ad-hoc codesign step as belt-and-suspenders safety net
2026-04-11 23:34:10 +09:00
YeonGyu-Kim d21ed3f765 fix(doctor): add timeouts to subprocess spawns to prevent exit code 137
Doctor checks spawned subprocesses (gh, opencode, sg) without timeouts,
causing the process to hang indefinitely if any binary was stuck.
The OS would then SIGKILL the process (exit code 137).

- Add spawnWithTimeout utility with 10s per-spawn timeout and proper
  cleanup (timer cleared on success, proc.exited awaited after kill)
- Capture both stdout and stderr to preserve gh auth status behavior
- Add 30s overall doctor command timeout with JSON-mode support
- Distinguish timeout errors from other failures in runner
- Update all doctor check subprocess calls to use timeouts
2026-04-11 23:15:09 +09:00
YeonGyu-Kim 314e1a5efb fix(telemetry): enable GeoIP resolution for PostHog events
posthog-node SDK defaults disableGeoip to true, preventing country/city
data from being populated despite $ip being sent. Explicitly set
disableGeoip: false to enable geographic analytics.
2026-04-11 23:15:09 +09:00
YeonGyu-Kim 69f1c9ae35 fix(doctor): add timeouts to subprocess spawns to prevent exit code 137
Doctor checks spawned subprocesses (gh, opencode, sg) without timeouts,
causing the process to hang indefinitely if any binary was stuck.
The OS would then SIGKILL the process (exit code 137).

- Add spawnWithTimeout utility with 10s per-spawn timeout
- Add 30s overall doctor command timeout with graceful error message
- Update all doctor check subprocess calls to use timeouts
2026-04-11 23:15:09 +09:00
YeonGyu-Kim 44ebf4b809 Merge pull request #3343 from code-yeongyu/refactor/ultrawork-cleanup-pass
refactor: trim duplicate logic and dead internal exports
2026-04-11 23:12:16 +09:00
github-actions[bot] e654cfb4b4 @ahuangsnail has signed the CLA in code-yeongyu/oh-my-openagent#3316 2026-04-11 13:51:06 +00:00
YeonGyu-Kim a2ae3de31a refactor(openclaw): extract gateway url validator
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 22:49:15 +09:00
YeonGyu-Kim 21822ba29f test(openclaw): cover shared gateway url validation
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 22:49:10 +09:00
YeonGyu-Kim 40411f3218 docs(agents): add AGENTS.md documentation for prometheus, hephaestus, sisyphus variants, and builtin-skills
- src/agents/prometheus/: Strategic planner documentation
- src/agents/hephaestus/: GPT-5.4 autonomous worker documentation
- src/agents/sisyphus/: Model-specific orchestrator variants documentation
- src/features/builtin-skills/: 8 built-in skills catalog

🤖 Generated with OhMyOpenCode assistance
2026-04-11 22:33:22 +09:00
YeonGyu-Kim 0c5cd3a1c4 chore(agents): update all AGENTS.md generation dates to 2026-04-11
🤖 Generated with OhMyOpenCode assistance
2026-04-11 22:33:22 +09:00
github-actions[bot] f9f71f6832 release: v3.17.0 2026-04-11 13:30:34 +00:00
YeonGyu-Kim f95e7a6c6b refactor(openclaw): reuse shared gateway url validation
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 22:29:14 +09:00
YeonGyu-Kim 9d89bbb03a refactor(commands): keep builtin command options internal
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 22:29:08 +09:00
YeonGyu-Kim 1e2e001955 refactor(create-tools): keep result type internal
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 22:29:03 +09:00
YeonGyu-Kim e9b6bba1d7 refactor(agent-display): centralize name normalization resolution
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 22:28:58 +09:00
YeonGyu-Kim f5dc1c0eba refactor(event): simplify tmux config check to direct property access 2026-04-11 22:14:48 +09:00
YeonGyu-Kim db5beef015 test(telemetry): improve mock isolation for runner and index tests 2026-04-11 22:14:44 +09:00
YeonGyu-Kim 0c93ce66e5 refactor(tool-config): use getAgentListDisplayName for consistent naming
Update tool config handler to use getAgentListDisplayName

for proper agent name resolution in tool configurations.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 22:01:59 +09:00
YeonGyu-Kim e14a25be8f test(config): use getAgentListDisplayName in config handler tests
Update config handler tests to use getAgentListDisplayName

for consistent runtime-facing agent names in test assertions.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 22:01:51 +09:00
YeonGyu-Kim 15c8d469bc refactor(command-config): use getAgentListDisplayName for consistent naming
Update command config handler and tests to use getAgentListDisplayName

for proper agent name resolution in command configurations.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 22:01:42 +09:00
YeonGyu-Kim ce53b4cbdb refactor(agent-priority): use getAgentListDisplayName for ordering
Update agent priority order handler and tests to use

getAgentListDisplayName for consistent runtime-facing names.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 22:01:34 +09:00
YeonGyu-Kim 79b4b0a386 refactor(agent-key): use getAgentListDisplayName for consistent key remapping
Update agent key remapper and tests to use getAgentListDisplayName

for proper runtime-facing list names in OpenCode display.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 22:01:29 +09:00
YeonGyu-Kim 3b092c249b refactor(agent-config): use getAgentListDisplayName for consistent naming
Update agent config handler and tests to use the new getAgentListDisplayName

utility for proper OpenCode agent list display ordering.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 22:01:23 +09:00
YeonGyu-Kim cfc3f33f8f feat(agent): add getAgentListDisplayName utility for OpenCode list ordering
Add helper function that returns runtime-facing agent name with sort

prefixes for consistent OpenCode agent list display ordering.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 22:01:16 +09:00
YeonGyu-Kim 84f29e37af Merge pull request #3340 from code-yeongyu/fix/stop-continuation-chat-message-fallback
fix(stop-continuation): clear chat.message fallback stop state before work resumes
2026-04-11 21:43:16 +09:00
YeonGyu-Kim c9461a9085 fix(stop-continuation): scope start-work clearing to fallback template
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 21:36:40 +09:00
YeonGyu-Kim d62e3eacb1 Merge pull request #3342 from code-yeongyu/fix/migration-sidecar-transaction-order
fix(migration): write config before sidecar updates
2026-04-11 21:34:43 +09:00
YeonGyu-Kim 6ba8b7309f Merge pull request #3341 from code-yeongyu/fix/telemetry-crash-isolation
fix(telemetry): isolate PostHog failures from core flows
2026-04-11 21:33:54 +09:00
YeonGyu-Kim 6f21e74d56 fix(migration): write config before sidecar updates
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 21:27:21 +09:00
YeonGyu-Kim 41b375a245 chore(lockfile): refresh Bun dependency resolution
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 21:25:27 +09:00
YeonGyu-Kim 8bc27da0f0 test(install): restore Bun mocks after installer tests
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 21:25:27 +09:00
YeonGyu-Kim e2f304f1a8 fix(telemetry): validate activity state shape
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 21:25:27 +09:00
YeonGyu-Kim acb0f6b006 fix(install): isolate installer telemetry failures
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 21:25:27 +09:00
YeonGyu-Kim 2510870133 fix(run): isolate CLI telemetry failures
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 21:25:26 +09:00
YeonGyu-Kim c09ee32fe9 fix(telemetry): isolate plugin telemetry failures
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 21:25:26 +09:00
YeonGyu-Kim 9287abe157 fix(stop-continuation): clear chat.message fallback stop state before work resumes
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-11 21:24:03 +09:00
YeonGyu-Kim e4bb60ba07 Merge pull request #3339 from Qiiks/fix/shell-detection-shell-before-psmodulepath
fix(shell-env): check SHELL before PSModulePath for shell detection
2026-04-11 21:14:02 +09:00
YeonGyu-Kim a442976d77 Fix invisible characters in agent names 2026-04-11 20:44:57 +09:00
github-actions[bot] bbec1883fd @Qiiks has signed the CLA in code-yeongyu/oh-my-openagent#3339 2026-04-11 11:02:54 +00:00
Qiiks f5a95203a4 fix(shell-env): check SHELL before PSModulePath for shell detection
On Windows, PSModulePath is always set by the system even when the
active shell is Git Bash (via SHELL env var). This caused the
non-interactive-env hook to generate PowerShell syntax ($env:VAR=val)
for bash shells, resulting in 15+ errors per command.

The fix prioritizes SHELL over PSModulePath since an explicit SHELL
variable indicates the user's chosen shell, while PSModulePath is just
a system-wide module path that doesn't indicate the active shell.

Fixes: #3338
2026-04-11 16:06:42 +05:30
YeonGyu-Kim 044e1f5ab9 fix(agents): restore ZWSP runtime names in name field for OpenCode sort ordering
Reverts getAgentDisplayName back to getAgentRuntimeName in the remapper
and default_agent assignment. OpenCode sorts agents by name via
localeCompare, so ZWSP prefixes in the name field are required to
preserve canonical core agent order (sisyphus > hephaestus > prometheus > atlas).
2026-04-11 15:00:13 +09:00
YeonGyu-Kim 111dcd17a2 fix(agents): backfill ZWSP runtime names for agents missing name field
agent-key-remapper now unconditionally injects getAgentRuntimeName()
into the name field, ensuring OpenCode's localeCompare sort preserves
canonical core agent order even when builtin configs omit name.

Also fixes 3 pre-existing test failures where builtinSisyphusConfig
expected the original name to survive remapping.
2026-04-11 14:54:55 +09:00
YeonGyu-Kim 9f135af41c fix: unify agent display names and strip invisible sort prefixes
- Replace getAgentRuntimeName with getAgentDisplayName for consistency
- Add stripAgentListSortPrefix helper to normalize agent names
- Strip sort prefixes in subagent-resolver and sync-executor
- Backfill canonical names for core agents when builtin configs omit name
- Update tests to match new behavior
2026-04-11 14:53:01 +09:00