Commit graph

149 commits

Author SHA1 Message Date
Kit Langton
c060c436b6
Drop LSP config Zod statics (#26920) 2026-05-11 16:11:11 -04:00
Sebastian
a0fc27e424
flatten to keybind compatible config (#26421) 2026-05-09 01:29:13 +02:00
opencode-agent[bot]
a196569f51 chore: generate 2026-05-08 11:56:55 +00:00
Sebastian
19da27e1cb
internal which-key plugin, inactive by default (#26337) 2026-05-08 13:55:49 +02:00
opencode-agent[bot]
2c17e3a4db chore: generate 2026-05-07 18:36:42 +00:00
Sebastian
98f5e6e713
introduce opentui keymap as sole key/cmd engine (#26053) 2026-05-07 20:35:31 +02:00
Dax
d9c18381a6
feat(config): support well-known remote_config (#26054) 2026-05-06 15:12:23 +00:00
Kit Langton
13ac849db5
refactor(config+core): drop ConfigPaths.readFile, add AppFileSystem.readFileStringSafe, flatten TuiConfig.loadState (#25602) 2026-05-03 15:21:34 +00:00
Kit Langton
7d91d3b1ed
Normalize instance lifecycle wiring (#25501) 2026-05-02 20:39:20 -04:00
Kit Langton
f98053c34e
fix(instance): run bootstrap from instance store (#25475) 2026-05-02 19:33:38 -04:00
Kit Langton
4c4860fb24
Replace Instance.disposeAll/load with fixture helper (#25418) 2026-05-02 10:56:15 -04:00
Kit Langton
b315a70773
test: use Effect test helper for agent colors (#25051) 2026-04-30 15:14:25 -04:00
Dax
f25f1485d5
refactor: remove module barrels (#24554) 2026-04-27 14:33:33 -04:00
Dax
a9b62d67df
Refactor npm config handling (#24565) 2026-04-27 03:54:59 +00:00
Luke Parker
141f33d24b
feat: configurable shell selection + desktop settings UI (#20602) 2026-04-27 00:54:55 +00:00
Dax Raad
f5dce6d960 core: move npm service to core package for shared dependency management 2026-04-25 14:36:15 -04:00
Dax Raad
1e98167b0e core: move cross-spawn-spawner to root and remove unused types
The cross-spawn-spawner module has been moved from src/effect/ to src/
to simplify the core package structure. The src/types.d.ts file which
contained unused type declarations has also been removed. All imports
throughout the codebase have been updated to reflect the new location.

This change reduces the package's internal complexity by flattening the
module hierarchy and removing dead code, making future maintenance easier.
2026-04-25 14:30:16 -04:00
Dax Raad
3eee2f6afa core: move cross-spawn-spawner from opencode to core package
Moved the cross-spawn-spawner module from packages/opencode to packages/core
to enable code sharing across the monorepo. This consolidates the process
spawning infrastructure into the core package so other packages can use
cross-platform child process spawning without duplicating the implementation.

Updated all import statements across the codebase to reference the new
location (@opencode-ai/core/effect/cross-spawn-spawner). Removed the
local copy from the opencode package along with its tests.
2026-04-25 14:23:17 -04:00
Dax Raad
705f792e87 core: move Global module to @opencode-ai/core for centralized path management
Move the Global module from packages/opencode/src/global to packages/core/src/global
to provide a unified location for managing XDG directories and application paths.
This eliminates duplicate path definitions across packages and ensures consistent
access to data, config, cache, state, log, and bin directories throughout the codebase.
2026-04-25 13:52:32 -04:00
Kit Langton
a9740b9133
fix(config): preserve permission order with Effect decode (#24308) 2026-04-25 13:30:12 -04:00
Dax
62ef2a2207
refactor: rename shared package to core (#24309) 2026-04-25 10:59:17 -04:00
Dax
66f93035b0
fix permission config order (#24222) 2026-04-25 13:18:42 +00:00
Kit Langton
b0f565b74a
refactor(core): migrate ConfigPermission.Info to Effect Schema canonical (#23740) 2026-04-21 17:33:13 -04:00
Kit Langton
ecc06a3d8f
refactor(core): make Config.Info canonical Effect Schema (#23716) 2026-04-21 14:06:47 -04:00
Aiden Cline
2486621ca1
chore: kill unused tool (#23701) 2026-04-21 11:31:20 -04:00
Kit Langton
e7686dbd64
feat(effect-zod): translate Schema.check filters into zod .superRefine + promote LSP refinement to Effect layer (#23173) 2026-04-17 20:46:05 +00:00
Dax
467be08e67
refactor: consolidate npm exports and trace flock acquisition (#23151) 2026-04-17 18:58:37 +00:00
Dax Raad
2f73e73e9d trace npm fully 2026-04-17 14:08:45 -04:00
Dax
220e3e9a2b
refactor: make formatter config opt-in (#22997) 2026-04-17 02:33:09 +00:00
Dax
01bb54a94d
refactor: split config parsing steps (#22996) 2026-04-17 01:57:43 +00:00
Kit Langton
c026e25088
refactor: eliminate account/ barrel, route consumers to sibling files (#22995) 2026-04-17 01:55:50 +00:00
Kit Langton
5d47ea0918
refactor: unwrap ConfigMCP namespace + self-reexport (#22948) 2026-04-16 19:52:04 -04:00
Dax Raad
03e20e6ac1 core: modularize config parsing to improve maintainability
Extract error handling, parsing logic, and variable substitution into dedicated
modules. This reduces duplication between tui.json and opencode.json parsing
and makes the config system easier to extend for future config formats.
2026-04-16 13:29:03 -04:00
Dax Raad
33bb847a1d config: refactor 2026-04-16 12:40:24 -04:00
Dax Raad
bfffc3c2c6 tui: ensure TUI plugins load with proper project context when multiple directories are open
Fixes potential plugin resolution issues when switching between projects by wrapping
plugin loading in Instance.provide(). This ensures each plugin resolves dependencies
relative to its correct project directory instead of inheriting context from whatever
instance happened to be active.

Also reorganizes config loading code into focused modules (command.ts, managed.ts,
plugin.ts) to make the codebase easier to maintain and test.
2026-04-16 12:40:24 -04:00
Dax
ef90b93205
fix: restore .gitignore logic for config dirs and migrate to shared Npm service (#22772) 2026-04-16 03:14:06 -04:00
Dax
675a46e23e
CLI perf: reduce deps (#22652) 2026-04-16 02:03:03 -04:00
Kit Langton
9f4b73b6a3
fix: clean up final 16 no-unused-vars warnings (#22751) 2026-04-16 03:54:21 +00:00
Kit Langton
8aa0f9fe95
feat: enable type-aware no-base-to-string rule, fix 56 violations (#22750) 2026-04-16 03:50:47 +00:00
Kit Langton
1ca257e356
feat: unwrap config namespaces to flat exports + barrel (#22746) 2026-04-15 23:29:14 -04:00
Kit Langton
343a564183
feat: unwrap 11 util namespaces to flat exports + barrel (#22739) 2026-04-15 23:15:58 -04:00
Kit Langton
6c7e9f6f3a
refactor: migrate Effect call sites from Flock to EffectFlock (#22688) 2026-04-16 02:39:59 +00:00
Kit Langton
bbdbc107ae
feat: unwrap Config namespace to flat exports + barrel (#22689) 2026-04-15 21:26:24 -04:00
Dax
be9432a893
shared package (#22626) 2026-04-15 14:26:20 +00:00
Kit Langton
6a99079012
kit/env instance state (#22383) 2026-04-13 22:28:16 -04:00
Kit Langton
14ccff4037
refactor(agent): remove async facade exports (#22341) 2026-04-13 14:54:01 -04:00
Kit Langton
f7c6943817
refactor(config): remove async facade exports (#22325) 2026-04-13 13:11:05 -04:00
Kit Langton
321bf1f8e1
refactor: finish small effect service adoption cleanups (#22094) 2026-04-13 09:17:13 -04:00
Luke Parker
77a462c930
fix(tui): default Ctrl+Z to undo on Windows (#21138) 2026-04-06 02:38:35 +00:00
Kit Langton
6ea108a03b
feat(tui): show console-managed providers (#20956) 2026-04-04 19:05:45 -04:00
Lenny Vaknine
7e32f80d82
feat: add macOS managed preferences support for enterprise MDM deployments (#19178)
Co-authored-by: Lenny Vaknine <lvaknine@gitlab.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2026-04-02 12:52:49 -05:00
Sebastian
f6fd43e574
Refactor plugin/config loading, add theme-only plugin package support (#20556) 2026-04-01 23:50:22 +00:00
Dax
c9326fc199
refactor: replace BunProc with Npm module using @npmcli/arborist (#18308)
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: Brendan Allan <git@brendonovich.dev>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2026-04-01 21:01:37 +00:00
Sebastian
25a2b739e6
warn only and ignore plugins without entrypoints, default config via exports (#20284) 2026-03-31 17:14:03 +02:00
Sebastian
fa95a61c4e
Refactor into plugin loader and do not enforce (#20112) 2026-03-30 20:36:21 +02:00
Sebastian
ff13524a53
fix flaky plugin tests (no mock.module for bun) (#19445) 2026-03-27 20:55:03 +01:00
Sebastian
6274b0677c
tui plugins (#19347) 2026-03-27 15:00:26 +01:00
Kit Langton
9c6f1edfd7
refactor(effect): yield services instead of promise facades (#19325) 2026-03-26 21:46:38 -04:00
Kit Langton
28f5176ffd
effectify Config service (#19139) 2026-03-26 13:07:01 -04:00
Aiden Cline
77fc88c8ad
chore: remove dead code for todoread tool (#19128) 2026-03-25 16:21:42 +00:00
Kit Langton
38e0dc9ccd
Move service state into InstanceState, flatten service facades (#18483) 2026-03-21 04:51:35 +00:00
Shoubhit Dash
d4ae13f2a0
fix(opencode): serialize config bun installs (#17342) 2026-03-13 17:58:00 +05:30
Kit Langton
dbc00aa8e0
feat(id): brand ProjectID through Drizzle and Zod schemas (#16948) 2026-03-11 16:44:26 -04:00
Dax
613562f504
core: make account login upgrades safe while adding multi-account workspace auth (#15487)
Co-authored-by: Kit Langton <kit.langton@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 12:53:47 -04:00
Luke Parker
8a95be492d
fix(windows): git path resolution for modified files across Git Bash, MSYS2, and Cygwin (#16422) 2026-03-07 15:42:14 +10:00
Matt Silverlock
74ebb4147f
fix(auth): normalize trailing slashes in auth login URLs (#15874) 2026-03-03 13:35:49 -05:00
Sebastian
9d29d692c6
split tui/server config (#13968) 2026-02-25 23:53:09 +01:00
Luke Parker
1af3e9e557
fix(win32): fix plugin resolution with createRequire fallback (#14898) 2026-02-24 22:20:57 +10:00
Luke Parker
659068942e
fix(win32): handle CRLF line endings in markdown frontmatter parsing (#14886) 2026-02-24 20:33:22 +10:00
Dax
02a9495063
Remove use of Bun.file (#14215) 2026-02-19 11:32:32 -05:00
Ariane Emory
1893473148
fix: token substitution in OPENCODE_CONFIG_CONTENT (alternate take) (#14047) 2026-02-18 23:18:24 -06:00
Aiden Cline
1fb6c0b5b3
Revert "fix: token substitution in OPENCODE_CONFIG_CONTENT" (#13429) 2026-02-12 23:24:31 -06:00
Ariane Emory
29671c1397
fix: token substitution in OPENCODE_CONFIG_CONTENT (#13384) 2026-02-12 16:59:44 -06:00
Hank Stoever
229cdafcc4
fix(config): handle $ character with {file:} pattern (#12390)
Co-authored-by: Hank Stoever <1109058+hstove@users.noreply.github.com>
2026-02-05 20:10:35 -06:00
Dax Raad
531b1941a0 ci: ensure config test waits for dependencies to complete installation 2026-02-05 10:13:52 -05:00
Shantur Rathore
0d38e69038
fix(core): skip dependency install in read-only config dirs (#12128) 2026-02-04 14:45:59 -06:00
Idris Gadi
95211a8854
feat(tui): allow theme colors in agent customization (#11444) 2026-02-03 15:09:21 -06:00
neavo
f15755684f
fix(opencode): scope agent variant to model (#11410) 2026-02-01 14:12:30 -06:00
Mikhail Levchenko
b5ffa997da
feat(config): add managed settings support for enterprise deployments (#6441)
Co-authored-by: Dax <mail@thdxr.com>
2026-01-29 22:56:25 +00:00
Aiden Cline
33c5c100ff
fix: frontmatter was adding newlines in some cases causing invalid model ids (#11095)
Co-authored-by: aptdnfapt <aptdnfapt@users.noreply.github.com>
2026-01-28 23:40:59 -06:00
GitHub Action
96e9c89cc6 chore: generate 2026-01-21 05:37:18 +00:00
Kenny
a18ae2c8b7
feat: add OPENCODE_DISABLE_PROJECT_CONFIG env var (#8093)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2026-01-20 23:36:42 -06:00
Aiden Cline
052f887a9a core: prevent env variables in config from being replaced with actual values
When opencode.json was missing a $schema, the config loader would add it
and write the file back - but with env variables like {env:API_KEY} replaced
with their actual secret values. This made it impossible to safely commit
opencode.json to version control.

Now the original config text is preserved when adding $schema, keeping
variable placeholders intact.
2026-01-17 20:59:50 -06:00
Aiden Cline
dc1c25cff5
fix: ensure frontmatter can process same content as other agents (#8719) 2026-01-15 13:06:14 -06:00
Aiden Cline
735f3d17bc
fix: ensure plurals are properly handled (#8070) 2026-01-12 15:21:01 -06:00
Jeon Suyeol
8e3ab4afa7
feat(config): deduplicate plugins by name with priority-based resolution (#5957) 2026-01-09 02:11:24 -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
Dax Raad
0276885181 core: preserve permission config key order to maintain user-defined permission precedence 2026-01-05 14:09:37 -05:00
Matt Silverlock
66bc046503
fix: merge instructions arrays across config files (#6663) 2026-01-02 13:55:40 -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
Didier Durand
29d8557d41
doc: fix typos in various files (#6294) 2025-12-28 13:06:25 -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
d3922f0965
core: add verification that at least 1 primary agent is enabled, add regression tests (#5881) 2025-12-20 21:36:22 -06: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
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
GitHub Action
34ff87d504 chore: format code 2025-11-08 01:59:02 +00: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
Dax Raad
d644e0b8a7 core: fix config test by removing model field expectation 2025-09-27 03:10:01 -04:00
Dax Raad
d0043a4a78 sync 2025-09-27 02:53:20 -04:00