Commit Graph

310 Commits

Author SHA1 Message Date
Aiden Cline 3c5043497c ignore: ensure new file truncation stuff still works even if external_directoy is set to deny 2026-01-08 11:07:33 -06:00
Aiden Cline d5f0e3fccc test: add larger image test for read tool 2026-01-07 23:01:02 -06:00
Dax e37fd9c105
core: add interactive question tool for gathering user preferences and clarifying instructions (#7268) 2026-01-07 22:29:42 -05:00
Aiden Cline 1b82511fbd
feat: write truncated tool outputs to files (#7239) 2026-01-07 17:25:00 -06:00
M. Adel Alhashemi 34c9d106ee
refactor: simplify task tool subagent filtering (#7165)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2026-01-07 13:28:13 -06:00
Matt Silverlock 4ba0b22b04
fix: config precedence now correctly allows local config to override remote (#7141) 2026-01-07 12:07:21 -05:00
GitHub Action c961072d20 chore: generate 2026-01-07 07:43:43 +00:00
Aiden Cline 429240f439
ignore: add truncation funcs (#7178) 2026-01-07 01:43:06 -06:00
Daniel Polito b5be883758
Make General SubAgent not hidden (#6752) 2026-01-07 01:31:47 -06:00
Sewer. fd7b7eacd3
Added: Ability to hide subagents from primary agents system prompt. (#4773)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2026-01-06 22:29:17 -06:00
Dax Raad 0276885181 core: preserve permission config key order to maintain user-defined permission precedence 2026-01-05 14:09:37 -05:00
Grégoire Morpain e3b4d4ad49
feat(bedrock): config options and authentication precedence (#6377) 2026-01-05 12:51:43 -06:00
Aiden Cline c285304acf fix: for anthropic compat ensure empty msgs and empty reasoning is filtered out 2026-01-05 01:40:15 -06:00
Dax Raad 2f5b2b23d5 core: fix permission rule matching to use permission field instead of pattern field 2026-01-05 01:21:49 -05:00
Aiden Cline 3611260405 core: remove hardcoded .env read block and use new permissions model instead 2026-01-04 01:49:49 -06:00
Dax Raad 0b4af95223 core: add sandbox support for git worktrees to allow working in multiple directories per project 2026-01-03 18:52:53 -05:00
Dax Raad 47c670aea9 tui: add reject message support to permission dialogs for better user feedback 2026-01-03 01:34:23 -05:00
YeonGyu-Kim a3f38e0533
feat(plugin): add tui.session.select API endpoint for TUI navigation (#6565)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2026-01-02 16:57:21 -06:00
Matt Silverlock 66bc046503
fix: merge instructions arrays across config files (#6663) 2026-01-02 13:55:40 -06:00
Aiden Cline 2fd97377f6 test: fix transform test 2026-01-02 12:38:44 -06:00
Aiden Cline 47ebb2973f test: add message-v2 test 2026-01-02 12:28:40 -06:00
Dax Raad dad9c917d2 tui: fix memory leaks in session management and improve permission error handling 2026-01-01 21:28:11 -05:00
Dax Raad db8d83b53d tui: fix permission tests for new evaluate function signature 2026-01-01 21:01:34 -05:00
Dillon Mulroy 05eee679a3
feat: add assistant metadata to session export (#6611) 2026-01-01 18:56:23 -06:00
Aiden Cline 76186d19f3 fix: ensure new permissions changes work for special case bash commands like rm, cd, etc 2026-01-01 17:27:23 -06:00
Dax 351ddeed91
Permission rework (#6319)
Co-authored-by: Github Action <action@github.com>
Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com>
2026-01-01 17:54:11 -05:00
Saatvik Arya 7a3ff5b98f
fix(session): check for context overflow mid-turn in finish-step (#6480) 2026-01-01 12:03:18 -06:00
Aiden Cline 9a1dc1ffe4 core: prevent TimeoutOverflowWarning by capping setTimeout delay to max 32-bit signed integer 2025-12-31 16:15:49 -06:00
Aiden Cline 81fef60266
fix: ensure variants also work for completely custom models (#6481)
Co-authored-by: Daniel Smolsky <dannysmo@gmail.com>
2025-12-30 16:37:32 -06:00
Aiden Cline abc7eed92b
tweak: read global claude skills too (#6420) 2025-12-29 23:48:58 -06:00
Grégoire Morpain 893888536a
fix(bedrock): support region and bearer token configuration (#6332)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-28 22:44:15 -06:00
Connor Adams ae67f43ff0
feat: add support for `.claude/skills` directory (#6252) 2025-12-28 22:39:10 -06:00
Didier Durand 29d8557d41
doc: fix typos in various files (#6294) 2025-12-28 13:06:25 -06:00
Matt Silverlock d6db6ff198
fix: handle non-text response parts in GitHub action (#6173) 2025-12-27 21:24:10 -06:00
rari404 3c02d5d338
feat: add path traversal protection to File.read and File.list (#5985) 2025-12-26 23:20:07 -06:00
Christopher Ochsenreither bfb9787361
fix: compact command after revert now properly cleans up revert state (#6235) 2025-12-26 22:57:59 -06:00
Dax Raad 2cdc88d295 core: add compaction config tests to verify auto and prune settings work correctly 2025-12-26 19:44:32 -05:00
Aiden Cline 664e6bf2d0 test: add more tests to make sure that cwd is locked for read tool 2025-12-26 14:30:05 -06:00
Aiden Cline 8b40e38cd7 test: add test for retry 2025-12-23 19:34:40 -06:00
lif 5af35117db
fix: handle Windows CRLF line endings in grep tool (#5948)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-22 22:26:15 -06:00
Mohammad Alhashemi 046e351140
feat: add native skill tool with permission system (#5930)
Co-authored-by: Dax Raad <d@ironbay.co>
2025-12-22 18:24:06 -05:00
Aiden Cline 5605fc3f38 test: rm claude skills test 2025-12-22 15:45:31 -06:00
Buck Evan 60db171b44
fix(read): narrow .env file blocking to not block .envrc (#5654)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-22 08:37:43 -06:00
Dax 8fe0715928
feat: add Agent Skills support (#5921) 2025-12-21 19:44:56 -05:00
Aiden Cline d3922f0965
core: add verification that at least 1 primary agent is enabled, add regression tests (#5881) 2025-12-20 21:36:22 -06:00
lif d89b567b47
fix: add transform case for gemini if mcp tool has missing array items (#5846) 2025-12-20 11:41:52 -06:00
Aiden Cline dae0168ed8 test: fixture cleanup 2025-12-19 17:00:23 -06:00
Aiden Cline edfe2e4f1c test: fix test case 2025-12-19 16:37:36 -06:00
Aiden Cline f9d0850c5e test: add regression test for setCacheKey option 2025-12-17 10:24:53 -06:00
Aiden Cline 3ac42e9632 fix: github install cmd if repo has . in it 2025-12-16 11:19:18 -06:00
René 9eefcd1b41
Provider fix, anthropic Errorhandling if empty image file is read (#5521) 2025-12-14 23:56:47 -06:00
Adam 79a4c65313
fix: test 2025-12-14 21:42:17 -06:00
Dax Raad e22af25076 ci: fix test failures in CI by pre-populating models cache
Tests were failing in CI because the models.json cache file doesn't exist
and the data() macro fallback only works at build time, not runtime.
The preload now pre-fetches models.json and disables the background
refresh to prevent race conditions during test execution.
2025-12-14 21:23:45 -05:00
Sebastian Herrlinger 80e04be84f fix super modifier parsing 2025-12-11 19:20:23 +01:00
Aiden Cline 59fb3ae606 ignore: add bash tests 2025-12-10 15:07:40 -06:00
Aiden Cline da56319af4 ignore: fix test 2025-12-10 13:31:45 -06:00
Dax Raad cb188f907f ci 2025-12-09 19:53:50 -05:00
Dax Raad 63d9656ad8 ci 2025-12-09 19:46:59 -05:00
Dax Raad 3512d02e9e ci 2025-12-09 19:46:38 -05:00
Aiden Cline df64612d54
better interleaved thinking support (#5298) 2025-12-09 16:32:12 -06:00
Dax Raad 5f6b2fdc6f fix tests 2025-12-09 16:03:33 -05:00
Dax Raad f1955b4d05 core: fix project event emission to include updated worktree data 2025-12-09 15:41:38 -05:00
Dax Raad c5e5627cbd test fixes 2025-12-09 15:41:38 -05:00
Dax Raad b48caec218 core: add automatic project icon discovery from favicon/logo files 2025-12-09 15:06:24 -05:00
Dax Raad fb1b6c5e6b add project.name/icon 2025-12-09 13:57:18 -05:00
Aiden Cline e23a81097c core: add test to prevent MCP headers regression when OAuth is enabled
Custom headers configured for remote MCP servers were being silently
dropped when OAuth was enabled (the default). This test ensures headers
are always sent to MCP servers regardless of OAuth configuration.
2025-12-09 12:06:40 -06:00
Aiden Cline 9856e3b798 ignore: add test for provider url case 2025-12-07 13:06:12 -06:00
Aiden Cline 75a4dcbce8
tweak: make bash give agent more awareness of cwd, bump default timeout, drop max timeout (#5140) 2025-12-06 23:55:07 -06:00
Aiden Cline 767a81f930 fix: ensure that vcs is still set to git even if no commits in repo 2025-12-04 23:02:11 -06:00
Dax Raad b1202ac6db core: add test for custom model npm package inheritance 2025-12-04 16:30:54 -05:00
Jakub Matjanowski 46790e57e9
feat: Enhance DeepSeek reasoning content handling (#4975)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-12-03 21:31:36 -06:00
Dax 6d3fc63658
core: refactor provider and model system (#5033)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: thdxr <thdxr@users.noreply.github.com>
2025-12-03 21:09:03 -05:00
Dax Raad ee4437ff32 core: add provider test coverage for upcoming refactor
Add comprehensive test suite for Provider module to ensure safe
refactoring of provider internals. Tests cover:
- Provider loading from env vars and config
- Provider filtering (disabled_providers, enabled_providers)
- Model whitelist/blacklist
- Model aliasing and custom providers
- getModel, getProvider, closest, defaultModel functions

Also adds Env module for instance-scoped environment variable access,
enabling isolated test environments without global state pollution.
2025-12-03 18:30:42 -05:00
Dax Raad 9eabbe2e76 retry anthropic overloaded errors 2025-11-25 15:47:34 -05:00
Ariane Emory 4273fa9ccf
fix: merge plugin selections (resolves #4565) (#4724)
Co-authored-by: Dax Raad <d@ironbay.co>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
2025-11-25 11:34:21 -06:00
Aiden Cline 618c654aa0 ignore: todo fix test case 2025-11-19 15:18:21 -06:00
Aiden Cline a1dc4ebbe4 ignore: flaky test be a lil less flaky plz 2025-11-19 14:46:06 -06:00
Aiden Cline e4e6096510 ignore: fix hanging test 2025-11-19 14:38:12 -06:00
Dax Raad 0a2d7af179 core: honor retry-after values exceeding 10 minutes instead of discarding them 2025-11-17 11:33:28 -05:00
Dax Raad 8b19c6c7e4 better retry display 2025-11-17 11:31:10 -05:00
Chris Olszewski 69a45ef7d7
fix: snapshot history when running from git worktrees (#4312) 2025-11-15 01:02:00 -06:00
Aiden Cline 0c51feb9c2
fix: max tokens when using models like opus with providers other than anthropic (#4307) 2025-11-13 16:39:09 -06:00
Aiden Cline 0b86adbe99
feat: agent color cfg (#4226)
Co-authored-by: 0xrin <0xrin1@protonmail.com>
Co-authored-by: GitHub Action <action@github.com>
2025-11-11 18:32:44 -06:00
Dax Raad ce1397cc34 core: add test to verify OpenCode doesn't crash when starting in git repositories with no commit history 2025-11-11 20:17:36 +00:00
Dax Raad 299bf1dca8 ci 2025-11-11 01:59:10 -05:00
Aiden Cline f7cc46cd9f
set cap for max time to wait between retries (#4135)
Co-authored-by: GitHub Action <action@github.com>
2025-11-09 11:46:58 -06:00
Christopher Sacca 271b679058
fix(lsp): handle optional requests to avoid MethodNotFound (-32601) with MATLAB Language Server (#4007) 2025-11-08 16:31:39 -06:00
GitHub Action 34ff87d504 chore: format code 2025-11-08 01:59:02 +00:00
Jinhyeok Lee afb831c93c
vscode: Add VS Code Insiders support (#4019) 2025-11-07 10:31:16 -06:00
Dax Raad 3c2803fd9a flaky test 2025-11-06 13:05:53 -05:00
Dax Raad 1ea3a8eb9b big format 2025-11-06 13:03:12 -05:00
Dax Raad 67f3c934fe fix tests 2025-11-06 11:42:46 -05:00
Aiden Cline 065f656fb0 chore: rm hanging test 2025-11-06 10:39:32 -06:00
Err 6f0028644e
fix: support scoped npm plugins (#3785)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-04 09:15:01 -06:00
James Alexander 37a6b5177e
Add unit tests for util functions: iife, lazy, timeout (#3791) 2025-11-03 09:24:45 -05:00
Sebastian Herrlinger 92a1943771 upgrade to opentui 0.1.32, activates kitty keyboard 2025-11-02 01:45:38 +01:00
Dax 96bdeb3c7b
OpenTUI is here (#2685) 2025-10-31 15:07:36 -04:00
Aiden Cline e6301ca5d5 tweak: rename event 2025-10-27 10:42:47 -05:00
Bernat Pericàs b562863fcc
feat: add `session.started` event that triggers when a new session is created (#3413) 2025-10-27 07:18:23 -05:00
Aiden Cline e88b659545
make plan agent whitelist more conservative (#3424) 2025-10-24 14:40:36 -05:00
Adam fe8f6d7a3e
wip: desktop work 2025-10-24 12:16:33 -05:00
Dax Raad 4cab66da6c test cleanup 2025-10-24 09:29:38 -04:00
Aiden Cline b5f336c0ea test: rm flaky test 2025-10-23 12:52:08 -05:00
Aiden Cline 7c7ebb0a9d
feat: retry parts (#3369) 2025-10-22 18:31:36 -05:00
Aiden Cline 354f5c3281
ignore: fix acp test (#3339) 2025-10-21 15:27:59 -05:00
Dax Raad e9996342a7 core: provide line-level statistics in file diffs to help users understand the scale of changes 2025-10-21 11:54:41 -04:00
Dax Raad a0a09f421c core: add session diff API to show file changes between snapshots 2025-10-20 17:59:26 -04:00
Joe Schmitt f3f21194ae
feat: Add ACP (Agent Client Protocol) support (#2947)
Co-authored-by: opencode-bot <devnull@opencode.local>
Co-authored-by: Dax Raad <d@ironbay.co>
Co-authored-by: GitHub Action <action@github.com>
2025-10-20 16:55:22 -05:00
Alberto Fanton 7ef246f98f
fix: disable GPG signing in snapshot tests (#3102) 2025-10-13 23:40:41 -05:00
Dax Raad 9d30bc692c ci: fixes 2025-10-11 00:24:35 -04:00
Dax Raad 9da95cb805 upgrade to bun 1.3.0 2025-10-10 17:53:32 -04:00
Dax Raad dfc7ac4cf0 ignore: improve file ignore performance and cross-platform support
- Replace glob patterns with Set lookup for common folders to speed up matching
- Use path.sep for cross-platform compatibility on Windows/Unix systems
- Add comprehensive test coverage for nested and non-nested folder matching
- Simplify implementation by removing unnecessary caching complexity
2025-10-09 15:54:01 -04:00
Dax Raad 5f61945090 core: remove redundant patch integration test
The integration test was duplicating coverage already provided by the comprehensive
patch namespace tests. Users benefit from faster test runs without losing any
coverage of patch functionality. The remaining tests provide complete validation
of patch parsing, application, and tool integration.
2025-10-01 06:49:19 -04:00
Dax Raad 41ce56494b core: make patch tool more reliable and consistent with other editing tools
The patch tool now works seamlessly alongside other file editing tools with improved
error handling and a more intuitive permission system. Users will experience:

- More reliable patch application with better error messages
- Consistent permission prompts that match other editing tools
- Smoother integration when applying complex multi-file changes
- Better feedback on what changes are being made before applying patches

This refactoring leverages the robust patch parsing engine while making the tool
feel native to the opencode workflow, reducing friction when making bulk changes
to your codebase.
2025-10-01 06:45:43 -04:00
Dax Raad 6a7eeb39c3 core: prevent file deletion when reverting changes to existing files 2025-10-01 05:06:37 -04:00
Dax Raad d644e0b8a7 core: fix config test by removing model field expectation 2025-09-27 03:10:01 -04:00
Dax Raad 4b94d98f89 ci: improve test coverage 2025-09-27 03:04:42 -04:00
Dax Raad d0043a4a78 sync 2025-09-27 02:53:20 -04:00
Dax Raad 53481f9790 wip: bun test improvements 2025-09-27 02:17:08 -04:00
GitHub Action b5b8a0555d chore: format code 2025-09-19 09:12:20 +00:00
Dax Raad ae6154e1c3 ignore: rework bootstrap so server lazy starts it 2025-09-19 05:11:29 -04:00
Dax 3b6c0ec0b3
support custom tools (#2668) 2025-09-18 03:58:21 -04:00
Dax Raad 40c206c2f9 add `opencode attach` command to connect to a remote opencode server 2025-09-17 03:30:25 -04:00
Dax Raad 259c722208 only prune messages from more than 2 turns ago 2025-09-17 03:30:09 -04:00
Dax Raad abd99aeb7d ignore: fix event type gen 2025-09-17 01:17:56 -04:00
Dax c1b4e1f19d
Upgrade to Zod v4 (#2605)
Co-authored-by: GitHub Action <action@github.com>
2025-09-15 03:12:07 -04:00
Dax 9bb25a9260
Session management and prompt handling improvements (#2577)
Co-authored-by: GitHub Action <action@github.com>
2025-09-13 05:46:14 -04:00
Dax Raad 38e8c42cf0 ci: format 2025-09-09 23:44:04 -04:00
Zack Jackson ab3c22b77a
feat: add dynamic tool registration for plugins and external services (#2420) 2025-09-08 16:25:04 -04:00
Aiden Cline f740663ded
fix: more durable @ references for commands (#2386) 2025-09-02 21:24:56 -05:00
Adam Spiers 47d4c87bdd
make @file references in custom slash commands more robust (#2203)
Co-authored-by: Adam Spiers <opencode@adamspiers.org>
Co-authored-by: rekram1-node <aidenpcline@gmail.com>
2025-09-01 21:14:27 -05:00
Dax f993541e0b
Refactor to support multiple instances inside single opencode process (#2360)
This release has a bunch of minor breaking changes if you are using opencode plugins or sdk

1. storage events have been removed (we might bring this back but had some issues)
2. concept of `app` is gone - there is a new concept called `project` and endpoints to list projects and get the current project
3. plugin receives `directory` which is cwd and `worktree` which is where the root of the project is if it's a git repo
4. the session.chat function has been renamed to session.prompt in sdk. it no longer requires model to be passed in (model is now an object)
5. every endpoint takes an optional `directory` parameter to operate as though opencode is running in that directory
2025-09-01 17:15:49 -04:00
Dax 10735f93ca
Add agent-level permissions with whitelist/blacklist support (#1862) 2025-08-12 11:39:39 -04:00
Dax Raad 061ba65d20 show combined output of bash tool progressively 2025-08-11 01:23:00 -04:00
Yordis Prieto 04a1ab3893
chore: enhance bash command tests with config mock and timeout adjustments (#1486)
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
2025-08-01 14:14:54 -04:00
adamdotdevin 1d682544b9
fix: test 2025-07-31 10:10:34 -05:00
adamdotdevin ef633fe92e
fix: test 2025-07-31 10:07:58 -05:00
Dax 18888351e9
use treesitter to parse bash commands and catch commands that go outside of cwd (#1443) 2025-07-30 20:57:52 -04:00
Yordis Prieto c38b091895
fix: update glob pattern and path in tool test (#1436) 2025-07-30 15:42:13 -05:00
Yordis Prieto eecfd6d0ca
fix: unit test assertion (#1435)
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
2025-07-30 15:13:37 -05:00
Yordis Prieto 4c34b69ae6
chore: fix test to have deterministic testing (#1401) 2025-07-29 17:54:22 -05:00
Dax Raad e97613ef9f allow temperature to be configured per mode 2025-07-25 13:29:44 -04:00
Dax Raad 8dcd39f5b7 real life totally configurabl ai subasians 2025-07-24 21:21:02 -04:00
Filip 541a7a39d3
fix: edit tool (#1287) 2025-07-24 16:18:04 -04:00
Nipuna Perera add81b9739
Enhance private npm registry support (#998) 2025-07-16 08:31:38 -04:00
Dax f884766445
v2 message format and upgrade to ai sdk v5 (#743)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Liang-Shih Lin <liangshihlin@proton.me>
Co-authored-by: Dominik Engelhardt <dominikengelhardt@ymail.com>
Co-authored-by: Jay V <air@live.ca>
Co-authored-by: adamdottv <2363879+adamdottv@users.noreply.github.com>
2025-07-07 15:53:43 -04:00
Dax Raad 51bf193889 ignore: run prettier 2025-06-26 22:30:44 -04:00
Dax Raad d240f4c676 more edit tool fixes 2025-06-25 19:22:54 -04:00
Dax Raad 9c90cdbe08 integrate gemini-cli strategies for edit tool 2025-06-25 17:56:14 -04:00
Dax Raad fc7af31fe5 make edit tool more robust 2025-06-25 17:10:48 -04:00
Tom 09b89fdb23
fix: resolve test failures by adding missing zod-openapi import (#301)
Co-authored-by: opencode <noreply@opencode.ai>
2025-06-22 14:25:02 -04:00
Dax Raad f99904bc1c track version on session info 2025-06-18 13:40:36 -04:00
Dax Raad ee91f31313 fix issue with tool schemas and google 2025-06-17 11:27:07 -04:00
Dax Raad 68e1b3c46c Fix TypeScript compilation errors and consolidate version handling
🤖 Generated with [opencode](https://opencode.ai)

Co-Authored-By: opencode <noreply@opencode.ai>
2025-06-17 10:27:49 -04:00
Dax Raad bfb36a8566 Refactor app context system to use Zod schemas and sync access pattern
🤖 Generated with opencode
Co-Authored-By: opencode <noreply@opencode.ai>
2025-06-03 11:59:03 -04:00
Dax Raad e764525578 sync 2025-06-01 15:01:57 -04:00
Dax Raad a1c4f345a8 Fix TypeScript errors and clean up unused imports
- Remove unused fs import from app.ts
- Remove unused LLM import and missing module reference from server.ts
- Fix parameter naming inconsistency in fetch.ts execute function
- Add missing metadata property to fetch.ts return statement
- Update test file to use correct API signatures and parameter names
- Remove unused parameters from example.ts

🤖 Generated with opencode
Co-Authored-By: opencode <noreply@opencode.ai>
2025-06-01 14:46:04 -04:00
Dax Raad b4f809559e tool rework 2025-05-31 17:12:16 -04:00
Dax Raad 3b746162d2 run formatter 2025-05-31 14:41:00 -04:00
Dax Raad f3da73553c sync 2025-05-30 20:48:36 -04:00