@kenkaiiii/ggcoder 5.29.1 → 5.30.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/dist/app-sidecar-auth-broadcast.test.js +14 -3
  2. package/dist/app-sidecar-auth-broadcast.test.js.map +1 -1
  3. package/dist/app-sidecar.js +27 -20
  4. package/dist/app-sidecar.js.map +1 -1
  5. package/dist/cli/command-routing.d.ts +1 -1
  6. package/dist/cli/command-routing.d.ts.map +1 -1
  7. package/dist/cli/command-routing.js +1 -0
  8. package/dist/cli/command-routing.js.map +1 -1
  9. package/dist/cli/command-routing.test.js +1 -0
  10. package/dist/cli/command-routing.test.js.map +1 -1
  11. package/dist/cli.d.ts.map +1 -1
  12. package/dist/cli.js +167 -47
  13. package/dist/cli.js.map +1 -1
  14. package/dist/config.d.ts +2 -0
  15. package/dist/config.d.ts.map +1 -1
  16. package/dist/config.js +10 -0
  17. package/dist/config.js.map +1 -1
  18. package/dist/config.test.js +10 -1
  19. package/dist/config.test.js.map +1 -1
  20. package/dist/core/agent-session-compaction.test.js +252 -2
  21. package/dist/core/agent-session-compaction.test.js.map +1 -1
  22. package/dist/core/agent-session-crash-durability.test.js +9 -2
  23. package/dist/core/agent-session-crash-durability.test.js.map +1 -1
  24. package/dist/core/agent-session-process-gate.test.js +5 -1
  25. package/dist/core/agent-session-process-gate.test.js.map +1 -1
  26. package/dist/core/agent-session-review-coverage.test.js +5 -1
  27. package/dist/core/agent-session-review-coverage.test.js.map +1 -1
  28. package/dist/core/agent-session.d.ts +10 -3
  29. package/dist/core/agent-session.d.ts.map +1 -1
  30. package/dist/core/agent-session.js +277 -130
  31. package/dist/core/agent-session.js.map +1 -1
  32. package/dist/core/compaction/active-context.test.js +21 -0
  33. package/dist/core/compaction/active-context.test.js.map +1 -1
  34. package/dist/core/compaction/compactor.d.ts +27 -8
  35. package/dist/core/compaction/compactor.d.ts.map +1 -1
  36. package/dist/core/compaction/compactor.js +255 -101
  37. package/dist/core/compaction/compactor.js.map +1 -1
  38. package/dist/core/compaction/compactor.test.js +107 -8
  39. package/dist/core/compaction/compactor.test.js.map +1 -1
  40. package/dist/core/compaction/policy.d.ts +17 -0
  41. package/dist/core/compaction/policy.d.ts.map +1 -0
  42. package/dist/core/compaction/policy.js +22 -0
  43. package/dist/core/compaction/policy.js.map +1 -0
  44. package/dist/core/compaction/policy.test.d.ts +2 -0
  45. package/dist/core/compaction/policy.test.d.ts.map +1 -0
  46. package/dist/core/compaction/policy.test.js +35 -0
  47. package/dist/core/compaction/policy.test.js.map +1 -0
  48. package/dist/core/compaction/tool-result-pruner.d.ts +18 -11
  49. package/dist/core/compaction/tool-result-pruner.d.ts.map +1 -1
  50. package/dist/core/compaction/tool-result-pruner.js +72 -24
  51. package/dist/core/compaction/tool-result-pruner.js.map +1 -1
  52. package/dist/core/compaction/tool-result-pruner.test.js +109 -6
  53. package/dist/core/compaction/tool-result-pruner.test.js.map +1 -1
  54. package/dist/core/foreign-session-import.d.ts.map +1 -1
  55. package/dist/core/foreign-session-import.js +5 -1
  56. package/dist/core/foreign-session-import.js.map +1 -1
  57. package/dist/core/ideal-review.d.ts.map +1 -1
  58. package/dist/core/ideal-review.js +4 -0
  59. package/dist/core/ideal-review.js.map +1 -1
  60. package/dist/core/loop-breaker.d.ts.map +1 -1
  61. package/dist/core/loop-breaker.js +1 -0
  62. package/dist/core/loop-breaker.js.map +1 -1
  63. package/dist/core/process-gate.d.ts.map +1 -1
  64. package/dist/core/process-gate.js +9 -1
  65. package/dist/core/process-gate.js.map +1 -1
  66. package/dist/core/process-manager-notifications.test.js +4 -2
  67. package/dist/core/process-manager-notifications.test.js.map +1 -1
  68. package/dist/core/regrounding.d.ts.map +1 -1
  69. package/dist/core/regrounding.js +1 -0
  70. package/dist/core/regrounding.js.map +1 -1
  71. package/dist/core/session-compaction.d.ts +5 -0
  72. package/dist/core/session-compaction.d.ts.map +1 -1
  73. package/dist/core/session-compaction.js +10 -1
  74. package/dist/core/session-compaction.js.map +1 -1
  75. package/dist/core/session-compaction.test.js +16 -1
  76. package/dist/core/session-compaction.test.js.map +1 -1
  77. package/dist/core/session-export.d.ts.map +1 -1
  78. package/dist/core/session-export.js +11 -8
  79. package/dist/core/session-export.js.map +1 -1
  80. package/dist/core/session-history.d.ts +7 -2
  81. package/dist/core/session-history.d.ts.map +1 -1
  82. package/dist/core/session-history.js +52 -9
  83. package/dist/core/session-history.js.map +1 -1
  84. package/dist/core/session-history.test.js +26 -1
  85. package/dist/core/session-history.test.js.map +1 -1
  86. package/dist/core/session-manager.d.ts +106 -0
  87. package/dist/core/session-manager.d.ts.map +1 -1
  88. package/dist/core/session-manager.js +316 -15
  89. package/dist/core/session-manager.js.map +1 -1
  90. package/dist/core/session-manager.test.js +109 -1
  91. package/dist/core/session-manager.test.js.map +1 -1
  92. package/dist/core/session-notification-visibility.test.js +34 -0
  93. package/dist/core/session-notification-visibility.test.js.map +1 -1
  94. package/dist/core/session-preview.d.ts +2 -2
  95. package/dist/core/session-preview.d.ts.map +1 -1
  96. package/dist/core/session-preview.js +8 -5
  97. package/dist/core/session-preview.js.map +1 -1
  98. package/dist/core/session-restore-display.test.js +25 -0
  99. package/dist/core/session-restore-display.test.js.map +1 -1
  100. package/dist/core/session-storage.d.ts.map +1 -1
  101. package/dist/core/session-storage.js +39 -3
  102. package/dist/core/session-storage.js.map +1 -1
  103. package/dist/core/subagent-manager.d.ts.map +1 -1
  104. package/dist/core/subagent-manager.js +9 -1
  105. package/dist/core/subagent-manager.js.map +1 -1
  106. package/dist/core/subagent-manager.test.js +4 -3
  107. package/dist/core/subagent-manager.test.js.map +1 -1
  108. package/dist/interactive.d.ts.map +1 -1
  109. package/dist/interactive.js +17 -3
  110. package/dist/interactive.js.map +1 -1
  111. package/dist/modes/acp-mode.d.ts +82 -0
  112. package/dist/modes/acp-mode.d.ts.map +1 -0
  113. package/dist/modes/acp-mode.js +802 -0
  114. package/dist/modes/acp-mode.js.map +1 -0
  115. package/dist/modes/acp-mode.test.d.ts +2 -0
  116. package/dist/modes/acp-mode.test.d.ts.map +1 -0
  117. package/dist/modes/acp-mode.test.js +611 -0
  118. package/dist/modes/acp-mode.test.js.map +1 -0
  119. package/dist/modes/index.d.ts +1 -0
  120. package/dist/modes/index.d.ts.map +1 -1
  121. package/dist/modes/index.js +1 -0
  122. package/dist/modes/index.js.map +1 -1
  123. package/dist/session.d.ts +24 -0
  124. package/dist/session.d.ts.map +1 -1
  125. package/dist/session.js +32 -0
  126. package/dist/session.js.map +1 -1
  127. package/dist/tools/web-fetch.d.ts +1 -1
  128. package/dist/types.d.ts +7 -0
  129. package/dist/types.d.ts.map +1 -1
  130. package/package.json +4 -4
