Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
4515 commits
Select commit Hold shift + click to select a range
ca53c2f
release: v1.0.103
Nov 22, 2025
2548787
proper fix for image attachments (#4562)
shuv1337 Nov 22, 2025
ad1e84f
tui: added ctrl-z terminal suspension support (#3983)
goniz Nov 22, 2025
149b310
docs: add Docker installation option for OpenCode
thdxr Nov 22, 2025
6c8623a
load desktop app
thdxr Nov 22, 2025
b9c49ed
reset cache
thdxr Nov 22, 2025
537ba98
release: v1.0.104
Nov 22, 2025
9959800
fix: auto upgrade toast message (#4625)
Raviguntakala Nov 22, 2025
07ee2d5
chore: format code
actions-user Nov 22, 2025
72b59ac
tui: fix message completion timing and duration display in session view
thdxr Nov 22, 2025
ef3cb09
core: prevent concurrent bun package installs that could cause corrup…
thdxr Nov 22, 2025
7f4eeed
release: v1.0.105
Nov 22, 2025
5d13fdb
wip(share): more styling
adamdotdevin Nov 23, 2025
c98489b
chore: format code
actions-user Nov 23, 2025
a71b22b
bump opentui to v0.1.49
kommander Nov 23, 2025
1ab541d
Update Nix flake.lock and hashes
actions-user Nov 23, 2025
1bc0c2c
fix auth
thdxr Nov 23, 2025
3e96cbd
chore: format code
actions-user Nov 23, 2025
c6802c3
fixed
thdxr Nov 23, 2025
146ebaa
fix logout
thdxr Nov 23, 2025
9680027
fix logout
thdxr Nov 23, 2025
f3086ae
fix suspense
thdxr Nov 23, 2025
a83b72d
fix: prevent permission shortcuts when ctrl/meta pressed (#4631)
terakael Nov 23, 2025
aa98eae
tweak: start bundling in some ai-sdk packages (#4649)
rekram1-node Nov 23, 2025
3d0e203
Update Nix flake.lock and hashes
actions-user Nov 23, 2025
b8cb94b
fix: make tui session text respect theme fg (#4618) (#4620)
tylimbach Nov 23, 2025
6f2ee53
ci: fix action
rekram1-node Nov 23, 2025
1f4cb02
feature: optional selectedListItemText element in themes and luminanc…
ariane-emory Nov 23, 2025
70214ce
ignore: update download stats 2025-11-23
actions-user Nov 23, 2025
d058e9a
ignore: update @solidjs/start dependency and fix console redirect han…
thdxr Nov 23, 2025
39ac39f
Update Nix flake.lock and hashes
actions-user Nov 23, 2025
1bd927a
tweak: fix bool
rekram1-node Nov 23, 2025
98fca51
sync
thdxr Nov 23, 2025
02e84c8
ci: stuff
thdxr Nov 23, 2025
4e8d401
Update Nix flake.lock and hashes
actions-user Nov 23, 2025
263e5fa
ci: stuff
thdxr Nov 23, 2025
ee748a6
Update Nix flake.lock and hashes
actions-user Nov 23, 2025
f8b3682
fix bash tool wsl
rekram1-node Nov 23, 2025
8383223
ci: ignore
thdxr Nov 23, 2025
b54aa45
release: v1.0.106
Nov 23, 2025
9422f94
Update Nix flake.lock and hashes
actions-user Nov 23, 2025
6e58f76
ci: ignore
thdxr Nov 23, 2025
ff881f6
token
thdxr Nov 23, 2025
1b3ad0d
ci: secret
thdxr Nov 23, 2025
33a2e3a
chore: format code
actions-user Nov 23, 2025
3ef549e
ci: ignore
thdxr Nov 23, 2025
16727a0
ci: ignore
thdxr Nov 23, 2025
c0550d0
ci: ignore
thdxr Nov 23, 2025
b73127c
ci: remove log
thdxr Nov 23, 2025
4595ce9
tweak: slight improvements to title gen
rekram1-node Nov 23, 2025
cf31708
wip: zen
Nov 23, 2025
d62d562
wip: zen
Nov 23, 2025
7aeaae4
chore: format code
actions-user Nov 23, 2025
42eb0b1
fix: add explicit fallback model and prevent direct opencode provide…
no1wudi Nov 24, 2025
d39f9eb
nix: bundle js dist with bun and patch tree-sitter wasm paths (#4644)
Alb-O Nov 24, 2025
4aa5fbe
chore: format code
actions-user Nov 24, 2025
28ea75c
fix: fatal: undefined is not an object (evaluating 'color.buffer')
rekram1-node Nov 24, 2025
48af38f
bump copilot plugin, give better error message for copilot (#4678)
rekram1-node Nov 24, 2025
7255b0a
release: v1.0.107
Nov 24, 2025
72d1960
tweak: modified files sidebar
rekram1-node Nov 24, 2025
86d82b8
fix: persist light vs dark mode
rekram1-node Nov 24, 2025
59b47ed
chore: format code
actions-user Nov 24, 2025
e41ca77
tweak: display MCPs in alphabetic order in the sidebar. (#4680)
ariane-emory Nov 24, 2025
403ab68
TUI: fix: add null check for user.time in duration calculation (#4679)
WohthaN Nov 24, 2025
b025245
ignore: update download stats 2025-11-24
actions-user Nov 24, 2025
a82a808
docs: add Ollama Cloud provider setup to providers.mdx (#4693)
fifthfrankie Nov 24, 2025
28d476b
non-corpo loading spinner
kommander Nov 24, 2025
d155a3e
chore: format code
actions-user Nov 24, 2025
29e9f3d
release: v1.0.108
Nov 24, 2025
fc85a4a
textarea highlight cursor color
kommander Nov 24, 2025
9c3decd
chore: format code
actions-user Nov 24, 2025
e4cbd3d
wip: zen
Nov 24, 2025
b0474fa
ci: nix hash
rekram1-node Nov 24, 2025
794c0d6
add autoupdate: notify
rekram1-node Nov 24, 2025
52fbba0
zen: add opus 4.5
Nov 24, 2025
1309c8c
wip(share): more styling
adamdotdevin Nov 24, 2025
a5ec23c
wip(share): more styling
adamdotdevin Nov 24, 2025
0f326f2
wip(share): more styling
adamdotdevin Nov 24, 2025
44ebe7f
wip(share): enterprise favicon
adamdotdevin Nov 24, 2025
89a4f6d
fix(console): favicon issues
adamdotdevin Nov 24, 2025
2390593
chore: format code
actions-user Nov 24, 2025
b9be97f
fix(console): remove extra favicon
adamdotdevin Nov 24, 2025
5ede837
adjust bundled provider logic, fix tree shaking stuff (#4708)
rekram1-node Nov 24, 2025
981ecad
wip: zen
Nov 24, 2025
48fc35b
zen: display reasoning tokens
Nov 24, 2025
02c7ff1
fix(desktop): layout
adamdotdevin Nov 24, 2025
723f150
Add --refresh flag to models command (#4707)
ahosker Nov 24, 2025
5a1f6c6
zen: byok for gemini
Nov 24, 2025
5e1f2bb
remove hardcoded openrouter provider
rekram1-node Nov 24, 2025
13db37b
release: v1.0.109
Nov 24, 2025
228bbd8
Support basic auth in opencode sdk (#4697)
ajoslin Nov 24, 2025
c33baf3
chore: format code
actions-user Nov 24, 2025
d532ea0
fix(share): responsiveness
adamdotdevin Nov 24, 2025
f310ff4
bump opentui to v0.1.50
kommander Nov 25, 2025
95934c1
Update Nix flake.lock and hashes
actions-user Nov 25, 2025
1e4e552
fix(desktop): message summaries
adamdotdevin Nov 25, 2025
35c5731
fix(desktop): content animations
adamdotdevin Nov 25, 2025
4d10079
tui: prevent re-fetching already synced sessions when switching sessions
thdxr Nov 25, 2025
08f9146
fix(tui): spacing
adamdotdevin Nov 25, 2025
2faa737
tui: use standard middle dot separator for better terminal compatibility
thdxr Nov 25, 2025
06534c1
release: v1.0.110
Nov 25, 2025
8d6c8e5
tui: align session panel content with consistent left padding
thdxr Nov 25, 2025
5a450a4
core: refactor share system to separate session IDs from share IDs
thdxr Nov 25, 2025
16d388a
chore: format code
actions-user Nov 25, 2025
fbd0675
log data
thdxr Nov 25, 2025
4839cbf
zen: sticky session
Nov 25, 2025
e747088
zen: graduate kimi k2 thinking
Nov 25, 2025
bb8cfe1
ignore: comment out thingy
rekram1-node Nov 25, 2025
b8f1eb2
config: add setCacheKey in provider options (#4654)
shantur Nov 25, 2025
69eb484
Revert "config: add setCacheKey in provider options (#4654)"
rekram1-node Nov 25, 2025
d74bb63
zen: add zai logo
Nov 25, 2025
28acaf3
zen: remove official support for unified endpoint
Nov 25, 2025
d09d9a2
fixed suspense in enterprise
thdxr Nov 25, 2025
6997c93
ci: adjust nix hash
rekram1-node Nov 25, 2025
db934a2
Revert "Support basic auth in opencode sdk (#4697)"
rekram1-node Nov 25, 2025
eba24fb
prompt_async: Allows to receive prompt and return immediately, start …
shantur Nov 25, 2025
1bc89aa
better scroll speed default for windows
rekram1-node Nov 25, 2025
3ff8d4f
ignore: update download stats 2025-11-25
actions-user Nov 25, 2025
c8ddb3f
feat(share): SSR'd diffs
adamdotdevin Nov 25, 2025
f197dc0
fix(enterprise): custom element defs
adamdotdevin Nov 25, 2025
ed43b1f
fix(enterprise): custom element defs
adamdotdevin Nov 25, 2025
a6ee982
chore: format code
actions-user Nov 25, 2025
943d60a
Update Nix flake.lock and hashes
actions-user Nov 25, 2025
f2c09d2
nix: set dontFixup = true (#4735)
Alb-O Nov 25, 2025
460a37b
fix: favicons across all web properties
adamdotdevin Nov 25, 2025
c905ddd
chore: format code
actions-user Nov 25, 2025
9167114
Update Nix flake.lock and hashes
actions-user Nov 25, 2025
198efbe
ci: setup bun
rekram1-node Nov 25, 2025
d42b1ba
fix: merge plugin selections (resolves #4565) (#4724)
ariane-emory Nov 25, 2025
59b9975
tweak: alphabetical (mostly) opencode models output (#4725)
ariane-emory Nov 25, 2025
46a98d4
fix: disable virtual extmarks for file/agent mentions (#4731)
remorses Nov 25, 2025
099e3bc
core(enterprise): use aws4fetch for smaller bundle size on edge runtimes
thdxr Nov 25, 2025
7cb6c39
Update Nix flake.lock and hashes
actions-user Nov 25, 2025
1521d34
fix(share): metadata and popover close delay
adamdotdevin Nov 25, 2025
6e7df0a
fix: dont auto continue if compaction was manual
rekram1-node Nov 25, 2025
8a4f4af
fix(share): don't highlight words unless split
adamdotdevin Nov 25, 2025
0e76094
fix(share): style issues
adamdotdevin Nov 25, 2025
d6a048d
fix: markdown inline code style
adamdotdevin Nov 25, 2025
20d36b1
fix: add missing compacted event
rekram1-node Nov 25, 2025
f666ba2
fix: scroll gutter
adamdotdevin Nov 25, 2025
a4bb931
Theme selector UX (current theme indicator and easier selection) (#4623)
PanAchy Nov 25, 2025
95faf6b
docs: reduce mobile padding (#4745)
kandros Nov 25, 2025
3f8b03a
tweak stats command to show avg & median # of tokens per session
rekram1-node Nov 25, 2025
a4c4b84
fix: css code splitting off for desktop
adamdotdevin Nov 25, 2025
9747219
fix: accordion styles
adamdotdevin Nov 25, 2025
78b872a
retry anthropic overloaded errors
thdxr Nov 25, 2025
e877114
release: v1.0.111
Nov 25, 2025
25c74ca
release: v1.0.112
Nov 25, 2025
2cd56b5
better overloaded message
thdxr Nov 25, 2025
c317798
chore: format code
actions-user Nov 25, 2025
8f344e7
docs: improve notes on mobile (#4747)
kandros Nov 25, 2025
d24ede0
ci: update changelog prompt
rekram1-node Nov 25, 2025
b733d74
update install script to handle musl & avx
rekram1-node Nov 25, 2025
999802a
ci: change changelog model
rekram1-node Nov 25, 2025
3601f23
fix: sanitize absolute paths
adamdotdevin Nov 25, 2025
0bd0313
fix: prompt submit error with `opencode -c` (#4496)
veracioux Nov 25, 2025
5ebbcf3
fix: missing deps
adamdotdevin Nov 25, 2025
04fdd7e
fix: build error
adamdotdevin Nov 25, 2025
8336b9d
fix(tui): abort in-progress generation on undo (#4744)
remorses Nov 25, 2025
ee77924
zen: trial
Nov 25, 2025
da199b4
wip: zen
Nov 25, 2025
35901d7
wip: zen
Nov 25, 2025
7847388
chore: format code
actions-user Nov 25, 2025
c1a75fd
wip: zen
Nov 25, 2025
10825b0
config: add setCacheKey in provider options (#4738)
shantur Nov 25, 2025
2ebdb9b
switch typescript lsp to be one per package to ensure it loads when t…
thdxr Nov 26, 2025
5380bd5
release: v1.0.113
Nov 26, 2025
6254c77
fix: global prefix handling w/ aws bedrock (#4757)
rekram1-node Nov 26, 2025
4149f5f
switch to vtsls for typescript lsp
thdxr Nov 26, 2025
b2ba3f4
chore: format code
actions-user Nov 26, 2025
191e444
release: v1.0.114
Nov 26, 2025
cc21068
tui: fix event subscription cleanup in SDK context
thdxr Nov 26, 2025
2f96e75
chore: format code
actions-user Nov 26, 2025
cf780c7
chore: cleanup pierre stuff
adamdotdevin Nov 26, 2025
52bdc72
fix: pierre separators
adamdotdevin Nov 26, 2025
203b060
wip: zen
Nov 26, 2025
5d18aa5
enable exa code/websearch
thdxr Nov 26, 2025
5c6a766
show current git branch in tui (#4765)
rekram1-node Nov 26, 2025
316040d
zen: trial
Nov 26, 2025
a29e007
feat: add a diff_style option to allow disabling columnar diffs (reso…
ariane-emory Nov 26, 2025
b6541e4
docs: add Venice.ai provider (#4748)
georgeglarson Nov 26, 2025
3bfc701
feat(github): add ability to react to PR Review Comments in Workflow …
ucirello Nov 26, 2025
bae10c3
Revert "feat(github): add ability to react to PR Review Comments in W…
rekram1-node Nov 26, 2025
058b91c
Reapply "feat(github): add ability to react to PR Review Comments in …
rekram1-node Nov 26, 2025
a25484e
ignore: fix type issue
rekram1-node Nov 26, 2025
664a836
fix: handle remote image URLs in paste handler (#4691)
MeysamNajafi Nov 26, 2025
723b53c
Add favorites to model selector (#23) (#4343)
shuv1337 Nov 26, 2025
ef750e4
Remove keybinds from favorites feature, keep functionality
rekram1-node Nov 26, 2025
2b242ca
fix: transform MCP tool schemas for Google/Gemini compatibility (#4538)
ZGltYQ Nov 26, 2025
d6abe4e
Renamed vcs.changed to vcs.branch.updated (#4771)
opencode-agent[bot] Nov 26, 2025
e07496f
deps: update pierre diffs
adamdotdevin Nov 26, 2025
29eaa75
Update Nix flake.lock and hashes
actions-user Nov 26, 2025
6f64618
fix: scroll gutter padding
adamdotdevin Nov 26, 2025
2a60416
fix: useData
adamdotdevin Nov 26, 2025
551b958
ignore: update download stats 2025-11-26
actions-user Nov 26, 2025
c28d23e
docs: IO.NET Provider (#4762)
yug49 Nov 26, 2025
0b754f2
fix(tui): show bootstrap errors instead of {} to trace (#4779)
jensenojs Nov 26, 2025
4a66381
release: v1.0.115
Nov 26, 2025
3bb0e69
fix(tui): dedupe file references in prompt (#4775)
remorses Nov 26, 2025
d491aad
chore: format code
actions-user Nov 26, 2025
94e0b7a
lil branch refactor
thdxr Nov 26, 2025
e816bcf
fix: svg paste bug
rekram1-node Nov 26, 2025
d44d640
docs: add llama.cpp provider for local LLM inference (#4769)
rosmur Nov 26, 2025
03cacbf
chore: format code
actions-user Nov 26, 2025
9870dc3
Revert "fix: disable virtual extmarks for file/agent mentions (#4731)"
rekram1-node Nov 26, 2025
71489bc
feat: add Ollama Cloud provider support
dl-alexandre Nov 26, 2025
08469d0
enable parcel file watcher, expand parcel ignore patterns, replace fs…
rekram1-node Nov 26, 2025
97f6b18
tui design refinement (#4809)
thdxr Nov 27, 2025
fe21289
temporarily restrict codesearch and websearch to opencode zen users. …
thdxr Nov 27, 2025
002c887
roll back vtsls
thdxr Nov 27, 2025
092f67f
release: v1.0.117
Nov 27, 2025
39805cd
revert ts lsp to monorepo root
thdxr Nov 27, 2025
34b6315
chore: format code
actions-user Nov 27, 2025
50cf119
Update Nix flake.lock and hashes
actions-user Nov 27, 2025
651779f
tui: prevent footer from shrinking when terminal is resized
thdxr Nov 27, 2025
61c5ca8
release: v1.0.118
Nov 27, 2025
d867f3e
core: prevent external diff tools from interfering with snapshot gene…
thdxr Nov 27, 2025
318988f
chore: format code
actions-user Nov 27, 2025
9f9d45b
core: prevent codesearch and websearch tools when webfetch permission…
thdxr Nov 27, 2025
6134d75
release: v1.0.119
Nov 27, 2025
7a81e0e
Merge branch 'sst:dev' into feat/ollama-cloud-provider
dl-alexandre Nov 27, 2025
970597e
fix: simpler sanitize
adamdotdevin Nov 27, 2025
0786bd0
chore: format code
actions-user Nov 27, 2025
98696f2
fix: session turn margins
adamdotdevin Nov 27, 2025
ea83e6b
fix: desktop layout and scroll gutters
adamdotdevin Nov 27, 2025
c7c37b7
ignore: update download stats 2025-11-27
actions-user Nov 27, 2025
1ecd44d
doc: slashing kimi k2 thinking price
Nov 27, 2025
d6e9590
nix: fix workflow failing on PRs (#4820)
Alb-O Nov 27, 2025
f8543e6
ignore: add reply-to support for enterprise form emails
jayair Nov 27, 2025
3a12d26
ignore: lock
jayair Nov 27, 2025
ccc2467
chore: format code
actions-user Nov 27, 2025
6c9b1e2
tui: hide favorite keybind in model dialog when disconnected to preve…
thdxr Nov 27, 2025
842c04a
tui: remove cancel keybind hint from prompt dialog to simplify UI
thdxr Nov 27, 2025
2f8899c
tui: fix provider sorting to prioritize recommended options
thdxr Nov 27, 2025
d50f056
tui: improve provider dialog text clarity for better user guidance
thdxr Nov 27, 2025
dd7d8e9
tui: simplify model dialog ordering logic to reduce complexity
thdxr Nov 27, 2025
1b6e742
fix lock
thdxr Nov 27, 2025
ea45edd
ci: add bun version check to pre-push hook to ensure version consistency
thdxr Nov 27, 2025
df17806
fix: unwrap solid store part
adamdotdevin Nov 28, 2025
9982f25
fix(desktop): layout
adamdotdevin Nov 28, 2025
d3a96cd
bump anthropic package
rekram1-node Nov 28, 2025
cdb146f
fix: filter empty messages in toModelMessage (#4811)
Tarquinen Nov 28, 2025
bb54ba4
Update Nix flake.lock and hashes
actions-user Nov 28, 2025
612f9a1
core: add built-in Dart LSP server and formatter (#4841)
mastermakrela Nov 28, 2025
bfb05ff
fix: unified diff as default
adamdotdevin Nov 28, 2025
a60e93f
fix: desktop and share layouts
adamdotdevin Nov 28, 2025
ea231b1
fix: theme-color value
adamdotdevin Nov 28, 2025
cfe0f3d
ignore: update download stats 2025-11-28
actions-user Nov 28, 2025
a687e4f
Merge branch 'dev' into feat/ollama-cloud-provider
dl-alexandre Nov 28, 2025
f6d6fe4
Update Nix flake.lock and hashes
actions-user Jan 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 9 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
root = true

[*]
charset = utf-8
insert_final_newline = true
end_of_line = lf
indent_style = space
indent_size = 2
max_line_length = 80
59 changes: 59 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Bug report
description: Report an issue that should be fixed
labels: ["bug"]
body:
- type: textarea
id: description
attributes:
label: Description
description: Describe the bug you encountered
placeholder: What happened?
validations:
required: true

- type: input
id: opencode-version
attributes:
label: OpenCode version
description: What version of OpenCode are you using?
validations:
required: false

- type: textarea
id: reproduce
attributes:
label: Steps to reproduce
description: How can we reproduce this issue?
placeholder: |
1.
2.
3.
validations:
required: false

- type: textarea
id: screenshot-or-link
attributes:
label: Screenshot and/or share link
description: Run `/share` to get a share link, or attach a screenshot
placeholder: Paste link or drag and drop screenshot here
validations:
required: false

- type: input
id: os
attributes:
label: Operating System
description: what OS are you using?
placeholder: e.g., macOS 26.0.1, Ubuntu 22.04, Windows 11
validations:
required: false

- type: input
id: terminal
attributes:
label: Terminal
description: what terminal are you using?
placeholder: e.g., iTerm2, Ghostty, Alacritty, Windows Terminal
validations:
required: false
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: 💬 Discord Community
url: https://discord.gg/opencode
about: For quick questions or real-time discussion. Note that issues are searchable and help others with the same question.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: 🚀 Feature Request
description: Suggest an idea, feature, or enhancement
labels: [discussion]
title: "[FEATURE]:"

body:
- type: checkboxes
id: verified
attributes:
label: Feature hasn't been suggested before.
options:
- label: I have verified this feature I'm about to request hasn't been suggested before.
required: true

- type: textarea
attributes:
label: Describe the enhancement you want to request
description: What do you want to change or add? What are the benefits of implementing this? Try to be detailed so we can understand your request better :)
validations:
required: true
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/question.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: Question
description: Ask a question
labels: ["question"]
body:
- type: textarea
id: question
attributes:
label: Question
description: What's your question?
validations:
required: true
22 changes: 22 additions & 0 deletions .github/actions/setup-bun/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: "Setup Bun"
description: "Setup Bun with caching and install dependencies"
runs:
using: "composite"
steps:
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version-file: package.json

- name: Cache ~/.bun
id: cache-bun
uses: actions/cache@v4
with:
path: ~/.bun
key: ${{ runner.os }}-bun-${{ hashFiles('package.json') }}-${{ hashFiles('bun.lockb', 'bun.lock') }}
restore-keys: |
${{ runner.os }}-bun-${{ hashFiles('package.json') }}-

- name: Install dependencies
run: bun install
shell: bash
57 changes: 57 additions & 0 deletions .github/guidelines-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#
# This file is intentionally in the wrong dir, will move and add later....
#

name: Guidelines Check

on:
# Disabled - uncomment to re-enable
# pull_request_target:
# types: [opened, synchronize]

jobs:
check-guidelines:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Install opencode
run: curl -fsSL https://opencode.ai/install | bash

- name: Check PR guidelines compliance
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENCODE_PERMISSION: '{ "bash": { "gh*": "allow", "gh pr review*": "deny", "*": "deny" } }'
run: |
opencode run -m anthropic/claude-sonnet-4-20250514 "A new pull request has been created: '${{ github.event.pull_request.title }}'

<pr-number>
${{ github.event.pull_request.number }}
</pr-number>

<pr-description>
${{ github.event.pull_request.body }}
</pr-description>

Please check all the code changes in this pull request against the guidelines in AGENTS.md file in this repository. Diffs are important but make sure you read the entire file to get proper context. Make it clear the suggestions are merely suggestions and the human can decide what to do

Use the gh cli to create comments on the files for the violations. Try to leave the comment on the exact line number. If you have a suggested fix include it in a suggestion code block.

Command MUST be like this.
```
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/comments \
-f 'body=[summary of issue]' -f 'commit_id=${{ github.event.pull_request.head.sha }}' -f 'path=[path-to-file]' -F "line=[line]" -f 'side=RIGHT'
```

Only create comments for actual violations. If the code follows all guidelines, don't run any gh commands."
71 changes: 71 additions & 0 deletions .github/publish-python-sdk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
#
# This file is intentionally in the wrong dir, will move and add later....
#

# name: publish-python-sdk

# on:
# release:
# types: [published]
# workflow_dispatch:

# jobs:
# publish:
# runs-on: ubuntu-latest
# permissions:
# contents: read
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4

# - name: Setup Bun
# uses: oven-sh/setup-bun@v1
# with:
# bun-version: 1.2.21

# - name: Install dependencies (JS/Bun)
# run: bun install

# - name: Install uv
# shell: bash
# run: curl -LsSf https://astral.sh/uv/install.sh | sh

# - name: Generate Python SDK from OpenAPI (CLI)
# shell: bash
# run: |
# ~/.local/bin/uv run --project packages/sdk/python python packages/sdk/python/scripts/generate.py --source cli

# - name: Sync Python dependencies
# shell: bash
# run: |
# ~/.local/bin/uv sync --dev --project packages/sdk/python

# - name: Set version from release tag
# shell: bash
# run: |
# TAG="${GITHUB_REF_NAME:-}"
# if [ -z "$TAG" ]; then
# TAG="$(git describe --tags --abbrev=0 || echo 0.0.0)"
# fi
# echo "Using version: $TAG"
# VERSION="$TAG" ~/.local/bin/uv run --project packages/sdk/python python - <<'PY'
# import os, re, pathlib
# root = pathlib.Path('packages/sdk/python')
# pt = (root / 'pyproject.toml').read_text()
# version = os.environ.get('VERSION','0.0.0').lstrip('v')
# pt = re.sub(r'(?m)^(version\s*=\s*")[^"]+("\s*)$', f"\\1{version}\\2", pt)
# (root / 'pyproject.toml').write_text(pt)
# # Also update generator config override for consistency
# cfgp = root / 'openapi-python-client.yaml'
# if cfgp.exists():
# cfg = cfgp.read_text()
# cfg = re.sub(r'(?m)^(package_version_override:\s*)\S+$', f"\\1{version}", cfg)
# cfgp.write_text(cfg)
# PY

# - name: Build and publish to PyPI
# env:
# PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
# shell: bash
# run: |
# ~/.local/bin/uv run --project packages/sdk/python python packages/sdk/python/scripts/publish.py
63 changes: 63 additions & 0 deletions .github/workflows/auto-label-tui.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Auto-label TUI Issues

on:
issues:
types: [opened]

jobs:
auto-label:
runs-on: ubuntu-latest
permissions:
contents: read
issues: write
steps:
- name: Auto-label and assign issues
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const issue = context.payload.issue;
const title = issue.title;
const description = issue.body || '';

// Check for "opencode web" keyword
const webPattern = /(opencode web)/i;
const isWebRelated = webPattern.test(title) || webPattern.test(description);

// Check for version patterns like v1.0.x or 1.0.x
const versionPattern = /[v]?1\.0\./i;
const isVersionRelated = versionPattern.test(title) || versionPattern.test(description);

// Check for "nix" keyword
const nixPattern = /\bnix\b/i;
const isNixRelated = nixPattern.test(title) || nixPattern.test(description);

const labels = [];

if (isWebRelated) {
labels.push('web');

// Assign to adamdotdevin
await github.rest.issues.addAssignees({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,
assignees: ['adamdotdevin']
});
} else if (isVersionRelated) {
// Only add opentui if NOT web-related
labels.push('opentui');
}

if (isNixRelated) {
labels.push('nix');
}

if (labels.length > 0) {
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,
labels: labels
});
}
29 changes: 29 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: deploy

on:
push:
branches:
- dev
- production
workflow_dispatch:

concurrency: ${{ github.workflow }}-${{ github.ref }}

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- uses: ./.github/actions/setup-bun

- uses: actions/setup-node@v4
with:
node-version: "24"

- run: bun sst deploy --stage=${{ github.ref_name }}
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
PLANETSCALE_SERVICE_TOKEN_NAME: ${{ secrets.PLANETSCALE_SERVICE_TOKEN_NAME }}
PLANETSCALE_SERVICE_TOKEN: ${{ secrets.PLANETSCALE_SERVICE_TOKEN }}
STRIPE_SECRET_KEY: ${{ github.ref_name == 'production' && secrets.STRIPE_SECRET_KEY_PROD || secrets.STRIPE_SECRET_KEY_DEV }}
Loading