chore: prepare release 20260817.03 #307
release.yml
on: push
Matrix: provider-integration / provider-tests
Workflow Security
11s
provider-integration
/
Provider E2E Scenarios
3m 56s
provider-integration
/
Cloud Sandbox Live E2E
7s
provider-integration
/
OpenAI Live E2E
14m 30s
provider-integration
/
Ollama Qwen Live E2E
16m 58s
Validate Tag Format
3s
Matrix: build-appimage
Matrix: build-arch
Matrix: build-deb
Matrix: build-docker
Matrix: build-homebrew-binaries
Matrix: build-rpm
Build Snap
0s
Build macOS app
0s
Build .exe (x86_64)
0s
Generate Release SBOM
0s
Update Homebrew tap
0s
Update deploy template tags
0s
Annotations
17 errors, 38 warnings, and 2 notices
|
provider-integration / moonshot
Process completed with exit code 101.
|
|
provider-integration / fireworks
Process completed with exit code 101.
|
|
provider-integration / OpenAI Live E2E
Process completed with exit code 1.
|
|
[openai-live] › e2e/specs/openai-live.spec.js:18:2 › Live OpenAI provider › existing env can complete a real OpenAI chat turn:
crates/web/ui/e2e/specs/openai-live.spec.js#L46
1) [openai-live] › e2e/specs/openai-live.spec.js:18:2 › Live OpenAI provider › existing env can complete a real OpenAI chat turn
Error: expect(received).toContain(expected) // indexOf
Expected substring: "OPENAI_LIVE_E2E_OK"
Received string: "page-error:⚠️ErrorInvalid schema for function 'connectors': In context=(), 'oneOf' is not permitted.Provider: openai"
Call Log:
- Test timeout of 120000ms exceeded
44 | expect(String(sendResponse.payload?.runId || "")).not.toBe("");
45 |
> 46 | await expect
| ^
47 | .poll(
48 | async () => {
49 | const historyResponse = await sendRpcFromPage(page, "chat.history", { sessionKey: "main" });
at /home/runner/work/moltis/moltis/crates/web/ui/e2e/specs/openai-live.spec.js:46:3
|
|
provider-integration / Integration Summary
Process completed with exit code 1.
|
|
provider-integration / Integration Summary
OPENAI_LIVE_RESULT was failure
|
|
provider-integration / Integration Summary
PROVIDER_TESTS_RESULT was failure
|
|
E2E Tests
Process completed with exit code 1.
|
|
[default] › e2e/specs/sessions.spec.js:1142:2 › Session management › cron session shows archive and delete buttons in more controls:
crates/web/ui/e2e/specs/sessions.spec.js#L1198
6) [default] › e2e/specs/sessions.spec.js:1142:2 › Session management › cron session shows archive and delete buttons in more controls
Error: expect(received).toBe(expected) // Object.is equality
Expected: 0
Received: 1
Call Log:
- Timeout 15000ms exceeded while waiting on the predicate
1196 | // stalling the store update. Poll the store directly and force
1197 | // a refresh if the session lingers.
> 1198 | await expect
| ^
1199 | .poll(
1200 | () =>
1201 | page.evaluate(async (key) => {
at /home/runner/work/moltis/moltis/crates/web/ui/e2e/specs/sessions.spec.js:1198:3
|
|
[default] › e2e/specs/sessions.spec.js:932:2 › Session management › deleting unmodified fork skips confirmation dialog:
crates/web/ui/e2e/specs/sessions.spec.js#L959
5) [default] › e2e/specs/sessions.spec.js:932:2 › Session management › deleting unmodified fork skips confirmation dialog
Error: expect(received).not.toBe(expected) // Object.is equality
Expected: not "http://127.0.0.1:43757/chats/session/08d1560e-df9e-45a1-9fda-01efb4058322"
Call Log:
- Timeout 10000ms exceeded while waiting on the predicate
957 | // switchSession uses history.replaceState (no navigation event),
958 | // so poll the URL rather than using waitForURL which waits for "load".
> 959 | await expect.poll(() => page.url(), { timeout: 10_000 }).not.toBe(forkSessionUrl);
| ^
960 |
961 | expect(pageErrors).toEqual([]);
962 | });
at /home/runner/work/moltis/moltis/crates/web/ui/e2e/specs/sessions.spec.js:959:3
|
|
[default] › e2e/specs/sessions.spec.js:866:2 › Session management › session search filters the list:
crates/web/ui/e2e/specs/sessions.spec.js#L885
4) [default] › e2e/specs/sessions.spec.js:866:2 › Session management › session search filters the list
Error: expect(received).toBeLessThanOrEqual(expected)
Expected: <= 30
Received: 37
883 |
884 | const countAfter = await page.locator("#sessionList .session-item").count();
> 885 | expect(countAfter).toBeLessThanOrEqual(countBefore);
| ^
886 |
887 | // Clear search restores list
888 | await searchInput.fill("");
at /home/runner/work/moltis/moltis/crates/web/ui/e2e/specs/sessions.spec.js:885:23
|
|
[default] › e2e/specs/sessions.spec.js:530:2 › Session management › main session can be deleted and comes back empty:
crates/web/ui/e2e/specs/sessions.spec.js#L548
3) [default] › e2e/specs/sessions.spec.js:530:2 › Session management › main session can be deleted and comes back empty
Error: expect(received).not.toMatch(expected)
Expected pattern: not /\/chats\/main$/
Received string: "http://127.0.0.1:43757/chats/main"
Call Log:
- Timeout 10000ms exceeded while waiting on the predicate
546 | // An empty main deletes without the confirmation dialog and hands the
547 | // view to another session.
> 548 | await expect.poll(() => page.url(), { timeout: 10_000 }).not.toMatch(/\/chats\/main$/);
| ^
549 | await expect(mainItem).toHaveCount(0);
550 | await expect
551 | .poll(async () => {
at /home/runner/work/moltis/moltis/crates/web/ui/e2e/specs/sessions.spec.js:548:3
|
|
[default] › e2e/specs/sessions.spec.js:82:2 › Session management › session list distinguishes date buckets and refreshes after midnight:
crates/web/ui/e2e/specs/sessions.spec.js#L101
2) [default] › e2e/specs/sessions.spec.js:82:2 › Session management › session list distinguishes date buckets and refreshes after midnight
Error: expect(locator).toBeVisible() failed
Locator: locator('#sessionList .session-item[data-session-key="main"]')
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 10000ms
- waiting for locator('#sessionList .session-item[data-session-key="main"]')
99 | const pageErrors = await navigateAndWait(page, "/");
100 | await waitForWsConnected(page);
> 101 | await expect(page.locator('#sessionList .session-item[data-session-key="main"]')).toBeVisible();
| ^
102 | await page.clock.pauseAt(new Date(2026, 6, 23, 23, 59, 59, 500));
103 |
104 | const expected = await page.evaluate(() => {
at /home/runner/work/moltis/moltis/crates/web/ui/e2e/specs/sessions.spec.js:101:85
|
|
[default] › e2e/specs/pwa-push.spec.js:1001:2 › push settings › worker revocation marker overrides stale page enabled intent:
crates/web/ui/e2e/specs/pwa-push.spec.js#L1019
1) [default] › e2e/specs/pwa-push.spec.js:1001:2 › push settings › worker revocation marker overrides stale page enabled intent
Error: expect(received).toBe(expected) // Object.is equality
Expected: 1
Received: 0
Call Log:
- Timeout 10000ms exceeded while waiting on the predicate
1017 |
1018 | await page.reload();
> 1019 | await expect.poll(() => page.evaluate(() => window.__moltisPushHarness.unsubscribeCount)).toBe(1);
| ^
1020 | expect(requests).toEqual([]);
1021 | });
1022 |
at /home/runner/work/moltis/moltis/crates/web/ui/e2e/specs/pwa-push.spec.js:1019:3
|
|
Release Gates
Process completed with exit code 1.
|
|
Release Gates
PROVIDER_RESULT was failure
|
|
Release Gates
E2E_RESULT was failure
|
|
provider-integration / Cloud Sandbox Live E2E
No usable cloud sandbox secrets are configured, skipping live cloud sandbox E2E
|
|
Biome
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Biome
Unexpected input(s) 'package-manager-cache', valid inputs are ['always-auth', 'node-version', 'node-version-file', 'architecture', 'check-latest', 'registry-url', 'scope', 'token', 'cache', 'cache-dependency-path', 'mirror', 'mirror-token']
|
|
lint/suspicious/noShadow:
crates/web/ui/e2e/specs/chat-input.spec.js#L24
This variable shadows another variable with the same name in the outer scope.
|
|
lint/suspicious/noShadow:
crates/web/ui/e2e/specs/chat-input.spec.js#L24
This variable shadows another variable with the same name in the outer scope.
|
|
lint/complexity/noExcessiveCognitiveComplexity:
crates/web/ui/e2e/specs/channels-slack.spec.js#L23
Excessive complexity of 26 detected (max: 15).
|
|
lint/complexity/noExcessiveCognitiveComplexity:
crates/web/ui/e2e/specs/auth.spec.js#L160
Excessive complexity of 16 detected (max: 15).
|
|
lint/complexity/noExcessiveCognitiveComplexity:
crates/web/ui/e2e/specs/auth.spec.js#L324
Excessive complexity of 25 detected (max: 15).
|
|
lint/complexity/noExcessiveCognitiveComplexity:
crates/web/ui/e2e/specs/auth.spec.js#L260
Excessive complexity of 16 detected (max: 15).
|
|
lint/complexity/noExcessiveCognitiveComplexity:
crates/web/ui/e2e/specs/agents.spec.js#L120
Excessive complexity of 27 detected (max: 15).
|
|
lint/complexity/noExcessiveCognitiveComplexity:
crates/web/ui/e2e/helpers.js#L85
Excessive complexity of 39 detected (max: 15).
|
|
lint/complexity/noExcessiveCognitiveComplexity:
crates/web/ui/e2e/base-test.js#L11
Excessive complexity of 16 detected (max: 15).
|
|
lint/suspicious/noEmptyBlockStatements:
crates/web/ui/e2e/base-test.js#L38
Unexpected empty block.
|
|
Biome
Unexpected input(s) 'package-manager-cache', valid inputs are ['always-auth', 'node-version', 'node-version-file', 'architecture', 'check-latest', 'registry-url', 'scope', 'token', 'cache', 'cache-dependency-path', 'mirror', 'mirror-token']
|
|
provider-integration / Provider E2E Scenarios
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: Swatinem/rust***cache@779680da715d629ac1d338a641029a2f4372abb5. For more information see: https://github.blog/changelog/2025***09***19***deprecation***of***node***20***on***github***actions***runners/
|
|
provider-integration / minimax
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
provider-integration / moonshot
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
provider-integration / fireworks
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
provider-integration / anthropic
anthropic live tests are temporarily ignored: configured account has insufficient credits.
|
|
provider-integration / OpenAI Live E2E
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830, actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020, actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02, Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
provider-integration / openai
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
provider-integration / nearai
Secret not configured — skipping tests
|
|
provider-integration / mistral
mistral live tests are temporarily ignored: configured account is currently rate limited by the provider.
|
|
provider-integration / openrouter
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
provider-integration / kimi-code
kimi-code live tests are temporarily ignored: configured account reports inactive membership/payment benefits.
|
|
provider-integration / Ollama Qwen Live E2E
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830, actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020, actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02, Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
provider-integration / Ollama Qwen Live E2E
Ollama Qwen live E2E is temporarily ignored: CI timed out waiting for a local model response after Ollama/model setup succeeded.
|
|
provider-integration / deepseek
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
provider-integration / gemini
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
provider-integration / zai
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
E2E Tests
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020, actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
E2E Tests
Unexpected input(s) 'package-manager-cache', valid inputs are ['always-auth', 'node-version', 'node-version-file', 'architecture', 'check-latest', 'registry-url', 'scope', 'token', 'cache', 'cache-dependency-path', 'mirror', 'mirror-token']
|
|
Clippy
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Clippy
Unexpected input(s) 'package-manager-cache', valid inputs are ['always-auth', 'node-version', 'node-version-file', 'architecture', 'check-latest', 'registry-url', 'scope', 'token', 'cache', 'cache-dependency-path', 'mirror', 'mirror-token']
|
|
Clippy
Unexpected input(s) 'package-manager-cache', valid inputs are ['always-auth', 'node-version', 'node-version-file', 'architecture', 'check-latest', 'registry-url', 'scope', 'token', 'cache', 'cache-dependency-path', 'mirror', 'mirror-token']
|
|
Test
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Test
Unexpected input(s) 'package-manager-cache', valid inputs are ['always-auth', 'node-version', 'node-version-file', 'architecture', 'check-latest', 'registry-url', 'scope', 'token', 'cache', 'cache-dependency-path', 'mirror', 'mirror-token']
|
|
Test
Unexpected input(s) 'package-manager-cache', valid inputs are ['always-auth', 'node-version', 'node-version-file', 'architecture', 'check-latest', 'registry-url', 'scope', 'token', 'cache', 'cache-dependency-path', 'mirror', 'mirror-token']
|
|
🎭 Playwright Run Summary
1 failed
[openai-live] › e2e/specs/openai-live.spec.js:18:2 › Live OpenAI provider › existing env can complete a real OpenAI chat turn
|
|
🎭 Playwright Run Summary
6 failed
[default] › e2e/specs/pwa-push.spec.js:1001:2 › push settings › worker revocation marker overrides stale page enabled intent
[default] › e2e/specs/sessions.spec.js:82:2 › Session management › session list distinguishes date buckets and refreshes after midnight
[default] › e2e/specs/sessions.spec.js:530:2 › Session management › main session can be deleted and comes back empty
[default] › e2e/specs/sessions.spec.js:866:2 › Session management › session search filters the list
[default] › e2e/specs/sessions.spec.js:932:2 › Session management › deleting unmodified fork skips confirmation dialog
[default] › e2e/specs/sessions.spec.js:1142:2 › Session management › cron session shows archive and delete buttons in more controls
20 skipped
492 passed (17.4m)
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
e2e-test-results-32000660231-1
Expired
|
59.1 MB |
sha256:9ab9146fcf55619e83a44d8da17d310158ab5232f48fbc04e5f56031f396b6b6
|
|
|
openai-live-e2e-32000660231-1
Expired
|
71.7 MB |
sha256:49e7a2e67e9615302a2358b75da8e4a121ba8899b604379b946f5fd02bdb68e4
|
|