Conflict resolution rules applied:
- packages/cli/src/daily-cache.ts (the only textual conflict): kept the BASE
side of the version constants and their coordination comment verbatim
(DAILY_CACHE_VERSION / MIN_SUPPORTED_VERSION stay at 26 — this change moves
when the watermark advances, not what any cached day contains, so no
re-derive is owed). Kept the BASE widened re-derive window
(DAILY_CACHE_RETENTION_DAYS, with its straddle/tz comment) and layered this
branch's completeness logic on top of it: capture the parse result
(freshProjects) so sessionComplete() can read the tag off the exact array,
priorWatermark hold-back on a partial parse, complete: parseWasComplete, and
the watermarkTrusted stamp.
- packages/cli/src/parser.ts: auto-merged; #929's per-call slicing and #930's
discovery changes are intact, and this branch's read-only-path additions
(readOnlyServedStale on the stale/missing-cache-entry arms, network providers
served from cache instead of re-fetched, hydration completeness tagged onto
the result array) attach to the post-#929 code paths. Re-read end to end
after the merge.
- packages/cli/tests/cache-refresh-lock*.test.ts, vitest.config.ts,
package.json: kept the base config values (testTimeout 30s, retry 2, the
lock-quarantine test/test:locks scripts, #1068's inode fix, #921's retries)
and added this branch's corrupt-lock arms on top. The new describe's retry
is 3, not 6, per review. Added the new corrupt-body file to test:locks:
the base `test` script excludes tests/cache-refresh-lock*, so the new file
would otherwise run in no suite.
- Everything else auto-merged as a union; no hunk from either side dropped.
The packages/cli move (dc97ab49, Jul 26) forked vitest.config.ts and the test
script off main before three since-merged CI-stability fixes existed there,
and #921's later "port upstream fixes" pass (f3f5814b) missed all three since
it only cross-referenced one specific main commit:
- 30037b33: global vitest testTimeout raised from the 5s default to 30s
(real-I/O tests exceed 5s under CI runner load)
- 8c758ddf: file-level 30s timeout on cli-status-menubar.test.ts (spawns the
real CLI; individual cases observed needing 6-8s on a shared 2-core runner)
- 4ca2d482: cache-refresh-lock tests excluded from the parallel `test` run and
quarantined behind a serial `test:locks` script (they contend for the fork
pool with the spawned-subprocess tests and starve everyone under load)
None of this showed up until #923 wired `npm test --workspace=codeburn` into
CI for the first time, which then failed deterministically at the vitest
default 5000ms on exactly the three test categories these fixes cover.
Ports all three, matching main's current config/script.