Simplify compaction: remove proactive abort, use Agent.continue() for retry
- Add agentLoopContinue() to pi-ai for resuming from existing context - Add Agent.continue() method and transport.continue() interface - Simplify AgentSession compaction to two cases: overflow (auto-retry) and threshold (no retry) - Remove proactive mid-turn compaction abort - Merge turn prefix summary into main summary - Add isCompacting property to AgentSession and RPC state - Block input during compaction in interactive mode - Show compaction count on session resume - Rename RPC.md to rpc.md for consistency Related to #128
This commit is contained in:
@@ -50,8 +50,6 @@ export interface CompactionEntry {
|
||||
type: "compaction";
|
||||
timestamp: string;
|
||||
summary: string;
|
||||
/** Summary of turn prefix when a turn was split (user message to first kept message) */
|
||||
turnPrefixSummary?: string;
|
||||
firstKeptEntryIndex: number; // Index into session entries where we start keeping
|
||||
tokensBefore: number;
|
||||
}
|
||||
@@ -180,18 +178,9 @@ export function loadSessionFromEntries(entries: SessionEntry[]): LoadedSession {
|
||||
}
|
||||
}
|
||||
|
||||
// Build final messages: summaries + kept messages
|
||||
// Build final messages: summary + kept messages
|
||||
const messages: AppMessage[] = [];
|
||||
|
||||
// Add history summary
|
||||
messages.push(createSummaryMessage(compactionEvent.summary));
|
||||
|
||||
// Add turn prefix summary if present (when a turn was split)
|
||||
if (compactionEvent.turnPrefixSummary) {
|
||||
messages.push(createSummaryMessage(compactionEvent.turnPrefixSummary));
|
||||
}
|
||||
|
||||
// Add kept messages
|
||||
messages.push(...keptMessages);
|
||||
|
||||
return { messages, thinkingLevel, model };
|
||||
|
||||
Reference in New Issue
Block a user