Skip to content

Commit 2e18a60

Browse files
committed
merge dev
2 parents 9819eb0 + 7341718 commit 2e18a60

992 files changed

Lines changed: 59696 additions & 106347 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/VOUCHED.td

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,10 @@ kommander
2525
-opencodeengineer bot that spams issues
2626
r44vc0rp
2727
rekram1-node
28+
-ricardo-m-l
2829
-robinmordasiewicz
30+
shantur
31+
simonklee
2932
-spider-yamet clawdbot/llm psychosis, spam pinging the team
3033
thdxr
3134
-toastythebot

.github/workflows/publish.yml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ jobs:
114114
- build-cli
115115
- version
116116
runs-on: blacksmith-4vcpu-windows-2025
117-
if: github.repository == 'anomalyco/opencode' && github.ref_name != 'beta'
117+
if: github.repository == 'anomalyco/opencode'
118118
env:
119119
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
120120
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
@@ -213,7 +213,6 @@ jobs:
213213
needs:
214214
- build-cli
215215
- version
216-
if: github.ref_name != 'beta'
217216
continue-on-error: false
218217
env:
219218
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
@@ -390,7 +389,7 @@ jobs:
390389
needs:
391390
- build-cli
392391
- version
393-
if: github.repository == 'anomalyco/opencode' && github.ref_name != 'beta'
392+
if: github.repository == 'anomalyco/opencode'
394393
continue-on-error: false
395394
env:
396395
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
@@ -591,13 +590,12 @@ jobs:
591590
path: packages/opencode/dist
592591

593592
- uses: actions/download-artifact@v4
594-
if: github.ref_name != 'beta'
595593
with:
596594
name: opencode-cli-signed-windows
597595
path: packages/opencode/dist
598596

599597
- uses: actions/download-artifact@v4
600-
if: needs.version.outputs.release && github.ref_name != 'beta'
598+
if: needs.version.outputs.release
601599
with:
602600
pattern: latest-yml-*
603601
path: /tmp/latest-yml

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ jobs:
121121
- name: Read Playwright version
122122
id: playwright-version
123123
run: |
124-
version=$(node -e 'console.log(require("./packages/app/package.json").devDependencies["@playwright/test"])')
124+
version=$(node -e 'console.log(require("./package.json").workspaces.catalog["@playwright/test"])')
125125
echo "version=$version" >> "$GITHUB_OUTPUT"
126126
127127
- name: Cache Playwright browsers

.opencode/.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ plans
33
package.json
44
bun.lock
55
.gitignore
6-
package-lock.json
6+
package-lock.json
7+
references/

.opencode/skills/effect/SKILL.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
name: effect
3+
description: Answer questions about the Effect framework
4+
---
5+
6+
# Effect
7+
8+
This codebase uses Effect, a framework for writing typescript.
9+
10+
## How to Answer Effect Questions
11+
12+
1. Clone the Effect repository: `https://github.com/Effect-TS/effect-smol` to
13+
`.opencode/references/effect-smol` in this project NOT the skill folder.
14+
2. Use the explore agent to search the codebase for answers about Effect patterns, APIs, and concepts
15+
3. Provide responses based on the actual Effect source code and documentation
16+
17+
## Guidelines
18+
19+
- Always use the explore agent with the cloned repository when answering Effect-related questions
20+
- Reference specific files and patterns found in the Effect codebase
21+
- Do not answer from memory - always verify against the source