@@ -229,6 +229,11 @@ function truncateString(text, maxChars) {
229
229
  export const HISTORICAL_TOOL_ARG_MAX_CHARS = 8_000;
230
230
  function compactHistoricalToolArg(value) {
231
231
  if (typeof value === "string") {
232
+ // Already-compacted arguments can survive several later compactions. Do not
233
+ // shave another chunk off the retained prefix on every pass.
234
+ if (/\n\n\[\.\.\. \d+ more characters truncated\]$/.test(value)) {
235
+ return { value, changed: false };
236
+ }
232
237
  const compacted = truncateString(value, HISTORICAL_TOOL_ARG_MAX_CHARS);
233
238
  return { value: compacted, changed: compacted !== value };
234
239
  }
@@ -253,16 +258,17 @@ function compactHistoricalToolArg(value) {
253
258
  return { value, changed: false };
254
259
  }
255
260
  /**
256
- * Clone recent assistant tool-call messages and cap large historical arguments.
261
+ * Clone assistant tool-call messages and cap large completed arguments.
257
262
  * IDs, tool names, and short arguments remain byte-for-byte unchanged.
263
+ * `shouldCompact` lets the live pruner preserve the newest provider batches.
258
264
  */
259
- export function compactHistoricalToolCallArgs(messages) {
265
+ export function compactHistoricalToolCallArgs(messages, shouldCompact = () => true) {
260
266
  return messages.map((message) => {
261
267
  if (message.role !== "assistant" || !Array.isArray(message.content))
262
268
  return message;
263
269
  let messageChanged = false;
264
270
  const content = message.content.map((part) => {
265
- if (part.type !== "tool_call")
271
+ if (part.type !== "tool_call" || !shouldCompact(part.id))
266
272
  return part;
267
273
  const toolCall = part;
268
274
  const result = compactHistoricalToolArg(toolCall.args);
@@ -405,14 +411,6 @@ function messageToString(msg) {
405
411
  }
406
412
  return "";
407
413
  }
408
- /**
409
- * Check whether a message is an assistant message that contains tool_call blocks.
410
- */
411
- function hasToolCalls(msg) {
412
- if (msg.role !== "assistant" || !Array.isArray(msg.content))
413
- return false;
414
- return msg.content.some((p) => p.type === "tool_call");
415
- }
416
414
  /**
417
415
  * Collect all tool_call IDs from an assistant message.
418
416
  */
@@ -489,29 +487,108 @@ function repairToolPairing(msgs) {
489
487
  }
490
488
  }
491
489
  }
490
+ const LEGACY_SUMMARY_PREFIX = "[Previous conversation summary]";
491
+ const OMITTED_RUNTIME_KINDS = new Set([
492
+ "completion_gate",
493
+ "review_follow_up",
494
+ "continuation",
495
+ "compaction_ack",
496
+ ]);
497
+ function summaryTextFromMessage(message) {
498
+ if (message.role !== "user" || typeof message.content !== "string")
499
+ return undefined;
500
+ if (message.provenance?.kind === "compaction_summary") {
501
+ return message.content.replace(/^\[Previous conversation summary\]\s*/u, "");
502
+ }
503
+ if (!message.provenance && message.content.startsWith(LEGACY_SUMMARY_PREFIX)) {
504
+ return message.content.slice(LEGACY_SUMMARY_PREFIX.length).trimStart();
505
+ }
506
+ return undefined;
507
+ }
508
+ export function findLatestPreviousSummary(messages) {
509
+ for (let index = messages.length - 1; index >= 0; index--) {
510
+ const text = summaryTextFromMessage(messages[index]);
511
+ if (text !== undefined)
512
+ return { index, text };
513
+ }
514
+ return undefined;
515
+ }
492
516
  /**
493
- * Select messages that fit within a token budget for the summary LLM call.
494
- * Walks forward from the start, accumulating messages until the budget is
495
- * exceeded. Ensures tool_use / tool_result pairs are never split: if the last
496
- * selected message is an assistant with tool_call blocks, it is removed so the
497
- * API never sees an orphaned tool_use without a matching tool_result.
517
+ * Convert provenance into explicit summarizer attribution and remove low-value
518
+ * runtime control traffic. Legacy messages remain available for old sessions.
519
+ */
520
+ export function classifyMessagesForSummary(messages) {
521
+ const classified = [];
522
+ for (const message of messages) {
523
+ const provenance = message.provenance;
524
+ if (provenance?.source === "runtime" && OMITTED_RUNTIME_KINDS.has(provenance.kind))
525
+ continue;
526
+ if (summaryTextFromMessage(message) !== undefined)
527
+ continue;
528
+ const prepared = prepareMessagesForSummary([message]);
529
+ for (const converted of prepared) {
530
+ if (converted.role === "system")
531
+ continue;
532
+ const content = messageToString(converted);
533
+ if (!content)
534
+ continue;
535
+ if (provenance?.source === "human") {
536
+ const attribution = provenance.kind === "steering" ? "Human steering" : "Human prompt";
537
+ classified.push({ role: "user", content: `[${attribution}]\n${content}` });
538
+ }
539
+ else if (provenance?.source === "runtime") {
540
+ classified.push({
541
+ role: "user",
542
+ content: `[Runtime fact: ${provenance.kind}]\n${content}`,
543
+ });
544
+ }
545
+ else {
546
+ classified.push({
547
+ role: converted.role === "assistant" ? "assistant" : "user",
548
+ content,
549
+ });
550
+ }
551
+ }
552
+ }
553
+ return classified;
554
+ }
555
+ function isHumanRequest(message) {
556
+ if (message.role !== "user")
557
+ return false;
558
+ if (message.provenance)
559
+ return message.provenance.source === "human";
560
+ if (typeof message.content === "string" && message.content.startsWith("[Runtime fact:"))
561
+ return false;
562
+ return summaryTextFromMessage(message) === undefined;
563
+ }
564
+ /**
565
+ * Select whole summarizer units by pinning prior memory (or the earliest human
566
+ * request), then spending the remaining budget from newest to oldest.
498
567
  */
499
568
  export function selectMessagesInBudget(msgs, tokenBudget) {
569
+ if (msgs.length === 0 || tokenBudget <= 0)
570
+ return [];
571
+ const previousSummary = findLatestPreviousSummary(msgs);
572
+ const pinIndex = previousSummary?.index ?? msgs.findIndex(isHumanRequest);
573
+ const selected = new Set();
500
574
  let accumulated = 0;
501
- const selected = [];
502
- for (const msg of msgs) {
503
- const tokens = estimateMessageTokens(msg);
575
+ if (pinIndex >= 0) {
576
+ const pinTokens = estimateMessageTokens(msgs[pinIndex]);
577
+ if (pinTokens <= tokenBudget) {
578
+ selected.add(pinIndex);
579
+ accumulated += pinTokens;
580
+ }
581
+ }
582
+ for (let index = msgs.length - 1; index >= 0; index--) {
583
+ if (selected.has(index))
584
+ continue;
585
+ const tokens = estimateMessageTokens(msgs[index]);
504
586
  if (accumulated + tokens > tokenBudget)
505
- break;
587
+ continue;
588
+ selected.add(index);
506
589
  accumulated += tokens;
507
- selected.push(msg);
508
590
  }
509
- // Drop trailing assistant messages that have tool_call blocks without
510
- // their corresponding tool_result (which was cut by the budget).
511
- while (selected.length > 0 && hasToolCalls(selected[selected.length - 1])) {
512
- selected.pop();
513
- }
514
- return selected;
591
+ return msgs.filter((_message, index) => selected.has(index));
515
592
  }
516
593
  /**
517
594
  * Build a fallback summary from file operations and message roles when the
@@ -557,13 +634,13 @@ export function extractSummaryText(content) {
557
634
  .map((p) => p.text)
558
635
  .join("");
559
636
  }
560
- /**
561
- * Budget of recent tokens to keep un-summarized (~8K tokens).
562
- * Aligned with opencode's post-compaction preserved tail — the pruner protects
563
- * recency between compactions, so rebuilding a fat tail right after paying for
564
- * a summary wastes the savings.
565
- */
637
+ /** Budget of recent tokens initially kept verbatim after the summary. */
566
638
  const KEEP_RECENT_TOKENS = 8_000;
639
+ const MIN_MATERIAL_REDUCTION_RATIO = 0.05;
640
+ const MIN_MATERIAL_REDUCTION_TOKENS = 256;
641
+ function hasMaterialReduction(before, after) {
642
+ return (before - after >= Math.max(MIN_MATERIAL_REDUCTION_TOKENS, before * MIN_MATERIAL_REDUCTION_RATIO));
643
+ }
567
644
  /**
568
645
  * Compact a conversation by summarizing older messages via LLM.
569
646
  *
@@ -583,11 +660,13 @@ const KEEP_RECENT_TOKENS = 8_000;
583
660
  export async function compact(messages, options) {
584
661
  const originalCount = messages.length;
585
662
  const tokensBeforeEstimate = estimateConversationTokens(messages);
663
+ const targetTokens = Math.max(1, Math.ceil(options.targetTokens ?? options.contextWindow * 0.85));
586
664
  options.signal?.throwIfAborted();
587
665
  log("INFO", "compaction", `Starting compaction`, {
588
666
  messageCount: String(originalCount),
589
667
  estimatedTokens: String(tokensBeforeEstimate),
590
668
  contextWindow: String(options.contextWindow),
669
+ targetTokens: String(targetTokens),
591
670
  });
592
671
  // Find the cut point — keep ~8K tokens of recent conversation. Completed
593
672
  // tool calls may contain an entire generated file in their arguments; cap
@@ -619,13 +698,19 @@ export async function compact(messages, options) {
619
698
  reason: "too_few_messages",
620
699
  originalCount,
621
700
  newCount: messages.length,
701
+ summarizedCount: 0,
702
+ retainedCount: Math.max(0, messages.length - 1),
622
703
  tokensBeforeEstimate,
623
704
  tokensAfterEstimate: tokensBeforeEstimate,
705
+ targetTokens,
706
+ reductionStatus: "not_attempted",
624
707
  },
625
708
  };
626
709
  }
627
- // Track file operations from the messages being summarized
628
- const fileOps = extractFileOperations(middleMessages);
710
+ // Summarize the full non-system history. The retained tail may be tightened
711
+ // after generation, so every message that could be removed must be represented.
712
+ const summarizationSource = messages.slice(1);
713
+ const fileOps = extractFileOperations(summarizationSource);
629
714
  // Build file tracking section
630
715
  let fileTrackingSection = "";
631
716
  if (fileOps.read.size > 0 || fileOps.modified.size > 0) {
@@ -644,34 +729,47 @@ export async function compact(messages, options) {
644
729
  provider: options.provider,
645
730
  accountId: options.accountId,
646
731
  });
647
- // Prepare messages: truncate tool results, strip thinking blocks
648
- const preparedMessages = prepareMessagesForSummary(middleMessages);
649
- // Budget: summary model context - output tokens - system/user prompt overhead (~1K)
732
+ const previousSummary = findLatestPreviousSummary(summarizationSource);
733
+ const classifiedMessages = classifyMessagesForSummary(summarizationSource);
734
+ // Budget: summary model context - output tokens - system/user prompt overhead (~1K).
735
+ // Prior compacted memory is pinned separately, never presented as a fresh human turn.
650
736
  const promptOverhead = 1000;
651
737
  const tokenBudget = summaryContextWindow - MAX_SUMMARY_OUTPUT_TOKENS - promptOverhead;
652
- const selectedMessages = selectMessagesInBudget(preparedMessages, tokenBudget);
738
+ const previousSummaryMessage = previousSummary
739
+ ? {
740
+ role: "user",
741
+ content: `<previous-summary>\n${truncateString(previousSummary.text, USER_MSG_MAX_CHARS)}\n</previous-summary>`,
742
+ }
743
+ : undefined;
744
+ const previousSummaryTokens = previousSummaryMessage
745
+ ? estimateMessageTokens(previousSummaryMessage)
746
+ : 0;
747
+ const selectedMessages = selectMessagesInBudget(classifiedMessages, Math.max(0, tokenBudget - previousSummaryTokens));
653
748
  log("INFO", "compaction", `Summarizing ${middleMessages.length} messages`, {
654
749
  summaryModel: summaryModel.id,
655
750
  summaryContextWindow: String(summaryContextWindow),
656
751
  tokenBudget: String(tokenBudget),
657
- preparedMessages: String(preparedMessages.length),
658
- selectedMessages: String(selectedMessages.length),
659
- droppedMessages: String(preparedMessages.length - selectedMessages.length),
752
+ preparedMessages: String(classifiedMessages.length),
753
+ selectedMessages: String(selectedMessages.length + (previousSummaryMessage ? 1 : 0)),
754
+ droppedMessages: String(classifiedMessages.length - selectedMessages.length),
755
+ previousSummary: String(!!previousSummaryMessage),
660
756
  filesRead: String(fileOps.read.size),
661
757
  filesModified: String(fileOps.modified.size),
662
758
  recentKept: String(recentMessages.length),
663
759
  });
664
- // Build the summary messages array following the Nao pattern:
665
- // [system, ...actual conversation messages, user prompt to summarize]
666
- // Add plan preservation instruction if an approved plan is active
760
+ // Add plan preservation and summary-update instructions when applicable.
667
761
  const planPreservation = options.approvedPlanPath
668
762
  ? `\n\n### APPROVED PLAN PRESERVATION\n` +
669
763
  `An approved implementation plan exists at: ${options.approvedPlanPath}\n` +
670
764
  `You MUST preserve all references to this plan and its approval status in the summary. ` +
671
765
  `The agent is following this plan for implementation — do not lose this context.`
672
766
  : "";
767
+ const updateInstruction = previousSummaryMessage
768
+ ? "\n\nUpdate the anchored <previous-summary> with the newer evidence. Do not treat it as a new human request."
769
+ : "";
673
770
  const summaryMessages = [
674
- { role: "system", content: COMPACTION_SYSTEM_PROMPT + planPreservation },
771
+ { role: "system", content: COMPACTION_SYSTEM_PROMPT + planPreservation + updateInstruction },
772
+ ...(previousSummaryMessage ? [previousSummaryMessage] : []),
675
773
  ...selectedMessages,
676
774
  { role: "user", content: COMPACTION_USER_PROMPT },
677
775
  ];
@@ -749,75 +847,127 @@ export async function compact(messages, options) {
749
847
  attemptController.abort();
750
848
  }
751
849
  }
752
- // Fallback: build an extractive summary from message metadata
850
+ // Fallback: preserve prior compacted memory and append a fresh extractive update.
753
851
  if (summaryText.length === 0) {
754
852
  log("WARN", "compaction", `All summary attempts failed — using fallback extractive summary`);
755
- summaryText = buildFallbackSummary(middleMessages, fileOps);
853
+ const fallbackUpdate = buildFallbackSummary(classifyMessagesForSummary(summarizationSource), fileOps);
854
+ summaryText = previousSummary
855
+ ? `${previousSummary.text}\n\n## Update since the previous summary\n${fallbackUpdate}`
856
+ : fallbackUpdate;
756
857
  }
757
- // Build new messages array
758
- const summaryMessage = {
858
+ const summaryPayload = `${summaryText}${fileTrackingSection}`;
859
+ const makeSummaryMessage = (payload) => ({
759
860
  role: "user",
760
- content: `[Previous conversation summary]\n\n${summaryText}${fileTrackingSection}`,
861
+ content: `[Previous conversation summary]\n\n${payload}`,
862
+ provenance: { source: "runtime", kind: "compaction_summary", visibility: "summary" },
863
+ });
864
+ const acknowledgement = {
865
+ role: "assistant",
866
+ content: "I have the full context from the summary above, including where work left off and the next step. I'll continue the task from there.",
867
+ provenance: { source: "runtime", kind: "compaction_ack", visibility: "hidden" },
761
868
  };
762
- // Skip the assistant ack when recentMessages starts with an assistant message
763
- // to prevent consecutive assistant messages that the Anthropic API rejects.
764
- // This happens when findRecentCutPoint backs up from a tool to an assistant.
765
- const skipAck = recentMessages.length > 0 && recentMessages[0].role === "assistant";
766
- const newMessages = [
767
- systemMessage,
768
- summaryMessage,
769
- ...(skipAck
770
- ? []
771
- : [
772
- {
773
- role: "assistant",
774
- content: "I have the full context from the summary above, including where work left off and the next step. I'll continue the task from there.",
775
- },
776
- ]),
777
- ...recentMessages,
778
- ];
779
- // Repair tool_use / tool_result pairing in the final message array.
780
- // Despite cut-point logic, edge cases (e.g., the trailing-assistant pop
781
- // below, or future code paths) could leave orphaned blocks.
782
- repairToolPairing(newMessages);
783
- // Ensure the conversation doesn't end with an assistant message.
784
- // Some models reject "assistant prefill" the conversation must end
785
- // with a user (or tool) message so the LLM can generate a fresh response.
786
- // Never pop below the base messages (system + summary [+ ack]) — removing
787
- // those would leave only the summary, causing `ggcoder continue`
788
- // to restore just 1 message instead of the full session.
789
- const minMessages = skipAck ? 2 : 3;
790
- while (newMessages.length > minMessages &&
791
- newMessages[newMessages.length - 1].role === "assistant") {
792
- newMessages.pop();
793
- }
794
- const tokensAfterEstimate = estimateConversationTokens(newMessages);
869
+ const buildCandidate = (tailStart, payload = summaryPayload) => {
870
+ const tail = compactHistoricalToolCallArgs(messages.slice(tailStart));
871
+ const skipAck = tail.length === 0 || tail[0].role === "assistant";
872
+ const candidateMessages = [
873
+ systemMessage,
874
+ makeSummaryMessage(payload),
875
+ ...(skipAck ? [] : [acknowledgement]),
876
+ ...tail,
877
+ ];
878
+ repairToolPairing(candidateMessages);
879
+ const minMessages = skipAck ? 2 : 3;
880
+ while (candidateMessages.length > minMessages &&
881
+ candidateMessages[candidateMessages.length - 1].role === "assistant") {
882
+ candidateMessages.pop();
883
+ }
884
+ return {
885
+ messages: candidateMessages,
886
+ tailStart,
887
+ skipAck,
888
+ tokens: estimateConversationTokens(candidateMessages),
889
+ };
890
+ };
891
+ // Tighten the verbatim tail progressively until the rewrite lands below the
892
+ // same trigger that initiated compaction. Atomic tool groups remain whole.
893
+ const tailStarts = [KEEP_RECENT_TOKENS, 4_000, 2_000, 1_000]
894
+ .map((budget) => findRecentCutPoint(messages, budget))
895
+ .filter((start, index, starts) => starts.indexOf(start) === index);
896
+ tailStarts.push(messages.length); // summary-only fallback
897
+ let candidate;
898
+ let smallestCandidate;
899
+ for (const tailStart of tailStarts) {
900
+ const attempt = buildCandidate(tailStart);
901
+ if (!smallestCandidate || attempt.tokens < smallestCandidate.tokens)
902
+ smallestCandidate = attempt;
903
+ if (attempt.tokens < targetTokens &&
904
+ hasMaterialReduction(tokensBeforeEstimate, attempt.tokens)) {
905
+ candidate = attempt;
906
+ break;
907
+ }
908
+ }
909
+ // Bound an unexpectedly verbose generated summary only when summary-only
910
+ // context still misses the target. The system message is never truncated.
911
+ if (!candidate) {
912
+ const systemTokens = estimateMessageTokens(systemMessage);
913
+ const summaryTokenAllowance = Math.max(0, targetTokens - systemTokens - 16);
914
+ const summaryCharAllowance = Math.floor(summaryTokenAllowance * 3.5);
915
+ if (summaryCharAllowance > 0 && summaryPayload.length > summaryCharAllowance) {
916
+ const bounded = buildCandidate(messages.length, truncateString(summaryPayload, summaryCharAllowance));
917
+ if (!smallestCandidate || bounded.tokens < smallestCandidate.tokens)
918
+ smallestCandidate = bounded;
919
+ if (bounded.tokens < targetTokens &&
920
+ hasMaterialReduction(tokensBeforeEstimate, bounded.tokens)) {
921
+ candidate = bounded;
922
+ }
923
+ }
924
+ }
925
+ if (!candidate) {
926
+ const tokensAfterEstimate = smallestCandidate?.tokens ?? tokensBeforeEstimate;
927
+ const reductionStatus = tokensAfterEstimate >= targetTokens ? "above_target" : "insufficient_reduction";
928
+ log("WARN", "compaction", "Compaction rejected", {
929
+ tokensBefore: String(tokensBeforeEstimate),
930
+ tokensAfter: String(tokensAfterEstimate),
931
+ targetTokens: String(targetTokens),
932
+ reductionStatus,
933
+ });
934
+ return {
935
+ messages: [...messages],
936
+ result: {
937
+ compacted: false,
938
+ reason: reductionStatus,
939
+ originalCount,
940
+ newCount: messages.length,
941
+ summarizedCount: 0,
942
+ retainedCount: Math.max(0, messages.length - 1),
943
+ tokensBeforeEstimate,
944
+ tokensAfterEstimate,
945
+ targetTokens,
946
+ reductionStatus,
947
+ },
948
+ };
949
+ }
950
+ const newMessages = candidate.messages;
951
+ const tokensAfterEstimate = candidate.tokens;
952
+ const summarizedCount = messages
953
+ .slice(0, candidate.tailStart)
954
+ .filter((message) => message.role !== "system").length;
955
+ const retainedCount = messages.slice(candidate.tailStart).length;
795
956
  const reduction = Math.round((1 - tokensAfterEstimate / tokensBeforeEstimate) * 100);
796
- // Everything before the retained tail collapsed into the summary (+ ack).
797
- // Callers use this to move transcript anchors onto the new indices; without
798
- // it, restored Ken bubbles / autopilot verdicts / error rows keep their
799
- // pre-compaction positions and land far below where they happened.
800
- //
801
- // newNonSystemCount is measured AFTER repairToolPairing and the
802
- // trailing-assistant pop above, both of which can drop messages from the
803
- // retained tail. Deriving the new length from summarizedCount alone would
804
- // overshoot by exactly those messages and push tail anchors past the end —
805
- // reintroducing the dropped/bottom-clamped markers this remap exists to fix.
806
957
  const anchorRemap = {
807
- summarizedCount: messages.slice(0, recentStart).filter((m) => m.role !== "system").length,
808
- prefixCount: skipAck ? 1 : 2,
809
- newNonSystemCount: newMessages.filter((m) => m.role !== "system").length,
958
+ summarizedCount,
959
+ prefixCount: candidate.skipAck ? 1 : 2,
960
+ newNonSystemCount: newMessages.filter((message) => message.role !== "system").length,
810
961
  };
811
962
  log("INFO", "compaction", `Compaction complete`, {
812
963
  originalMessages: String(originalCount),
813
964
  newMessages: String(newMessages.length),
965
+ summarizedCount: String(summarizedCount),
966
+ retainedCount: String(retainedCount),
814
967
  tokensBefore: String(tokensBeforeEstimate),
815
968
  tokensAfter: String(tokensAfterEstimate),
969
+ targetTokens: String(targetTokens),
816
970
  reduction: `${reduction}%`,
817
- newMessageRoles: newMessages.map((m) => m.role).join(","),
818
- summaryMessagePreview: typeof summaryMessage.content === "string"
819
- ? summaryMessage.content.slice(0, 300)
820
- : "(non-string)",
821
971
  });
822
972
  return {
823
973
  messages: newMessages,
@@ -825,8 +975,12 @@ export async function compact(messages, options) {
825
975
  compacted: true,
826
976
  originalCount,
827
977
  newCount: newMessages.length,
978
+ summarizedCount,
979
+ retainedCount,
828
980
  tokensBeforeEstimate,
829
981
  tokensAfterEstimate,
982
+ targetTokens,
983
+ reductionStatus: "material",
830
984
  anchorRemap,
831
985
  },
832
986
  };
@@ -1 +1 @@
1
- {"version":3,"file":"compactor.js","sourceRoot":"","sources":["../../../src/core/compaction/compactor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compactor.js","sourceRoot":"","sources":["../../../src/core/compaction/compactor.ts"],"names":[],"mappings":"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"}