Skip to content

Commit 91db2aa

Browse files
ci: typecheck every workspace on PRs and main
`bun turbo typecheck` ran only at release and in the pre-push hook, so a type error from two PRs that each passed alone reached main unnoticed. Add a Typecheck job, and give trace-context-loop's MCP mock the `listMeta` and `snapshot` members the interface gained in the same window. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0174HUYiaceApqHP7EKMNgnb
1 parent f8191ab commit 91db2aa

2 files changed

Lines changed: 43 additions & 0 deletions

File tree

‎.github/workflows/ci.yml‎

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,47 @@ jobs:
124124
run: bun script/check-tracker-leaks.ts
125125
# altimate_change end
126126

127+
# altimate_change start — typecheck every workspace on PRs and on main.
128+
# ---------------------------------------------------------------------------
129+
# `bun turbo typecheck` ran only in release.yml and in the local pre-push hook,
130+
# and the TypeScript job below runs tests, not the compiler. So nothing in CI
131+
# caught two PRs that each passed on their own leaving main with a type error
132+
# together; it surfaced as every developer's pre-push failing after they
133+
# merged main, and would have failed the next release.
134+
typecheck:
135+
name: Typecheck
136+
needs: changes
137+
if: needs.changes.outputs.typescript == 'true' || github.event_name == 'push'
138+
runs-on: ubuntu-latest
139+
timeout-minutes: 15
140+
permissions:
141+
contents: read
142+
steps:
143+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
144+
with:
145+
persist-credentials: false
146+
147+
- uses: oven-sh/setup-bun@ecf28ddc73e819eb6fa29df6b34ef8921c743461 # v2
148+
with:
149+
bun-version: "1.3.14"
150+
151+
- name: Cache Bun dependencies
152+
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
153+
with:
154+
path: ~/.bun/install/cache
155+
key: bun-${{ runner.os }}-${{ hashFiles('bun.lock') }}
156+
restore-keys: |
157+
bun-${{ runner.os }}-
158+
159+
- name: Install dependencies
160+
run: bun install
161+
162+
# The same command as release.yml's gate and the pre-push hook, so all
163+
# three agree on what "typechecks" means.
164+
- name: Typecheck
165+
run: bun turbo typecheck
166+
# altimate_change end
167+
127168
# Main TypeScript tests — excludes driver E2E tests (separate job) and
128169
# cloud credential tests (local-only).
129170
# ---------------------------------------------------------------------------

‎packages/opencode/test/session/trace-context-loop.test.ts‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ const mcp = Layer.succeed(
2626
status: () => Effect.succeed({}),
2727
clients: () => Effect.succeed({}),
2828
tools: () => Effect.succeed({}),
29+
listMeta: () => Effect.succeed(undefined),
30+
snapshot: () => Effect.succeed({ tools: {}, meta: undefined }),
2931
prompts: () => Effect.succeed({}),
3032
resources: () => Effect.succeed({}),
3133
add: () => Effect.succeed({ status: { status: "disabled" as const } }),

0 commit comments

Comments
 (0)