Skip to content

fix(tests): master's CI test job is green again: locale-free clock text, decision tests that start no git process behind a guard that fails before any process starts, dated version folders, platform-pinned openFiles, color-free dry-run log - #560

Merged
genesiscz merged 6 commits into
masterfrom
fix/2026-10-23-master-ci-shard5
Oct 23, 2026

Conversation

@genesiscz

Copy link
Copy Markdown
Owner

Master's CI test job fails on its own (run 39253069643 at cc0ec45), and every PR that runs it inherits the failure (#554, #558). 26 failing tests, four causes. All fixes change tests or test helpers only: no production code, no loosened assertion, no raised timeout.

1. ClaudeSessionFormatter clock tests (4). The clock text depends on the locale: the runner's LANG=C.UTF-8 prints 10:00:00 AM, the test expected a 24-hour clock. The test now builds its expected text with formatDateTime. Reproduced and proven in a Linux container (oven/bun:1.4.2, UTC, CI=true).

2. Decision store, inbox and drafts tests hanging at 20 s (18). Bun 1.4.2 under --parallel on Linux sometimes loses a child process's exit (oven-sh/bun#43697), after which every later test of the file times out and the suite never finishes. A decision post starts git eight times (about 400 starts in the store tests). The new src/utils/test/no-git.ts answers git with "not a repository" without starting a process; a guard test proves a post starts no process. The same class was fixed for the pending-form tests in #523. Not reproduced locally (8 parallel loops passed in the container); the cause is inferred from six hung CI logs, each first timeout inside a post. The repository-context tests use fixture folders that do not exist, so real git already answered "not a repository" there.

3. app-bloat old cursor-agent version (1). Both version folders got the same mtime, and directory order kept the wrong one. The test now dates the old folder 30 days back. Proven in the container.

4. openFiles timeout test and runPreset dry run (2). On Linux openFiles reads /proc and never starts lsof, so the test now pins the darwin path. picocolors colors output whenever CI is set, so the dry-run test strips color codes. Proven in the container and with CI=true on macOS.

Verify: CI=true bun scripts/test.ts <the 7 changed test files>: 285 pass, 0 fail. tsgo --noEmit clean.

Left out on purpose: the analyzer itself still breaks an mtime tie by directory order on real machines, and the store tests on macOS still read the live cmux; both are separate fixes.

…he system locale, because the UTC runner with LANG=C.UTF-8 prints 10:00:00 AM
…because two folders made in one test share an mtime on Linux and directory order chose the one kept
…odes, because picocolors colors its output whenever CI is set
…nux reads /proc since the process layer moved it there and never reached the mocked spawn
…t process, because bun 1.4.2 loses a child's exit under bun test --parallel and the hung post timed out every later test until the CI budget ran out
@eve-bot-lovinka

eve-bot-lovinka Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

🐉 eve review — ✅ APPROVE · 0 findings

→ review · run

  • Queued 00:40:51Z
  • Reading diff — 2 files
  • Building repo map
  • Analyzing (find → verify) — 0 candidates → 0 survivors · reviewed by codex/gpt-6.1-sol
  • Posting review
  • Review posted 00:45:08Z (4m 17s)

run wrun_01M5K389FZGTYM8ZDY420C45QW

Previous runs (1)
run head outcome findings took
1 cd73b1b ✅ APPROVE 1 5m 16s

@coderabbitai

coderabbitai Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

Next included review available in 30 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 2 included reviews currently available. Your 55 included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
📥 Commits

Reviewing files that changed from the base of the PR and between cc0ec45 and c1f3269.

📒 Files selected for processing: 8
  • src/automate/lib/builtins.test.ts
  • src/doctor/__tests__/reclaim-analyzers.test.ts
  • src/question/lib/decisions/store.test.ts
  • src/question/lib/inbox/drafts.test.ts
  • src/question/lib/inbox/inbox.test.ts
  • src/utils/claude/ClaudeSessionFormatter.test.ts
  • src/utils/process/open-files.test.ts
  • src/utils/test/no-git.ts
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@eve-bot-lovinka eve-bot-lovinka Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🐉 eve review — 🟡 Review comments

cd73b1b · 1 actionable finding · reviewed by find codex/gpt-6.1-sol + codex/gpt-6-luna, verify codex/gpt-6-luna · view run ↗

Severity Count
🟡 Medium 1

Blast radius

  • isGit (+) → 1 dependent(s) outside this PR: src/indexer/lib/sources/file-source.ts
  • 4 compiler diagnostic(s) on the PR head touch this diff

ℹ️ Claims vs diff — Claim c1 'The PR changes tests or test helpers only; it makes no production-code changes, loosens n…' is not supported: The changed test files include only tests, but src/utils/test/no-git.ts is a new test helper; the summary cannot establish whether assertions or timeouts changed.
5 claims could not be checked from the diff (c2, c3, c4, c5, c6).

Comment thread src/question/lib/decisions/store.test.ts Outdated
…xpected start before a process exists, so a regression fails at once instead of hanging

@eve-bot-lovinka eve-bot-lovinka Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🐉 eve review — ✅ Approved

c1f3269 · 0 actionable findings · reviewed by codex/gpt-6.1-sol · view run ↗

Blast radius

  • answerGitWithoutSpawning (~) → 2 dependent(s) outside this PR: src/question/lib/inbox/drafts.test.ts, src/question/lib/inbox/inbox.test.ts
  • 4 compiler diagnostic(s) on the PR head touch this diff

@genesiscz genesiscz changed the title fix(tests): master's CI test job is green again: locale-free clock text, no git spawns in decision tests, dated version folders, platform-pinned openFiles, color-free dry-run log fix(tests): master's CI test job is green again: locale-free clock text, decision tests that start no git process behind a guard that fails before any process starts, dated version folders, platform-pinned openFiles, color-free dry-run log Oct 23, 2026
@genesiscz
genesiscz merged commit 97447df into master Oct 23, 2026
6 checks passed
@genesiscz
genesiscz deleted the fix/2026-10-23-master-ci-shard5 branch October 23, 2026 12:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant