@ngockhoale/ukit 2.2.10 → 2.2.11
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 +22 -0
- package/package.json +1 -1
- package/templates/.omp/hooks/pre/ukit-bridge.js +12 -5
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to UKit are documented here.
|
|
4
4
|
|
|
5
|
+
## 2.2.11 - 2026-08-29
|
|
6
|
+
|
|
7
|
+
Same-day follow-up to 2.2.10. The two premises that release shipped as unverified were checked
|
|
8
|
+
against omp's own installed TypeScript source (`@oh-my-pi/pi-coding-agent` v18.0.10, not a live
|
|
9
|
+
session — omp still was not run) and both hold:
|
|
10
|
+
|
|
11
|
+
- **`steer` after a compaction is accepted, not dropped.** `session-maintenance.ts` fires
|
|
12
|
+
`session_compact` only after `agent.replaceMessages()`/`rebaseAfterCompaction()` already ran, so
|
|
13
|
+
the session is idle at that point, and `agent-session.ts`'s `sendCustomMessage()` non-streaming
|
|
14
|
+
branch appends the message to the live context regardless of `deliverAs`.
|
|
15
|
+
- **`display: true` does trigger a visible re-render.** `extension-ui-controller.ts`'s
|
|
16
|
+
`applyCustomMessageDisplay()` calls `rebuildChatFromMessages()` for the non-streaming case (the
|
|
17
|
+
streaming case renders via the `message_end` event instead).
|
|
18
|
+
|
|
19
|
+
`templates/.omp/hooks/pre/ukit-bridge.js`'s two `TODO(verify)` comments (PLAN.md §3 D3, D4) are
|
|
20
|
+
updated to record this — from "unverified, additive, worst-case-unchanged" to "source-confirmed,
|
|
21
|
+
one rung below a live repro." No runtime behaviour changes; both delivery paths (`steer` +
|
|
22
|
+
`nextTurn`, and the `finalNotice` fallback) stay in place as defense in depth either way. A stale
|
|
23
|
+
local `.omp/hooks/pre/ukit-bridge.js` install artifact in this repo — untracked, regenerated by
|
|
24
|
+
`ukit install`, and out of sync with `templates/.omp/` since before 2.2.10 shipped — was also found
|
|
25
|
+
and resynced; that file is never part of the published package.
|
|
26
|
+
|
|
5
27
|
## 2.2.10 - 2026-08-29
|
|
6
28
|
|
|
7
29
|
User report: long omp (Oh My Pi) sessions go idle roughly 15 minutes into a task — no output, no
|
package/package.json
CHANGED
|
@@ -470,8 +470,12 @@ export async function runSessionCompact(pi, event, { projectRoot, context: exten
|
|
|
470
470
|
const metadata = runtimeMetadata(event, extensionContext);
|
|
471
471
|
const payload = buildHookPayload('SessionStart', { ...metadata, source: 'compact' });
|
|
472
472
|
const result = await runScriptChain(pi, HOOK_EVENT_MAP.session_start, payload, { projectRoot });
|
|
473
|
-
//
|
|
474
|
-
//
|
|
473
|
+
// VERIFIED (2026-08-29, source read of omp v18.0.10 pi-coding-agent/src) PLAN.md §3 D3:
|
|
474
|
+
// session_compact fires only after agent.replaceMessages()/rebaseAfterCompaction() already
|
|
475
|
+
// ran (session-maintenance.ts), i.e. the session is idle here, and agent-session.ts's
|
|
476
|
+
// sendCustomMessage() non-streaming branch appends the message to the live context
|
|
477
|
+
// regardless of deliverAs — so 'steer' is accepted right after a compaction. Not a live
|
|
478
|
+
// repro, so the 'nextTurn' copy below stays as defense in depth.
|
|
475
479
|
sendContext(pi, result.context, 'steer');
|
|
476
480
|
sendContext(pi, result.context, 'nextTurn');
|
|
477
481
|
return undefined;
|
|
@@ -499,9 +503,12 @@ export async function runSessionStop(
|
|
|
499
503
|
`[UKit] Stopping with unfinished work: ${evaluation.missingEvidence.join(', ')}.`,
|
|
500
504
|
evaluation.reason,
|
|
501
505
|
].filter(Boolean).join(' ');
|
|
502
|
-
//
|
|
503
|
-
//
|
|
504
|
-
//
|
|
506
|
+
// VERIFIED (2026-08-29, source read of omp v18.0.10 pi-coding-agent/src) PLAN.md §3 D4:
|
|
507
|
+
// display:true on a non-streaming sendMessage payload triggers
|
|
508
|
+
// extension-ui-controller.ts's applyCustomMessageDisplay() -> rebuildChatFromMessages(),
|
|
509
|
+
// a real immediate TUI re-render (the streaming case renders via the message_end event
|
|
510
|
+
// instead). Not a live repro, so the finalNotice continuation below (the model's own
|
|
511
|
+
// message) stays as a second guaranteed channel.
|
|
505
512
|
sendContext(pi, [notice], 'nextTurn', { display: true });
|
|
506
513
|
}
|
|
507
514
|
return undefined;
|