Skip to content

feat(release): automate npm publishing and release workflow #1

feat(release): automate npm publishing and release workflow

feat(release): automate npm publishing and release workflow #1

Triggered via push February 11, 2026 13:21
Status Failure
Total duration 59s
Artifacts

publish.yml

on: push
Fit to window
Zoom out
Zoom in

Annotations

7 errors
release
Process completed with exit code 1.
error: expect(received).toHaveLength(expected): tests/lib/job-state.test.ts#L368
Expected length: 0 Received length: 1 at <anonymous> (/home/runner/work/opencode-mission-control/opencode-mission-control/tests/lib/job-state.test.ts:368:23)
error:: tests/lib/job-state.test.ts#L202
Expected promise Received: undefined at <anonymous> (/home/runner/work/opencode-mission-control/opencode-mission-control/tests/lib/job-state.test.ts:202:79)
error: expect(received).toBe(expected): tests/lib/job-state.test.ts#L195
Expected: "completed" Received: "running" at <anonymous> (/home/runner/work/opencode-mission-control/opencode-mission-control/tests/lib/job-state.test.ts:195:31)
error: expect(received).toBe(expected): tests/lib/integration.test.ts#L205
Expected: true Received: false at <anonymous> (/home/runner/work/opencode-mission-control/opencode-mission-control/tests/lib/integration.test.ts:205:30)
error: bun test v1.3.9 (cf6cdbbb): tests/integration/orchestration.test.ts#L53
::group::tests/integration/orchestration.test.ts: creating_pr (plan: Full orchestration plan) (pass) orchestration integration > runs full orchestration flow from parallel jobs to PR [5414.96ms] 175 | } 176 | await new Promise((resolve) => setTimeout(resolve, 25)); 177 | } 178 | const plan = await loadPlan(); 179 | const statuses = plan?.jobs.map((job) => `${job.id}:${job.status}`).join(', ') ?? 'no-plan'; 180 | throw new Error(`Condition not met within ${timeoutMs}ms (plan=${plan?.status ?? 'none'} jobs=${statuses})`); ^ error: Condition not met within 5000ms (plan=running jobs=job-1:merging, job-2:running) at waitForCondition (/home/runner/work/opencode-mission-control/opencode-mission-control/tests/integration/orchestration.test.ts:180:13) at async <anonymous> (/home/runner/work/opencode-mission-control/opencode-mission-control/tests/integration/orchestration.test.ts:494:11) ::error file=tests/integration/orchestration.test.ts,line=180,col=13,title=error: Condition not met within 5000ms (plan=running jobs=job-1:merging, job-2:running):: at waitForCondition (/home/runner/work/opencode-mission-control/opencode-mission-control/tests/integration/orchestration.test.ts:180:13) at async <anonymous> (/home/runner/work/opencode-mission-control/opencode-mission-control/tests/integration/orchestration.test.ts:494:11) (fail) orchestration integration > marks plan failed when a merge conflict occurs and leaves integration clean [5257.98ms] Orchestrator reconcile error: 77 | ): Promise<void> { 78 | await planMutex.withLock(async () => { 79 | const plan = await loadPlan(); 80 | 81 | if (!plan) { 82 | throw new Error('No active plan exists'); ^ error: No active plan exists at <anonymous> (/home/runner/work/opencode-mission-control/opencode-mission-control/src/lib/plan-state.ts:82:17) at async withLock (/home/runner/work/opencode-mission-control/opencode-mission-control/src/lib/git-mutex.ts:28:20) at async updatePlanJob (/home/runner/work/opencode-mission-control/opencode-mission-control/src/lib/plan-state.ts:78:19) at async reconcile (/home/runner/work/opencode-mission-control/opencode-mission-control/src/lib/orchestrator.ts:536:17) creating_pr (plan: Resume plan) (pass) orchestration integration > resumes a persisted plan after orchestrator restart [353.00ms] creating_pr (plan: Dependency plan) (pass) orchestration integration > enforces dependencies so dependent jobs wait for merged prerequisites [5256.98ms] ::endgroup:: 3 pass 1 fail 23 expect() calls Ran 4 tests across 1 file. [16.32s] at <anonymous> (/home/runner/work/opencode-mission-control/opencode-mission-control/tests/integration/orchestration.test.ts:53:82)
error: Condition not met within 5000ms (plan=running jobs=job-1:merging: tests/integration/orchestration.test.ts#L180
at waitForCondition (/home/runner/work/opencode-mission-control/opencode-mission-control/tests/integration/orchestration.test.ts:180:13) at async <anonymous> (/home/runner/work/opencode-mission-control/opencode-mission-control/tests/integration/orchestration.test.ts:494:11)