.opencode/themes/mytheme.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,8 @@
116116
"light": "nord5"
117117
},
118118
"diffLineNumber": {
119-
"dark": "nord2",
120-
"light": "nord4"
119+
"dark": "#abafb7",
120+
"light": "textMuted"
121121
},
122122
"diffAddedLineNumberBg": {
123123
"dark": "#3B4252",

.opencode/tool/github-pr-search.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ async function githubFetch(endpoint: string, options: RequestInit = {}) {
77
Authorization: `Bearer ${process.env.GITHUB_TOKEN}`,
88
Accept: "application/vnd.github+json",
99
"Content-Type": "application/json",
10-
...options.headers,
10+
...(options.headers instanceof Headers ? Object.fromEntries(options.headers.entries()) : options.headers),
1111
},
1212
})
1313
if (!response.ok) {

.opencode/tool/github-triage.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ async function githubFetch(endpoint: string, options: RequestInit = {}) {
2828
Authorization: `Bearer ${process.env.GITHUB_TOKEN}`,
2929
Accept: "application/vnd.github+json",
3030
"Content-Type": "application/json",
31-
...options.headers,
31+
...(options.headers instanceof Headers ? Object.fromEntries(options.headers.entries()) : options.headers),
3232
},
3333
})
3434
if (!response.ok) {

.oxlintrc.json

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
{
2+
"$schema": "https://raw.githubusercontent.com/nicolo-ribaudo/oxc-project.github.io/refs/heads/json-schema/src/public/.oxlintrc.schema.json",
3+
"options": {
4+
"typeAware": true
5+
},
6+
"categories": {
7+
"suspicious": "warn"
8+
},
9+
"rules": {
10+
"typescript/no-base-to-string": "warn",
11+
// Effect uses `function*` with Effect.gen/Effect.fnUntraced that don't always yield
12+
"require-yield": "off",
13+
// SolidJS uses `let ref: T | undefined` for JSX ref bindings assigned at runtime
14+
"no-unassigned-vars": "off",
15+
// SolidJS tracks reactive deps by reading properties inside createEffect
16+
"no-unused-expressions": "off",
17+
// Intentional control char matching (ANSI escapes, null byte sanitization)
18+
"no-control-regex": "off",
19+
// SST and plugin tools require triple-slash references
20+
"triple-slash-reference": "off",
21+
22+
// Suspicious category: suppress noisy rules
23+
// Effect's nested function* closures inherently shadow outer scope
24+
"no-shadow": "off",
25+
// Namespace-heavy codebase makes this too noisy
26+
"unicorn/consistent-function-scoping": "off",
27+
// Opinionated — .sort()/.reverse() mutation is fine in this codebase
28+
"unicorn/no-array-sort": "off",
29+
"unicorn/no-array-reverse": "off",
30+
// Not relevant — this isn't a DOM event handler codebase
31+
"unicorn/prefer-add-event-listener": "off",
32+
// Bundler handles module resolution
33+
"unicorn/require-module-specifiers": "off",
34+
// postMessage target origin not relevant for this codebase
35+
"unicorn/require-post-message-target-origin": "off",
36+
// Side-effectful constructors are intentional in some places
37+
"no-new": "off",
38+
39+
// Type-aware: catch unhandled promises
40+
"typescript/no-floating-promises": "warn",
41+
// Warn when spreading non-plain objects (Headers, class instances, etc.)
42+
"typescript/no-misused-spread": "warn"
43+
},
44+
"options": {
45+
"typeAware": true
46+
},
47+
"options": {
48+
"typeAware": true
49+
},
50+
"ignorePatterns": ["**/node_modules", "**/dist", "**/.build", "**/.sst", "**/*.d.ts", "**/sdk.gen.ts"]
51+
}

AGENTS.md

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,36 +11,10 @@
1111
- Keep things in one function unless composable or reusable
1212
- Avoid `try`/`catch` where possible
1313
- Avoid using the `any` type
14-
- Prefer single word variable names where possible
1514
- Use Bun APIs when possible, like `Bun.file()`
1615
- Rely on type inference when possible; avoid explicit type annotations or interfaces unless necessary for exports or clarity
1716
- Prefer functional array methods (flatMap, filter, map) over for loops; use type guards on filter to maintain type inference downstream
1817

19-
### Naming
20-
21-
Prefer single word names for variables and functions. Only use multiple words if necessary.
22-
23-
### Naming Enforcement (Read This)
24-
25-
THIS RULE IS MANDATORY FOR AGENT WRITTEN CODE.
26-
27-
- Use single word names by default for new locals, params, and helper functions.
28-
- Multi-word names are allowed only when a single word would be unclear or ambiguous.
29-
- Do not introduce new camelCase compounds when a short single-word alternative is clear.
30-
- Before finishing edits, review touched lines and shorten newly introduced identifiers where possible.
31-
- Good short names to prefer: `pid`, `cfg`, `err`, `opts`, `dir`, `root`, `child`, `state`, `timeout`.
32-
- Examples to avoid unless truly required: `inputPID`, `existingClient`, `connectTimeout`, `workerPath`.
33-
34-
```ts
35-
// Good
36-
const foo = 1
37-
function journal(dir: string) {}
38-
39-
// Bad
40-
const fooBar = 1
41-
function prepareJournal(dir: string) {}
42-
```
43-
4418
Reduce total variable count by inlining when a value is only used once.
4519

4620
```ts

0 commit comments

Comments
 (0)