Commit Graph

72 Commits

Author SHA1 Message Date
justsisyphus
fc5298d778 feat(workflow): add ZAI Coding + OpenAI provider for sisyphus-agent
- Add zai-coding-plan provider with GLM 4.7 and GLM 4.6v models
- Add OpenAI provider with GPT-5.2 models
- Configure unspecified-low category to use zai-coding-plan/glm-4.7
- Auth is provided via OPENCODE_AUTH_JSON secret
2026-01-27 10:51:24 +09:00
justsisyphus
892b245779 fix(test): update builtin skills count from 3 to 4 (#1126)
* fix(test): update builtin skills count from 3 to 4 (dev-browser added)

* chore(ci): add block-master-pr workflow

---------

Co-authored-by: justsisyphus <justsisyphus@users.noreply.github.com>
2026-01-26 02:29:28 +00:00
justsisyphus
1a901a50ac fix(ci): build Windows binary natively to fix segfault (#1019)
Bun cross-compilation from Linux to Windows produces binaries that crash
with 'Segmentation fault at address 0xFFFFFFFFFFFFFFFF'.

Root cause: oven-sh/bun#18416

Solution:
- Use windows-latest runner for Windows platform in publish-platform.yml
- Set shell: bash for consistent behavior across runners

This is a simpler fix than PR #938 which modified publish.yml (wrong workflow).
The platform binaries are built and published by publish-platform.yml.

Fixes #873
Fixes #844

Co-authored-by: justsisyphus <justsisyphus@users.noreply.github.com>
2026-01-23 16:30:47 +09:00
justsisyphus
7f2eb0a568 refactor(ci): separate platform publish into dedicated workflow
- publish.yml: main package only, triggers platform workflow on success
- publish-platform.yml: dedicated workflow with fresh OIDC token per run
- Fixes OIDC token expiration during large binary uploads (~40MB+)
- Platform workflow can also be triggered manually via workflow_dispatch
2026-01-22 11:22:26 +09:00
justsisyphus
ba756d7533 fix(publish): force push tags in republish mode 2026-01-22 11:04:59 +09:00
justsisyphus
8b820c5374 refactor(publish): parallel platform jobs with fresh OIDC tokens per job
- Split monolithic publish into build + parallel publish-platform + publish-main + release jobs
- Each platform package gets its own OIDC token (fixes token expiration during large binary uploads)
- Add --prepare-only flag to publish.ts for build step version sync
- Matrix strategy: 7 parallel platform jobs
- publish-main waits for all platforms before publishing main package
2026-01-22 10:58:35 +09:00
justsisyphus
a25d48a651 fix(ci): add default model to sisyphus-agent workflow
The workflow was setting up anthropic provider but missing the required
'model' field in opencode.json, causing session creation failures.
2026-01-22 10:49:14 +09:00
justsisyphus
3bea6a043d fix(publish): robust error handling, republish mode, separate tag/branch push
- Fix 404 error handling: no longer incorrectly marks failed publishes as 'already published'
- Add REPUBLISH mode: allows re-publishing missing platform packages without version check
- Separate tag and branch push: tag push (critical) succeeds even if branch push fails
- Fix changelog for beta releases: compares against previous beta tag instead of latest stable
- Add checkPackageVersionExists for accurate E403 error handling
2026-01-22 10:40:39 +09:00
justsisyphus
1ab97bd0a7 fix: replace invalid --chatgpt option with --openai in CLI 2026-01-22 10:28:10 +09:00
justsisyphus
710670660c feat(publish): add skip_platform input to workflow 2026-01-19 15:30:21 +09:00
justsisyphus
dec35d28a7 fix(ci): make merge-to-master non-fatal when workflow files change 2026-01-17 18:05:53 +09:00
justsisyphus
1f493cc921 fix(ci): add workflows permission for pushing to master 2026-01-17 18:05:00 +09:00
justsisyphus
ef7276a46a fix(ci): stash before checkout in merge step 2026-01-17 17:58:54 +09:00
justsisyphus
c0be58b2ce Revert "ci: skip platform packages (already published manually)"
This reverts commit beab015512.
2026-01-17 17:46:16 +09:00
justsisyphus
beab015512 ci: skip platform packages (already published manually) 2026-01-17 17:45:33 +09:00
justsisyphus
ec2cf22449 fix(ci): enable platform binaries publishing 2026-01-17 16:48:44 +09:00
justsisyphus
0230e71bc6 fix(ci): skip platform packages for now (OIDC not configured) 2026-01-16 02:38:26 +09:00
justsisyphus
f658544cd6 fix(ci): add NPM_TOKEN for npm publish authentication 2026-01-16 02:31:12 +09:00
justsisyphus
396043a122 fix(ci): add registry-url to setup-node for OIDC auth 2026-01-16 02:25:51 +09:00
justsisyphus
9854e9f6e5 Revert "fix(ci): add NPM_TOKEN support for npm publishing"
This reverts commit 5de3d4fb7d.
2026-01-16 02:20:15 +09:00
justsisyphus
5de3d4fb7d fix(ci): add NPM_TOKEN support for npm publishing
npm revoked all classic tokens. Workflow now requires NPM_TOKEN secret
with granular access token for publishing.
2026-01-16 01:23:00 +09:00
justsisyphus
7a9e604b2d fix(ci): revert publish runner to ubuntu-latest for npm OIDC
macOS runner breaks npm OIDC trusted publishing. Bun can cross-compile
all platform binaries on ubuntu, so macOS runner is not needed.
2026-01-16 01:17:22 +09:00
justsisyphus
6670754efe fix(ci): add registry-url to setup-node for npm OIDC auth
setup-node requires registry-url to configure .npmrc for OIDC authentication
2026-01-16 01:10:37 +09:00
justsisyphus
37d4aec4d0 fix(ci): use bunx tsc instead of bare tsc in publish workflow
tsc is not in PATH when installed via bun - use bunx to run from node_modules/.bin
2026-01-16 00:55:12 +09:00
Kenny
c67ca8275e feat: Bun single-file executable distribution (#819)
* feat: add Bun single-file executable distribution

- Add 7 platform packages for standalone CLI binaries
- Add bin/platform.js for shared platform detection
- Add bin/oh-my-opencode.js ESM wrapper
- Add postinstall.mjs for binary verification
- Add script/build-binaries.ts for cross-compilation
- Update publish workflow for multi-package publishing
- Add CI guard against @ast-grep/napi in CLI
- Add unit tests for platform detection (12 tests)
- Update README to remove Bun runtime requirement

Platforms supported:
- macOS ARM64 & x64
- Linux x64 & ARM64 (glibc)
- Linux x64 & ARM64 (musl/Alpine)
- Windows x64

Closes #816

* chore: remove unnecessary @ast-grep/napi CI check

* chore: gitignore compiled platform binaries

* fix: use require() instead of top-level await import() for Bun compile compatibility

* refactor: use static ESM import for package.json instead of require()
2026-01-16 00:33:07 +09:00
justsisyphus
72a3975799 fix(ci): add missing --copilot=no flag to agent workflow 2026-01-16 00:26:44 +09:00
Kenny
15e3e16bf2 fix(ci): run tests on PRs to dev branch 2026-01-15 07:43:43 -05:00
justsisyphus
22619d137e fix(migration): remove auto model-to-category conversion (#764)
* chore(deps): upgrade @opencode-ai/plugin and sdk to 1.1.19

* docs(prometheus): add Question tool usage reminder

* fix(migration): remove auto model-to-category conversion

- Remove migrateAgentConfigToCategory call from migrateConfigFile
- User's explicit model/category settings are now preserved as-is
- No more unwanted deletion of agent configs (e.g., multimodal-looker)
- Add BUILTIN_AGENT_NAMES constant for future reference
- Update tests to reflect new behavior

* ci(sisyphus): add mandatory 'new branch + PR' todos for implementation tasks

---------

Co-authored-by: justsisyphus <justsisyphus@users.noreply.github.com>
2026-01-14 11:57:08 +09:00
justsisyphus
4d9c664694 ci: improve publish workflow UX with beta release example (#760)
* ci: improve publish workflow UX with beta release example

* fix: remove non-existent google-auth.ts from build, add missing --external flag

---------

Co-authored-by: justsisyphus <justsisyphus@users.noreply.github.com>
2026-01-14 10:59:33 +09:00
YeonGyu-Kim
965bb2dd10 chore(ci): remove pinned OpenCode version in sisyphus-agent workflow
Use default installer which installs latest version instead of
fallback to hardcoded v1.0.204.
2026-01-12 14:34:06 +09:00
YeonGyu-Kim
fc76ea9d93 fix(skill-mcp-manager): prevent memory leaks from orphaned MCP processes (#453)
* fix(skill-mcp-manager): prevent memory leaks from orphaned MCP processes

- Close transport on connection failure to prevent zombie processes
- Add process exit handlers (SIGINT/SIGTERM) for graceful cleanup
- Use pendingConnections Map to prevent duplicate client spawns

Fixes #361

🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)

* fix(ci): replace deprecated rhysd/actionlint-action with direct installation

rhysd/actionlint-action repository was removed/archived.
Use official actionlint download script instead.

🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)

* fix(skill-mcp-manager): add transport.close() and idle timeout to fix memory leaks

Previously, disconnectSession() and disconnectAll() only called client.close() but NOT transport.close().
StdioClientTransport spawns child processes for MCP servers, and without transport.close(), these
processes remained orphaned and accumulated memory (6GB leak reported).

Changes:
- Added missing transport.close() calls in disconnectSession() and disconnectAll()
- Added idle timeout mechanism (5-minute timeout) with lastUsedAt tracking
- Added cleanup timer that runs every 60 seconds to remove idle clients
- Made signal handlers (SIGINT, SIGTERM, SIGBREAK) async to properly await cleanup
- Ensure proper cleanup order: clear from map first, then close client, then close transport

🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)

* fix(ci): pin actionlint download script to v1.7.10 for supply chain security

- Pin to specific release tag instead of 'main' branch
- Prevents potential supply chain attacks from upstream compromises

🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-01-03 22:15:23 +09:00
YeonGyu-Kim
a9523bc607 feat(ci): enhance sisyphus-agent workflow with PR/issue title and mandatory context reading guidelines
- Extract issue/PR title in Collect Context step
- Add CONTEXT_TITLE environment variable for Sisyphus prompt
- Include TITLE_PLACEHOLDER in dynamic prompt injection
- Enhance 'Read Full Conversation' section with ultrawork-style strict guidance:
  * [CODE RED] MANDATORY CONTEXT READING header with zero tolerance policy
  * Explicit list of what to extract from conversation (original description, attempts, decisions, feedback, references)
  * 'FAILURE TO READ EVERYTHING = GUARANTEED FAILURE' warning to emphasize importance
  * Clearer TODO creation instructions with requirement to summarize context first

This ensures Sisyphus agent has complete contextual information and explicitly emphasizes the critical importance of full conversation reading before any action.

🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-01-03 12:58:13 +09:00
YeonGyu-Kim
8bc9d6a540 fix(ci): fix YAML indentation in sisyphus-agent workflow heredoc
PR #439 added ultrawork-mode content without proper YAML indentation.
In GitHub Actions run: | blocks, all lines must be indented at least
as much as the first content line. The unindented heredoc content
broke YAML parsing, causing 'workflow file issue' failures.

🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-01-03 11:49:16 +09:00
YeonGyu-Kim
6a6e20cf5d feat(ci): add actionlint workflow linter
- New workflow that runs actionlint on GitHub workflow file changes
- Runs on push and pull_request events to .github/workflows/**

🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-01-03 11:41:11 +09:00
YeonGyu-Kim
3a5aea7f4b fix(ci): harden sisyphus-agent workflow condition for push event safety
- Add explicit `github.event_name == 'issue_comment'` check
- Add null coalescing (`|| ''`) for safe property access
- Use `>-` folded block scalar for better YAML parsing

🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-01-03 11:41:11 +09:00
Sisyphus
6422ff270b feat(workflow): restore sisyphus agent enhancements with ultrawork/analyze-mode (#439)
Re-implements the workflow enhancements that were reverted in #437.

Changes:
- Add ultrawork-mode section with agent utilization principles, execution rules,
  TDD workflow, and zero-tolerance failure guidelines
- Add analyze-mode section for context gathering before execution
- Add CRITICAL: First Steps section requiring full conversation reading and
  immediate todo creation
- Includes PR inline review comments and review bodies in context gathering

This restores the functionality from #430 to ensure the agent:
- Reads full issue/PR context before taking action
- Creates todos immediately after reading context
- Follows structured parallel execution patterns

Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
2026-01-03 11:29:33 +09:00
YeonGyu-Kim
3c27206777 Revert "feat(workflow): enhance sisyphus agent with mandatory context reading…" (#437)
This reverts commit 8510a2273d.
2026-01-03 11:03:27 +09:00
Sisyphus
8510a2273d feat(workflow): enhance sisyphus agent with mandatory context reading and todo creation (#430) 2026-01-03 10:17:23 +09:00
sisyphus-dev-ai
8c30974c18 fix: address review feedback - fix typos and wording consistency 2026-01-03 00:43:09 +00:00
YeonGyu-Kim
64053f1252 docs(sisyphus-agent): update workflow to report results when done
- Remove 'I'm on it...' acknowledgment comment requirement
- Add instruction to report results to issue/PR when task completes
- Simplify prompt to focus on todo tools and planning

🤖 Generated with assistance of OhMyOpenCode
2025-12-30 11:47:50 +09:00
YeonGyu-Kim
dd60002a0d fix(sisyphus-agent): handle OpenCode installer failure with pinned version fallback
Replace retry loop with intelligent fallback strategy:
- Try default installer first (better for version discovery)
- On failure, fallback to pinned version 1.0.204
- Handle corrupted downloads with direct fallback install

This addresses the sisyphus-agent workflow failure where OpenCode's installer failed
with 'Failed to fetch version information' error.

🤖 Generated with assistance of OhMyOpenCode (https://github.com/code-yeongyu/oh-my-opencode)
2025-12-29 01:09:28 +09:00
YeonGyu-Kim
6db44cdbf4 fix(ci): use heredoc for release notes to handle special characters
🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2025-12-26 16:21:32 +09:00
YeonGyu-Kim
f9234a6a5e fix(ci): remove review events from sisyphus-agent for fork PR support
🤖 Generated with assistance of OhMyOpenCode (https://github.com/code-yeongyu/oh-my-opencode)
2025-12-26 03:54:07 +09:00
YeonGyu-Kim
1bff5f7966 fix(sisyphus-agent): remove 30min timeout and add realtime output buffering
- Remove DEFAULT_TIMEOUT_MS (set to 0) to allow CI agent runs to complete without timeout
- Add stdbuf -oL -eL for unbuffered realtime output in GitHub Actions
- Update timeout logic to only set timeout when value > 0

This fixes CI agent runs that were timing out after 30 minutes and not showing realtime output.

🤖 Generated with assistance of OhMyOpenCode
2025-12-25 21:32:27 +09:00
YeonGyu-Kim
8897697887 fix(sisyphus-agent): prevent bash script breaking on quotes in comment body
Use environment variables instead of direct GitHub expression interpolation in bash script. This prevents the script from breaking when comment bodies contain quotes or special characters.

Variables like COMMENT_BODY, COMMENT_AUTHOR, COMMENT_ID_VAL are now passed via env: block instead of being interpolated directly into bash commands.

🤖 Generated with assistance of OhMyOpenCode
2025-12-25 19:55:28 +09:00
YeonGyu-Kim
0734167516 fix(sisyphus-agent): add GitHub markdown rules to prevent broken code block rendering
The change adds a new "GitHub Markdown Rules" section to the sisyphus agent prompt that specifies:
- Code blocks MUST have exactly 3 backticks with language identifier
- Every opening ``` MUST have a matching closing ``` on its own line
- No trailing backticks or spaces after closing ```
- Inline code should use single backticks
- Lists inside code blocks break rendering

This fixes the issue where code blocks in GitHub comments weren't being closed properly, causing broken markdown rendering.

🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2025-12-25 19:26:43 +09:00
YeonGyu-Kim
a8fdb78796 feat(sisyphus-agent): use local plugin reference and oh-my-opencode run command
- Build local oh-my-opencode before setup instead of downloading from npm
- Configure opencode to use file:// plugin reference pointing to local repo
- Replace opencode run with bun run dist/cli/index.js run command
- Remove delay on retry logic

This makes the sisyphus-agent workflow use the local plugin directly from the checked-out repo instead of downloading from npm.

🤖 Generated with assistance of OhMyOpenCode (https://github.com/code-yeongyu/oh-my-opencode)
2025-12-25 17:50:49 +09:00
Sisyphus
52481f6ad2 fix: reduce Opus 4.5 context window to 190k for safety (#222)
Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
2025-12-25 16:08:31 +09:00
Sisyphus
2bad1b5c95 feat: add label management to Sisyphus workflow (#215)
- Add 'sisyphus: working' label when Sisyphus starts working on an issue/PR
- Remove label when work completes (success or failure)
- Label operations use gh CLI with idempotent commands
- Handles both issues and PRs with proper conditional logic
- Uses || true for error handling to prevent workflow failures

Closes #202

Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
2025-12-25 15:37:48 +09:00
Sisyphus
d70e077c56 fix: preserve backticks in Sisyphus GitHub comments (#203) 2025-12-25 13:29:34 +09:00