Skip to content

Integration batch T (#1417) - #1468

Merged
Juliusolsson05 merged 26 commits into
mainfrom
integration/batch-2026-09-27-t
Sep 27, 2026
Merged

Juliusolsson05 merged 26 commits into
mainfrom
integration/batch-2026-09-27-t

Conversation

@Juliusolsson05

@Juliusolsson05 Juliusolsson05 commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

Integration batch T (owner-approved merge mode, owner-requested history form). The branch was created from origin/main a70403e (batch S); the member PR was retargeted here and merged through GitHub.

The member had GATE PASS (--member) and was manager-verified (both B6 pins: the cache-key inode, the paste-journal retry order). Its main-merge resolution keeps W4's ledger-loader rules (absent or unreadable means unknown). #1382 followed separately (a cch gitlink conflict with main). Merged after green exact-head CI and a recorded non-member gate PASS (see comments).

🤖 Generated with Claude Code

Juliusolsson05 and others added 26 commits September 27, 2026 05:08
…d the legacy ledger parse is cached (#1278)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
… search prompt cache via a shared LruMap (#1278)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…e and is never cached (steering q109)

A transient read failure (EACCES, EMFILE) returned an empty manual set, which
put every hand-saved legacy bundle in the deletable bucket; the identity cache
then kept that empty set after access recovered. Now a failed stat/read is
'unknown': not cached, and every legacy bundle is protected for that prune.
Only ENOENT means no ledger. The identity key adds inode and ctime, so a
rename-replace or a same-size edit with the mtime set back re-parses.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…runing (#1251 row 13)

Moved here from #1411 (manager q109: coordinate the overlap). Row 13 and
steering q109 both change loadManualLegacyBundlePaths, so they ship together.
A JSON-valid non-entry line (null, a number, a non-string bundlePath) threw,
which rejected collectArtifacts and stopped every prune pass. Rows are now
shape-checked; a non-string reason counts as manual, so the bundle is kept.
Adds a test through the real loader and cache: #1411 review (b) found that
replacing the loader's parse with an empty set survived the parser-only test.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…r appends after the evicted one (#1417 review b, c)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…lose keeps queued saves (#1417 review b)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…bound Codex rolloutPaths (#1417 review c)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…egacy bundle (#1417 review round 2)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…t are gone (#1417 review round 2)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…jects unhandled, never flushes as success (#1417 review round 2)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
# Conflicts:
#	src/main/storage/debugRetention.test.ts
…e-parsed (#1417 manager verification)

Removing the inode from the cache key passed every test: a real rename moves
ctime, so no portable filesystem sequence isolates it. stat() is controlled
for the ledger path only (size, mtime, ctime equal; the inode differs); the
content is real. The no-inode mutant is red.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…while it wrote (#1417 manager verification)

Re-queueing a failed batch at the back passed every test. A held write that
fails, with a line appended during it, must land first/second in order; the
back-requeue mutant is red.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
# Conflicts:
#	src/main/conversations/sources/codex.system.test.ts
…loader (#1417 manager verify)

Comment-only. The comment still said the loader "rightly" answers ENOENT
with "no ledger"; since round 2 an absent ledger is 'unknown', and the
second stat now guards a ledger replaced or edited mid-read.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Real conflict: batch Q's #1434 and this PR both changed codex.ts's imports
(#1434 adds ConversationPromptsUnreadable and friends from ./types.js, this
PR adds LruMap). Both kept.

Semantic conflict: #1434's promptsUnreadable.system.test.ts reads the
private rolloutPaths as a Map (.has/.get), which this PR bounded as an
LruMap. The two Codex tests now read it with peek(), which does not touch
recency, so the lookup cannot change what the source evicts next.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Real conflict with #1388 in debugRetention.ts, both sides kept:
- imports: this PR's rmdir/sep (parent sweep) + #1388's writeFile/relative
  (key-log baseline);
- collectArtifacts: this PR's cachedManualLegacyBundlePaths() stays the one
  ledger read (q118: absent or unreadable ledger = 'unknown', every legacy
  bundle protected, never cached), and #1388's keyLogOnlyBaseline capture
  is added after it. #1388 already calls this PR's loader; it keeps no loader
  of its own.

tsc -b 0 lines; storage, conversations, paste, window, lruMap and
performance suites 413/413.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
fix: bound the small unbounded-growth items from the C6 hunt (#1278)
@Juliusolsson05 Juliusolsson05 added the type:chore Maintenance, deps, tests, docs label Sep 27, 2026
@Juliusolsson05

Copy link
Copy Markdown
Owner Author

Batch disposition (B6): #1417 6cd622f, manager-verified; residuals are in its body (emptied ledger, EACCES summary survivor, declined survivors, the a1 cost). It merges when exact-head CI is green, the body is in past tense and a non-member gate PASS is recorded.

@Juliusolsson05

Copy link
Copy Markdown
Owner Author

Pre-merge gate record: merge-gate.sh agent-code 1468 --dry → GATE PASS #1468 (408eca9, 0 behind main, checks green, reviews OK). The body is in past tense; the closing ref is #1278. Merging.

@Juliusolsson05
Juliusolsson05 marked this pull request as ready for review September 27, 2026 22:47
@Juliusolsson05
Juliusolsson05 merged commit b5e949d into main Sep 27, 2026
2 checks passed
@Juliusolsson05
Juliusolsson05 deleted the integration/batch-2026-09-27-t branch September 27, 2026 22:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:chore Maintenance, deps, tests, docs

Projects

None yet

1 participant