context-mode 1.0.155 → 1.0.156

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.
@@ -6,14 +6,14 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Claude Code plugins by Mert Koseoğlu",
9
- "version": "1.0.155"
9
+ "version": "1.0.156"
10
10
  },
11
11
  "plugins": [
12
12
  {
13
13
  "name": "context-mode",
14
14
  "source": "./",
15
15
  "description": "Claude Code MCP plugin that saves 98% of your context window. Sandboxed code execution in 11 languages, FTS5 knowledge base with BM25 ranking, and intent-driven search.",
16
- "version": "1.0.155",
16
+ "version": "1.0.156",
17
17
  "author": {
18
18
  "name": "Mert Koseoğlu"
19
19
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "context-mode",
3
- "version": "1.0.155",
3
+ "version": "1.0.156",
4
4
  "description": "MCP server that saves 98% of your context window with session continuity. Sandboxed code execution in 11 languages, FTS5 knowledge base with BM25 ranking, and automatic state restore across compactions.",
5
5
  "author": {
6
6
  "name": "Mert Koseoğlu",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "context-mode",
3
- "version": "1.0.155",
3
+ "version": "1.0.156",
4
4
  "description": "MCP server that saves 98% of your context window with session continuity. Sandboxed code execution in 11 languages, FTS5 knowledge base with BM25 ranking, and automatic state restore across compactions.",
5
5
  "author": {
6
6
  "name": "Mert Koseoğlu",
@@ -3,7 +3,7 @@
3
3
  "name": "Context Mode",
4
4
  "kind": "tool",
5
5
  "description": "OpenClaw plugin that saves 98% of your context window. Sandboxed code execution in 11 languages, FTS5 knowledge base with BM25 ranking, and intent-driven search.",
6
- "version": "1.0.155",
6
+ "version": "1.0.156",
7
7
  "sandbox": {
8
8
  "mode": "permissive",
9
9
  "filesystem_access": "full",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "context-mode",
3
- "version": "1.0.155",
3
+ "version": "1.0.156",
4
4
  "description": "OpenClaw plugin that saves 98% of your context window. Sandboxed code execution in 11 languages, FTS5 knowledge base with BM25 ranking, and intent-driven search.",
5
5
  "author": {
6
6
  "name": "Mert Koseoğlu",
@@ -170,16 +170,18 @@ export async function maybeForward(event, platform, opts = {}) {
170
170
  "X-Source-Platform": platform,
171
171
  "X-Schema-Version": "2",
172
172
  },
173
+ // Canonical envelope (PRD §5.4 stability ABI):
174
+ // - All event fields passthrough — server-side Zod picks per event.type
175
+ // - `platform` envelope metadata (claude-code, cursor, ...)
176
+ // - `ts` defaulted from event or wall clock
177
+ // Hand-mapping individual fields here is the anti-pattern: every new
178
+ // event field forced a bridge release. With this envelope, new fields
179
+ // ride the existing pipe and the platform schema is the only thing
180
+ // that ever needs to learn them.
173
181
  body: JSON.stringify({
174
- tool: ev.type,
175
- category: ev.category,
176
- error: ev.category === "error" ? 1 : 0,
177
- ts: opts.ts ?? Math.floor(Date.now() / 1000),
182
+ ...ev,
178
183
  platform,
179
- project: opts.project,
180
- session_category: ev.category,
181
- session_type: ev.type,
182
- session_data: typeof ev.data === "string" ? ev.data : undefined,
184
+ ts: ev.ts ?? opts.ts ?? Math.floor(Date.now() / 1000),
183
185
  }),
184
186
  signal: ctrl.signal,
185
187
  });
@@ -107,7 +107,20 @@ export function attributeAndInsertEvents(db, sessionId, events, input, projectDi
107
107
  if (hasPlatformConfig()) {
108
108
  const platform = detectPlatformFromEnv();
109
109
  for (let i = 0; i < events.length; i++) {
110
- maybeForward({ ...events[i], session_id: sessionId, ...attributions[i] }, platform);
110
+ const attr = attributions[i];
111
+ maybeForward(
112
+ {
113
+ ...events[i],
114
+ ...attr,
115
+ session_id: sessionId,
116
+ // Canonical alias — server reads `project` (snake-case shape on the wire);
117
+ // attribution-side stores `projectDir` (camelCase TS interface). Surfacing
118
+ // both keeps the wire shape stable without forcing the attribution module
119
+ // to change its public type.
120
+ project: attr?.projectDir,
121
+ },
122
+ platform,
123
+ );
111
124
  }
112
125
  }
113
126
 
@@ -3,7 +3,7 @@
3
3
  "name": "Context Mode",
4
4
  "kind": "tool",
5
5
  "description": "OpenClaw plugin that saves 98% of your context window. Sandboxed code execution in 11 languages, FTS5 knowledge base with BM25 ranking, and intent-driven search.",
6
- "version": "1.0.155",
6
+ "version": "1.0.156",
7
7
  "sandbox": {
8
8
  "mode": "permissive",
9
9
  "filesystem_access": "full",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "context-mode",
3
- "version": "1.0.155",
3
+ "version": "1.0.156",
4
4
  "type": "module",
5
5
  "description": "MCP plugin that saves 98% of your context window. Works with Claude Code, Gemini CLI, VS Code Copilot, OpenCode, and Codex CLI. Sandboxed code execution, FTS5 knowledge base, and intent-driven search.",
6
6
  "author": "Mert Koseoğlu",