• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

lsm / neokai / 27590172818
82%

Build:
DEFAULT BRANCH: dev
Ran 16 Jun 2026 02:34AM UTC
Jobs 28
Files 604
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

16 Jun 2026 02:33AM UTC coverage: 81.62% (+0.07%) from 81.554%
27590172818

push

github

web-flow
fix: add DatabaseCredentialStore fallback when macOS Keychain unavailable (#2112)

* fix: add DatabaseCredentialStore fallback when macOS Keychain unavailable

When the daemon runs without GUI session access (SSH, CI, background launch,
locked keychain), `security` exits with code 36 (`errSecInteractionNotAllowed`).
Previously this crashed every provider credential load, marked providers
unhealthy, and spammed logs with stack traces — task sessions saw
"Not logged in" even when env var fallback would have worked.

Changes:
- KeychainCredentialStore: detect exit code 36 / "User interaction is not
  allowed" stderr and treat as "item not found" (return null) instead of
  throwing. `set()` swallows code 36 so callers can fall through.
- FallbackCredentialStore: new wrapper that tries the Keychain first and falls
  back to DatabaseCredentialStore on throw or missing item. `getStatus()`
  surfaces whether the primary is available.
- createCredentialStore() on darwin production now wraps Keychain in
  FallbackCredentialStore. Keychain remains the preferred primary.
- app.ts: skip marking provider unhealthy + skip stack-trace log on code 36
  (FallbackCredentialStore already returned null, so credentials load via
  env/settings fallback as before).
- Surface keychain-unavailable status through SystemState.credentialStore so
  the UI can warn the user. ProvidersSettings renders a yellow banner with
  the warning and the `security unlock-keychain` hint.

Tests:
- credential-store.test.ts: FallbackCredentialStore fallback, warn-once,
  listServices merge, delete best-effort, createCredentialStore wiring.
- credential-store-keychain.test.ts: KeychainCredentialStore exit-code-36
  handling via mocked `node:child_process` (uses dynamic import after
  mock.module registration so the live binding picks up the mock).

* fix: address review — throw on code 36 so fallback catches correctly

Addresses P0/P1/P2/P3 from PR #2112 review.

P0 — `KeychainCredentialStore.set(... (continued)

10489 of 15329 branches covered (68.43%)

Branch coverage included in aggregate %.

189 of 202 new or added lines in 10 files covered. (93.56%)

7 existing lines in 3 files now uncovered.

90044 of 107843 relevant lines covered (83.5%)

289.15 hits per line

Uncovered Changes

Lines Coverage ∆ File
10
70.94
-0.85% packages/daemon/src/app.ts
2
97.93
-0.71% packages/daemon/src/lib/rpc-handlers/auth-handlers.ts
1
43.43
0.0% packages/web/src/lib/api-helpers.ts

Coverage Regressions

Lines Coverage ∆ File
5
82.61
-10.87% packages/daemon/src/lib/space/runtime/last-message-classifier.ts
1
70.94
-0.85% packages/daemon/src/app.ts
1
43.43
0.0% packages/web/src/lib/api-helpers.ts
Jobs
ID Job ID Ran Files Coverage
1 daemon-online-space-2 - 27590172818.1 16 Jun 2026 02:36AM UTC 351
31.41
GitHub Action Run
2 daemon-online-rpc-3 - 27590172818.2 16 Jun 2026 02:35AM UTC 351
19.08
GitHub Action Run
3 daemon-online-space-1 - 27590172818.3 16 Jun 2026 02:36AM UTC 351
32.57
GitHub Action Run
4 daemon-4-space-migrations-b - 27590172818.4 16 Jun 2026 02:35AM UTC 70
38.8
GitHub Action Run
5 daemon-online-features-1 - 27590172818.5 16 Jun 2026 02:35AM UTC 351
22.13
GitHub Action Run
6 daemon-online-coordinator - 27590172818.6 16 Jun 2026 02:34AM UTC 340
7.66
GitHub Action Run
7 daemon-5-space-agent-other - 27590172818.7 16 Jun 2026 02:35AM UTC 276
26.15
GitHub Action Run
8 daemon-online-rpc-4 - 27590172818.8 16 Jun 2026 02:35AM UTC 351
22.31
GitHub Action Run
9 daemon-online-agent-sdk - 27590172818.9 16 Jun 2026 02:35AM UTC 351
21.45
GitHub Action Run
10 daemon-5-space-runtime-a - 27590172818.10 16 Jun 2026 02:34AM UTC 122
39.91
GitHub Action Run
11 daemon-1-core - 27590172818.11 16 Jun 2026 02:35AM UTC 357
34.78
GitHub Action Run
12 daemon-online-git - 27590172818.12 16 Jun 2026 02:34AM UTC 351
18.45
GitHub Action Run
13 daemon-5-space-runtime-b - 27590172818.13 16 Jun 2026 02:34AM UTC 175
46.6
GitHub Action Run
14 daemon-online-features-2 - 27590172818.14 16 Jun 2026 02:34AM UTC 351
21.79
GitHub Action Run
15 daemon-online-convo - 27590172818.15 16 Jun 2026 02:35AM UTC 351
21.35
GitHub Action Run
16 daemon-online-rewind-1 - 27590172818.16 16 Jun 2026 02:35AM UTC 351
21.58
GitHub Action Run
17 web - 27590172818.17 16 Jun 2026 02:35AM UTC 243
73.72
GitHub Action Run
18 daemon-online-components - 27590172818.18 16 Jun 2026 02:34AM UTC 351
17.56
GitHub Action Run
19 daemon-online-websocket - 27590172818.19 16 Jun 2026 02:34AM UTC 351
17.66
GitHub Action Run
20 daemon-online-mcp - 27590172818.20 16 Jun 2026 02:34AM UTC 351
17.89
GitHub Action Run
21 daemon-online-rpc-2 - 27590172818.21 16 Jun 2026 02:35AM UTC 351
22.48
GitHub Action Run
22 daemon-0-shared-handlers-workflow - 27590172818.22 16 Jun 2026 02:34AM UTC 324
34.91
GitHub Action Run
23 daemon-4-space-migrations-a - 27590172818.23 16 Jun 2026 02:35AM UTC 50
53.78
GitHub Action Run
24 daemon-online-rewind-2 - 27590172818.24 16 Jun 2026 02:35AM UTC 351
21.98
GitHub Action Run
25 daemon-online-rpc-1 - 27590172818.25 16 Jun 2026 02:35AM UTC 351
18.73
GitHub Action Run
26 daemon-online-lifecycle - 27590172818.26 16 Jun 2026 02:35AM UTC 351
21.83
GitHub Action Run
27 daemon-4-space-storage - 27590172818.27 16 Jun 2026 02:34AM UTC 156
55.11
GitHub Action Run
28 daemon-online-sdk - 27590172818.28 16 Jun 2026 02:35AM UTC 351
21.45
GitHub Action Run
Source Files on build 27590172818
  • Tree
  • List 604
  • Changed 18
  • Source Changed 11
  • Coverage Changed 18
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #27590172818
  • 97f0070c on github
  • Prev Build on dev (#27565124947)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc