Repository navigation
Open
Labels
app/mcpxPackage/app: mcpx (pkgs/ or apps/ in this repo)Package/app: mcpx (pkgs/ or apps/ in this repo)effort/sSmall: expected under 2 hours of workSmall: expected under 2 hours of workkind/testTest coverage, test infrastructure, or test-only fixesTest coverage, test infrastructure, or test-only fixesmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)Ordinary priority (the default)source/queue-workerFiled or worked by the queue/worker pilotFiled or worked by the queue/worker pilot
Description
Follow-up to #1901 and the completed first CI slice in #1996.
Current-main evidence (2026-11-03)
.github/workflows/mcpx.ymland.github/workflows/mcpx-test.ymlrun Go checks and the Bun plugin test suite (bun test plugin/opencode/mcpx/).- No mcpx workflow runs
deno lint,deno check, or an equivalent TypeScript linter/type-checker overpkgs/mcpx/plugin/opencode/mcpx/(confirmed by searching all tracked workflow files at52fd50d17e750ae84385b5b41414e886eccee95e). - The closed mcpx testing: every formatter and linter in the CI matrix, pinned by the flake (and run the plugin's bun test) #1996 proposed a TypeScript lint/check slice but its delivered PR mcpx: CI lint leg (vet, golangci-lint, gofmt, shellcheck, actionlint) + plugin bun test leg (#1996) #2718 covered Go lint checks and Bun tests; remaining Go lint debt has its own issue mcpx: fix the 119 golangci findings the new lint leg surfaced, then make the leg blocking #2836.
- The repo-wide scheduled formatter policy in
.github/ci-policy.mdis intentionally non-blocking; this issue is only about lint/type-check coverage, not formatter gating or auto-format.
Scope
Add a pinned, reproducible CI check for linting and type-checking the mcpx-owned TypeScript plugin sources. Use the existing Bun/OpenCode type environment where appropriate; if Deno lint/check cannot type-check the plugin accurately, choose a flake-pinned equivalent and record the reason. Keep this separate from the Go lint-debt work in #2836.
Acceptance
- A dedicated or clearly named CI step checks the plugin TypeScript sources for lint and type errors using pinned tooling.
- The check runs on relevant mcpx changes and passes on GitHub Actions.
- Existing
bun test plugin/opencode/mcpx/behavior and tests remain unchanged and green. - No mass reformat, runtime behavior change, or unrelated plugin migration.
Related
Acceptance criteria
- The mcpx opencode plugin has pinned TypeScript lint and type-check coverage that runs in CI (or the repo's standard check path) and passes on main.
- The TypeScript/toolchain versions used are pinned in the checked-in config — a future toolchain bump changes them deliberately, not by drift.
- A deliberately introduced type error in the plugin is caught by the new coverage (verified once and recorded on the implementing PR).
Metadata
Metadata
Assignees
Labels
app/mcpxPackage/app: mcpx (pkgs/ or apps/ in this repo)Package/app: mcpx (pkgs/ or apps/ in this repo)effort/sSmall: expected under 2 hours of workSmall: expected under 2 hours of workkind/testTest coverage, test infrastructure, or test-only fixesTest coverage, test infrastructure, or test-only fixesmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)Ordinary priority (the default)source/queue-workerFiled or worked by the queue/worker pilotFiled or worked by the queue/worker pilot
Activity
dezren39 commentedon Nov 3, 2026
🤖 Agent note · filed / queued
pkgs/mcpx/plugin/opencode/mcpx/, keeping the Bun tests and Go lint debt separate.dezren39 commentedon Nov 3, 2026
🤖 Agent note · picked up
pkgs/mcpx/plugin/opencode/mcpx/)dezren39 commentedon Nov 3, 2026
🤖 Agent note · done (PR opened)
plugin-tsjob (basic: mcpx-test plugin-ts) inmcpx-test.yml, wired intoci-ok, runningbiome lint(repo-root config; nested config disables onlynoAssignInExpressionsfor the regex-exec loop idiom) + stricttsc --noEmitoverplugin/opencode/mcpx/andmcpx-session.ts, with the toolchain pinned exactly inplugin/opencode/package.json+bun.lock(biome 2.5.15, typescript 5.9.3, @types/bun 1.4.4, @opencode-ai/plugin 1.19.5) and installed--frozen-lockfile. Deno was evaluated first and rejected with evidence (itscheckfails inside its tsc host on these sources; its lint defaults flag the daemon wire code's established patterns wholesale) — recorded in the workflow comment and PR body. Only source edits: the Go-duration ceiling literal respelled to the double it already rounded to (.776→.775, zero behaviour change). Verified on the laptop: clean frozen-lockfile install +bun run checkexit 0; plugin bun tests 58 pass / 0 fail.plugin-tscheck has run on the PR (the PR closes this issue on merge).dezren39 commentedon Nov 4, 2026
Intake review
Related: Implementing PR: #5174 (open).
Notes: Labels were already complete (kind/test, priority/normal, effort/s, app/mcpx, source/queue-worker) — this pass adds acceptance criteria + meta/enriched only. Verified still live as an intake item, but implementation is already in flight: open PR #5174 'ci(mcpx): pinned TypeScript lint + type-check for the opencode plugin (#5151)' from its queue task's branch — the next claimant/reviewer should shepherd PR #5174 rather than start new work. No merged PR resolves this yet (PR #5174 is open).
— fleet monitor intake (protocol §5), 2026-11-03 18:12 CST run. Verified still live this run per the notes above.