Clarify basic projection budget logging

This commit is contained in:
Robin Newhouse
2026-06-26 19:04:04 -07:00
parent 59a392bd78
commit b3bc189e02
@@ -397,6 +397,9 @@ export function runBasicCompaction(options: {
policyIntent: "basic_compaction_projection",
estimateMessageTokens: options.estimateMessageTokens,
});
// This final projection owns the hard output budget. Unlike the earlier
// basic candidate passes, it may drop the original first-user message when
// preserving the latest typed prompt and coherent tool closures requires it.
if (budgeted.status === "failed") {
options.logger?.debug("Basic compaction returned best-effort projection", {
budgetWarnings: budgeted.warnings.map((warning) => warning.code),
@@ -428,6 +431,7 @@ export function runBasicCompaction(options: {
messagesRemoved: options.context.messages.length - resultMessages.length,
tokensBefore: beforeTokens,
tokensAfter: afterTokens,
budgetStatus: budgeted.status,
budgetActions: budgeted.actions.length,
budgetWarnings: budgeted.warnings.map((warning) => warning.code),
targetTokens,