Commit c149fe4
fix: gate preflight compaction on totalTokensFresh === true
The fresh-token branch in runPreflightCompactionIfNeeded ran when
shouldUseTranscriptFallback was false, but that predicate treated
totalTokensFresh: undefined as NOT needing fallback (undefined === false
evaluates to false). For legacy sessions where totalTokensFresh was
never set, this caused the fresh-token path to use potentially stale
persisted totals, triggering unnecessary compaction.
Three changes:
1. Replace shouldUseTranscriptFallback with hasFreshPersistedTokens
that requires totalTokensFresh === true explicitly. When undefined
(legacy) or false (known-stale), falls through to transcript
estimation.
2. In the transcript fallback branch, always run transcript estimation
instead of skipping when resolveFreshSessionTotalTokens returns a
value (that function also treats undefined freshness as fresh).
3. Add bail-out before shouldRunPreflightCompaction when transcript
estimation returns no count and freshness is unconfirmed, preventing
the gate function from falling back to stale totals via
resolveFreshSessionTotalTokens.
Resolves Codex P2 review on PR #66716.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>1 parent 86352d7 commit c149fe4
2 files changed
Lines changed: 70 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
518 | 518 | | |
519 | 519 | | |
520 | 520 | | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
521 | 563 | | |
522 | 564 | | |
523 | 565 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
390 | 390 | | |
391 | 391 | | |
392 | 392 | | |
393 | | - | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
394 | 398 | | |
395 | 399 | | |
396 | 400 | | |
| |||
404 | 408 | | |
405 | 409 | | |
406 | 410 | | |
407 | | - | |
408 | | - | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
409 | 414 | | |
410 | 415 | | |
411 | 416 | | |
412 | 417 | | |
413 | 418 | | |
414 | | - | |
| 419 | + | |
415 | 420 | | |
416 | 421 | | |
417 | 422 | | |
| |||
425 | 430 | | |
426 | 431 | | |
427 | 432 | | |
428 | | - | |
429 | | - | |
430 | | - | |
431 | | - | |
432 | | - | |
433 | | - | |
434 | | - | |
435 | | - | |
436 | | - | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
437 | 443 | | |
438 | 444 | | |
439 | 445 | | |
| |||
457 | 463 | | |
458 | 464 | | |
459 | 465 | | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
460 | 475 | | |
461 | 476 | | |
462 | 477 | | |
| |||
0 commit comments