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

lsm / HyperNeo / 31982860859 / 32
79%
dev: 79%

Build:
DEFAULT BRANCH: dev
Ran 17 Aug 2026 12:49AM UTC
Files 220
Run time 8s
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 Aug 2026 09:39PM UTC coverage: 31.4% (-0.001%) from 31.401%
31982860859.32

push

github

web-flow
fix(daemon): stop SDK transcript purges + un-wedge sdk_resume_choice sessions (#2547)

* fix(daemon): pin SDK transcript retention for every spawned session

The SDK/Claude CLI purges chat transcripts idle > cleanupPeriodDays
(default 30) at startup, scanning all of ~/.claude/projects. HyperNeo
keeps sessions active/resumable indefinitely in its DB, so a swept
transcript wedges the session's delivery queue on sdk_resume_choice
with no path to recovery.

Pin cleanupPeriodDays (3650) via the inline `settings` flag-settings
layer for every session the daemon spawns, across all providers. That
layer overrides on-disk user/project settings, so retention is owned
solely by HyperNeo (session archive moves transcripts to
claude-session-archives); the SDK documents a large value as the
sanctioned way to opt out of cleanup.

* fix(daemon): treat bun:sqlite null row as no unresolved action card

bun:sqlite `.get()` returns null (not undefined) for no rows, so
hasUnresolvedHyperNeoAction's `row !== undefined` check inverted its
polarity: no card read as "an unresolved card exists". The
emitSdkResumeChoiceMessage dedupe then suppressed the resume-choice
card entirely, so a session whose SDK transcript was purged parked on
sdk_resume_choice forever with no card to answer (and isWaitingForInput
kept steers from ever burning their park budget).

Use the null-safe comparison already used by isHandleTaken/isNameTaken,
with regression tests against a real bun:sqlite table (verified to fail
on the old comparison).

* fix(daemon): apply transcript retention to every direct SDK launch

Codex review (PR #2547): the retention pin only covered queries built
through QueryOptionsBuilder, but the daemon also spawns SDK subprocesses
directly — title generation, workflow selection, model discovery,
GitHub router/security agents, and the evolution services. Cleanup runs
at subprocess startup and scans all of ~/.claude/projects, so any of
those routine paths could still purge a long... (continued)

6822 of 24936 branches covered (27.36%)

Branch coverage included in aggregate %.

10622 of 30618 relevant lines covered (34.69%)

773.89 hits per line

Source Files on job daemon-5-space-runtime-b - 31982860859.32
  • Tree
  • List 220
  • Changed 4
  • Source Changed 4
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 31982860859
  • 17188600 on github
  • Prev Job for on dev (#31966757047.19)
  • Next Job for on dev (#31984369412.22)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc