@oh-my-pi/pi-agent-core 16.4.8 → 16.5.0

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [16.5.0] - 2026-07-13
6
+
7
+ ### Added
8
+
9
+ - Added an automated image-dropping rescue tier to compaction dead-end recovery.
10
+ - Added visual warnings and detailed recovery instructions to the session timeline when compaction fails to free sufficient space.
11
+
5
12
  ## [16.4.5] - 2026-07-11
6
13
 
7
14
  ### Added
@@ -37,6 +37,12 @@ export interface CompactionEntry<T = unknown> extends SessionEntryBase {
37
37
  preserveData?: Record<string, unknown>;
38
38
  /** True if generated by an extension, undefined/false if pi-generated (backward compatible) */
39
39
  fromExtension?: boolean;
40
+ /**
41
+ * Dead-end warning from the post-pass progress guard: the pass completed
42
+ * but freed too little for maintenance to continue. Rendered on the
43
+ * compaction divider.
44
+ */
45
+ warning?: string;
40
46
  }
41
47
  export interface BranchSummaryEntry<T = unknown> extends SessionEntryBase {
42
48
  type: "branch_summary";
@@ -39,6 +39,8 @@ export interface CompactionSummaryMessage {
39
39
  blocks?: (TextContent | ImageContent)[];
40
40
  /** Snapcompact image blocks, kept for display counts / legacy consumers. */
41
41
  images?: ImageContent[];
42
+ /** Post-pass dead-end warning attached to this compaction (progress guard). */
43
+ warning?: string;
42
44
  timestamp: number;
43
45
  }
44
46
  export type CoreCompactionMessage = CustomMessage | HookMessage | BranchSummaryMessage | CompactionSummaryMessage;
@@ -54,7 +56,7 @@ export type ConvertToLlm = (messages: AgentMessage[]) => Message[];
54
56
  export declare function renderBranchSummaryContext(summary: string): string;
55
57
  export declare function renderCompactionSummaryContext(summary: string): string;
56
58
  export declare function createBranchSummaryMessage(summary: string, fromId: string, timestamp: string): BranchSummaryMessage;
57
- export declare function createCompactionSummaryMessage(summary: string, tokensBefore: number, timestamp: string, shortSummary?: string, providerPayload?: ProviderPayload, images?: ImageContent[], blocks?: (TextContent | ImageContent)[]): CompactionSummaryMessage;
59
+ export declare function createCompactionSummaryMessage(summary: string, tokensBefore: number, timestamp: string, shortSummary?: string, providerPayload?: ProviderPayload, images?: ImageContent[], blocks?: (TextContent | ImageContent)[], warning?: string): CompactionSummaryMessage;
58
60
  export declare function createCustomMessage(customType: string, content: string | (TextContent | ImageContent)[], display: boolean, details: unknown | undefined, timestamp: string, attribution?: MessageAttribution): CustomMessage;
59
61
  /**
60
62
  * Transform a single core-domain agent message to its LLM form; `undefined`
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@oh-my-pi/pi-agent-core",
4
- "version": "16.4.8",
4
+ "version": "16.5.0",
5
5
  "description": "General-purpose agent with transport abstraction, state management, and attachment support",
6
6
  "homepage": "https://omp.sh",
7
7
  "author": "Can Boluk",
@@ -35,12 +35,12 @@
35
35
  "fmt": "biome format --write ."
36
36
  },
37
37
  "dependencies": {
38
- "@oh-my-pi/pi-ai": "16.4.8",
39
- "@oh-my-pi/pi-catalog": "16.4.8",
40
- "@oh-my-pi/pi-natives": "16.4.8",
41
- "@oh-my-pi/pi-utils": "16.4.8",
42
- "@oh-my-pi/pi-wire": "16.4.8",
43
- "@oh-my-pi/snapcompact": "16.4.8",
38
+ "@oh-my-pi/pi-ai": "16.5.0",
39
+ "@oh-my-pi/pi-catalog": "16.5.0",
40
+ "@oh-my-pi/pi-natives": "16.5.0",
41
+ "@oh-my-pi/pi-utils": "16.5.0",
42
+ "@oh-my-pi/pi-wire": "16.5.0",
43
+ "@oh-my-pi/snapcompact": "16.5.0",
44
44
  "@opentelemetry/api": "^1.9.1"
45
45
  },
46
46
  "devDependencies": {
@@ -43,6 +43,12 @@ export interface CompactionEntry<T = unknown> extends SessionEntryBase {
43
43
  preserveData?: Record<string, unknown>;
44
44
  /** True if generated by an extension, undefined/false if pi-generated (backward compatible) */
45
45
  fromExtension?: boolean;
46
+ /**
47
+ * Dead-end warning from the post-pass progress guard: the pass completed
48
+ * but freed too little for maintenance to continue. Rendered on the
49
+ * compaction divider.
50
+ */
51
+ warning?: string;
46
52
  }
47
53
 
48
54
  export interface BranchSummaryEntry<T = unknown> extends SessionEntryBase {
@@ -56,6 +56,8 @@ export interface CompactionSummaryMessage {
56
56
  blocks?: (TextContent | ImageContent)[];
57
57
  /** Snapcompact image blocks, kept for display counts / legacy consumers. */
58
58
  images?: ImageContent[];
59
+ /** Post-pass dead-end warning attached to this compaction (progress guard). */
60
+ warning?: string;
59
61
  timestamp: number;
60
62
  }
61
63
 
@@ -105,6 +107,7 @@ export function createCompactionSummaryMessage(
105
107
  providerPayload?: ProviderPayload,
106
108
  images?: ImageContent[],
107
109
  blocks?: (TextContent | ImageContent)[],
110
+ warning?: string,
108
111
  ): CompactionSummaryMessage {
109
112
  const imageBlocks =
110
113
  blocks?.filter((block): block is ImageContent => block.type === "image") ??
@@ -117,6 +120,7 @@ export function createCompactionSummaryMessage(
117
120
  providerPayload,
118
121
  blocks: blocks && blocks.length > 0 ? blocks : undefined,
119
122
  images: imageBlocks && imageBlocks.length > 0 ? imageBlocks : undefined,
123
+ warning,
120
124
  timestamp: new Date(timestamp).getTime(),
121
125
  };
122
126
  }