antechamber 0.2.26 → 0.2.28
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 +13 -0
- package/dist/routes-v1.js +7 -0
- package/dist/subagents.js +21 -5
- package/extensions/omo-compat/package.json +1 -1
- package/extensions/omo-dag/package.json +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,19 @@ and this project uses [Semantic Versioning](https://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.2.28] - 2026-10-18
|
|
11
|
+
|
|
12
|
+
- fix(session): keep replies visible after compaction (#37)
|
|
13
|
+
|
|
14
|
+
## [0.2.27] - 2026-10-18
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- Keep new replies and tool activity visible after compaction in long conversations by retaining their original
|
|
19
|
+
prompt in paged history.
|
|
20
|
+
- Keep a subagent and its parent session shown as running when OmO resumes the subagent on its own after its turn
|
|
21
|
+
ended while its background work ran, and keep the subagent's transcript up to its final reply.
|
|
22
|
+
|
|
10
23
|
## [0.2.26] - 2026-10-17
|
|
11
24
|
|
|
12
25
|
### Changed
|
package/dist/routes-v1.js
CHANGED
|
@@ -148,6 +148,13 @@ export async function handleV1(services, req, res, url, path, method, directory)
|
|
|
148
148
|
return;
|
|
149
149
|
}
|
|
150
150
|
let start = limit === undefined ? 0 : Math.max(0, end - limit);
|
|
151
|
+
const parents = new Set(messages
|
|
152
|
+
.slice(start, end)
|
|
153
|
+
.flatMap((message) => (message.info.role === "assistant" ? [message.info.parentID] : [])));
|
|
154
|
+
// A compaction opens its own display turn, but ongoing replies still belong to the original prompt.
|
|
155
|
+
const parent = messages.findIndex((message, index) => index < start && message.info.role === "user" && parents.has(message.info.id));
|
|
156
|
+
if (parent >= 0)
|
|
157
|
+
start = parent;
|
|
151
158
|
// OpenChamber 1.24 widens a page with no user message only up to 120 messages
|
|
152
159
|
// (150 on desktop), then renders it with no turn to anchor on: blank. A long agent
|
|
153
160
|
// turn outgrows that, so a page reaches back to the prompt that opened its turn.
|
package/dist/subagents.js
CHANGED
|
@@ -21,6 +21,14 @@ export function stripTaskSuffix(text) {
|
|
|
21
21
|
function active(status) {
|
|
22
22
|
return ["running", "queued", "pending", "starting", "suspended"].includes(String(status));
|
|
23
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* A finished task OmO may still resume on its own: a resident child whose turn settled while its own
|
|
26
|
+
* background work ran is set back to running (omo-task.js `task_self_resumed`, which goes through the
|
|
27
|
+
* same reset as a revive). Leaving residency (`rpc_detached`, `persisted_only`, `disposed`) ends that.
|
|
28
|
+
*/
|
|
29
|
+
function revivable(details) {
|
|
30
|
+
return (details.residency_state === "resident" && ["completed", "error", "interrupted"].includes(String(details.status)));
|
|
31
|
+
}
|
|
24
32
|
function terminal(status) {
|
|
25
33
|
return ["completed", "failed", "error", "cancelled", "canceled", "killed", "lost", "denied", "plan_error"].includes(String(status));
|
|
26
34
|
}
|
|
@@ -659,8 +667,12 @@ export class SubagentBridge {
|
|
|
659
667
|
}
|
|
660
668
|
reconcileRuntime(child, running) {
|
|
661
669
|
child.session.status = { type: running ? "busy" : "idle" };
|
|
662
|
-
if (!running)
|
|
663
|
-
|
|
670
|
+
if (!running) {
|
|
671
|
+
const keep = revivable(child.task.details) ? child.recordPath : undefined;
|
|
672
|
+
this.closeWatchers(child, keep);
|
|
673
|
+
if (keep !== undefined)
|
|
674
|
+
this.watch(child, keep);
|
|
675
|
+
}
|
|
664
676
|
const parts = [...child.parts.values()];
|
|
665
677
|
for (const part of parts) {
|
|
666
678
|
updateTaskParts([part], {
|
|
@@ -784,10 +796,14 @@ export class SubagentBridge {
|
|
|
784
796
|
emitPart(session, part) {
|
|
785
797
|
this.emit(session.info.directory, { type: "message.part.updated", properties: { part } });
|
|
786
798
|
}
|
|
787
|
-
closeWatchers(child) {
|
|
788
|
-
|
|
799
|
+
closeWatchers(child, keep) {
|
|
800
|
+
const kept = keep === undefined ? undefined : dirname(keep);
|
|
801
|
+
for (const [dir, watcher] of child.watchers) {
|
|
802
|
+
if (dir === kept)
|
|
803
|
+
continue;
|
|
789
804
|
watcher.close();
|
|
790
|
-
|
|
805
|
+
child.watchers.delete(dir);
|
|
806
|
+
}
|
|
791
807
|
}
|
|
792
808
|
finishCalls(parentID, cancelled = false) {
|
|
793
809
|
for (const [key, parts] of this.calls) {
|