Skip to content

Commit c29f87f

Browse files
committed
release: Base Context 1.0.13
1 parent 9bb4c7d commit c29f87f

11 files changed

Lines changed: 87 additions & 26 deletions

File tree

‎package-lock.json‎

Lines changed: 11 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎package.json‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@
4949
"engines": {
5050
"node": "^22.12.0 || >=23.3.0"
5151
},
52-
"version": "1.0.12",
52+
"version": "1.0.13",
5353
"dependencies": {
54-
"get-east-asian-width": "^1.6.0",
55-
"@ponythewhite/base-context": "1.0.12"
54+
"@ponythewhite/base-context": "1.0.13",
55+
"get-east-asian-width": "^1.6.0"
5656
},
5757
"overrides": {
5858
"rimraf": "6.1.2",

‎packages/agent/package.json‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ponythewhite/base-context-agent",
3-
"version": "1.0.12",
3+
"version": "1.0.13",
44
"description": "Synerise base-context agent runtime with context management and native recovery",
55
"type": "module",
66
"main": "./dist/index.js",
@@ -19,7 +19,7 @@
1919
"prepublishOnly": "npm --prefix ../.. run build:source"
2020
},
2121
"dependencies": {
22-
"@ponythewhite/base-context-ai": "1.0.12",
22+
"@ponythewhite/base-context-ai": "1.0.13",
2323
"typebox": "^1.3.9"
2424
},
2525
"keywords": [

‎packages/ai/package.json‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ponythewhite/base-context-ai",
3-
"version": "1.0.12",
3+
"version": "1.0.13",
44
"description": "Synerise base-context unified LLM API and provider configuration",
55
"type": "module",
66
"main": "./dist/index.js",
@@ -78,12 +78,12 @@
7878
"@aws-sdk/client-bedrock-runtime": "^3.1095.0",
7979
"@google/genai": "^1.40.0",
8080
"@mistralai/mistralai": "^2.2.0",
81-
"typebox": "^1.3.9",
8281
"chalk": "^5.6.2",
8382
"js-tiktoken": "1.0.21",
8483
"openai": "6.47.0",
8584
"partial-json": "^0.1.7",
8685
"proxy-agent": "^6.5.0",
86+
"typebox": "^1.3.9",
8787
"undici": "^7.29.0",
8888
"zod-to-json-schema": "^3.24.6"
8989
},

‎packages/coding-agent/.changes/compaction-ninety-percent.md‎

Lines changed: 0 additions & 1 deletion
This file was deleted.

‎packages/coding-agent/CHANGELOG.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## [1.0.13] - 2026-09-21
4+
5+
- Changed the default automatic compaction target to 90% of the model context window, retaining required-context headroom, the output reserve, and earlier agent-requested compaction.
6+
37
## [1.0.12] - 2026-09-21
48

59
- Fixed compaction and recovery for primary RLM child requests.

‎packages/coding-agent/package.json‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ponythewhite/base-context",
3-
"version": "1.0.12",
3+
"version": "1.0.13",
44
"description": "Synerise base-context: a coding and research agent with durable context and a persistent Python REPL",
55
"type": "module",
66
"bin": {
@@ -42,9 +42,9 @@
4242
},
4343
"dependencies": {
4444
"@agentclientprotocol/sdk": "^1.3.0",
45-
"@ponythewhite/base-context-agent": "1.0.12",
46-
"@ponythewhite/base-context-ai": "1.0.12",
47-
"@ponythewhite/base-context-tui": "1.0.12",
45+
"@ponythewhite/base-context-agent": "1.0.13",
46+
"@ponythewhite/base-context-ai": "1.0.13",
47+
"@ponythewhite/base-context-tui": "1.0.13",
4848
"@silvia-odwyer/photon-node": "^0.3.4",
4949
"chalk": "^5.5.0",
5050
"cli-highlight": "^2.1.11",
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import { type AssistantMessage, fauxAssistantMessage } from "@ponythewhite/base-context-ai";
2+
import { describe, expect, it } from "vitest";
3+
import { createTestResourceLoader } from "../utilities.js";
4+
import { createHarness } from "./harness.js";
5+
6+
describe("default automatic compaction across recursive session depths", () => {
7+
it.each([0, 1, 2, 3])("ninety percent (depth %i)", async (rlmDepth) => {
8+
const harness = await createHarness({
9+
rlmDepth,
10+
persistSession: true,
11+
models: [{ id: "faux-1", contextWindow: 272_000 }],
12+
tools: [],
13+
resourceLoader: { ...createTestResourceLoader(), getSystemPrompt: () => "You are a test assistant." },
14+
settings: { autoRefine: { enabled: false } },
15+
});
16+
try {
17+
expect(harness.settingsManager.getCompactionSettings()).toEqual({
18+
enabled: true,
19+
reserveTokens: 16_384,
20+
keepRecentTokens: 20_000,
21+
});
22+
harness.setResponses([
23+
() => fauxAssistantMessage("Historical work recorded."),
24+
() => fauxAssistantMessage("Below the threshold."),
25+
() => fauxAssistantMessage("Above the threshold."),
26+
() => fauxAssistantMessage("Ninety-percent checkpoint summary."),
27+
]);
28+
29+
await harness.session.prompt(`Historical work: ${"old ".repeat(30_000)}`);
30+
const seedUsage = (harness.session.messages.at(-1) as AssistantMessage).usage;
31+
// Faux counts new chars/4 in both input and cacheWrite; cached input counts once.
32+
await harness.session.prompt("x".repeat((240_000 - seedUsage.input - seedUsage.cacheRead) * 2));
33+
const belowTokens = (await harness.session.getContextUsage())!.tokens!;
34+
expect(belowTokens).toBeGreaterThan(239_800);
35+
expect(belowTokens).toBeLessThan(244_800);
36+
expect(harness.eventsOfType("compaction_start")).toHaveLength(0);
37+
38+
const belowUsage = (harness.session.messages.at(-1) as AssistantMessage).usage;
39+
await harness.session.prompt("y".repeat((245_000 - belowUsage.input - belowUsage.cacheRead) * 2));
40+
await harness.session.waitForHeadlessIdle();
41+
const outcomes = harness.eventsOfType("compaction_end");
42+
expect(outcomes).toHaveLength(1);
43+
expect(outcomes[0]).toMatchObject({
44+
reason: "threshold",
45+
result: { summary: "Ninety-percent checkpoint summary." },
46+
aborted: false,
47+
});
48+
expect(outcomes[0].result!.tokensBefore).toBeGreaterThan(244_800);
49+
expect(outcomes[0].result!.tokensBefore).toBeLessThan(245_800);
50+
expect(
51+
(await harness.sessionManager.readEntries()).filter((entry) => entry.type === "compaction"),
52+
).toHaveLength(1);
53+
expect(harness.getPendingResponseCount()).toBe(0);
54+
} finally {
55+
await harness.cleanup();
56+
}
57+
});
58+
});

‎packages/tui/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ponythewhite/base-context-tui",
3-
"version": "1.0.12",
3+
"version": "1.0.13",
44
"description": "Synerise base-context terminal UI components",
55
"type": "module",
66
"main": "dist/index.js",

‎prime-agent-runtime/pyproject.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "base-context-runtime"
3-
version = "1.0.12"
3+
version = "1.0.13"
44
description = "Kernel-side runtime shim for Base Context recursion"
55
license = "MIT"
66
license-files = ["LICENSE", "NOTICE"]

0 commit comments

Comments
 (0)