killeros 3.0.6 → 3.0.7
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 +23 -0
- package/README.md +14 -9
- package/killeros/goal-runtime.ts +3 -9
- package/package.json +7 -8
- package/themes/killeros.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,29 @@ All notable changes to KillerOS are documented here. Releases use New Features f
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [3.0.7] - 2026-10-15
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Raised the minimum supported Pi version to 1.2.0 and pinned development packages to that baseline. Removed the retired experimental server dependency and updated the packaged theme to Pi's published schema URL.
|
|
12
|
+
- Batched the passive Git conversion matrix into three isolated repositories instead of thirty. All 5,940 real-Git comparisons and thirty attribute/configuration cases remain covered, with explicit per-case comparison counts and fewer Git process launches.
|
|
13
|
+
- Removed unnecessary Pi runtime imports from process controls, footer end-to-end tests, failure-report checks, and bounded-text tests. Directory cleanup now lives in a lightweight shared helper with unchanged Windows lock retries.
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- Excluded Git-ignored private `docs/` artifacts from linting while retaining checks for repository code, so local documentation helpers cannot block release validation.
|
|
18
|
+
- Made footer terminal checks wait for a rendered footer before testing command results, preventing reload frames without a footer from satisfying absent-hint checks.
|
|
19
|
+
- Made the cleanup-disabled process-tree control wait for the descendant's complete late write. Shell exit alone does not prove that a slowly started descendant has finished.
|
|
20
|
+
- Removed the old personal-instruction copy from goal continuation messages. Pi 1.2.0 now applies the shared startup handler to custom runs, so the copy duplicated instructions on each goal turn and after startup cancellation.
|
|
21
|
+
- Scoped the unsupported Windows RPC shutdown case to Node 24.19.0, including Pi 1.2.0, and documented Node's 24.20.0 fix. Kept the pilots active on other Node versions.
|
|
22
|
+
- Restored latest-Pi compatibility installs after Pi 1.2.0 stopped publishing the experimental server package. CI now installs only the matched runtime packages, and test diagnostics no longer require the retired server.
|
|
23
|
+
- Isolated the real-Pi tool-exposure matrix from the parent checkout's Git state. CLI and SDK fixtures share a checked repository initializer, and the exposure matrix shuts down extensions before disposal so its watchers do not outlive the tests.
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
|
|
27
|
+
- Added real-CLI Pi 1.2.0 startup checks for single-copy personal instructions, custom and user events, queued next-turn messages, startup cancellation, goal turn accounting, reload, and ordinary compaction recovery. CI repeats them five times without forced exit and now checks Windows at both the Node floor and current LTS.
|
|
28
|
+
- Added bounded failure reports for CLI, terminal, process-control, and Git branch-isolation tests. Nested assertion and cleanup errors remain visible in test output with forced exit, and failed CI jobs retain report-only artifacts for seven days.
|
|
29
|
+
|
|
7
30
|
## [3.0.6] - 2026-10-12
|
|
8
31
|
|
|
9
32
|
### Changed
|
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ The UI has a dark theme with coral accents, a multiline editor with slash-comman
|
|
|
21
21
|
### Requirements
|
|
22
22
|
|
|
23
23
|
- Node.js 22.19.0+
|
|
24
|
-
- Pi 1.
|
|
24
|
+
- Pi 1.2.0 or later below 2.0.0
|
|
25
25
|
- An interactive TUI session for the custom header, editor, footer, and questions
|
|
26
26
|
|
|
27
27
|
KillerOS supports Windows and Linux. Users on older Pi versions must upgrade.
|
|
@@ -55,7 +55,7 @@ You can also install from GitHub:
|
|
|
55
55
|
pi install git:github.com/KyrosHendrix/pi-KillerOS
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
-
To pin a release, use `npm:killeros@3.0.
|
|
58
|
+
To pin a release, use `npm:killeros@3.0.7` or append a Git tag such as `@v3.0.7` to the Git source. Add `-l` to install only for the current project. Pi loads project packages only after you grant project trust.
|
|
59
59
|
|
|
60
60
|
### Commands
|
|
61
61
|
|
|
@@ -163,7 +163,7 @@ The summary output limit is 8192 tokens by default. Raise `handoffMaxTokens` if
|
|
|
163
163
|
|
|
164
164
|
Receipts and completion sounds wait for final `agent_settled`, including across provider retries. Sounds are off by default. Configure them with `/notification` in TUI mode. The tab-title indicator requires a Nerd Font.
|
|
165
165
|
|
|
166
|
-
|
|
166
|
+
Final request cancellation records `Stopped` and suppresses the sound even if the last assistant response ended normally. The receipt retains recorded changes and checks. Cancellation stops goal continuation and provider retry work. Cancelling pending compaction prevents its recovery.
|
|
167
167
|
|
|
168
168
|
Session replacement, reload, and committed tree navigation discard unfinished receipts. Late results cannot write or notify through the old session context or attach to another branch. Cancelled navigation preserves pending receipts.
|
|
169
169
|
|
|
@@ -189,6 +189,8 @@ Concurrent `/auto-compact` commands preserve independent changes to the enabled
|
|
|
189
189
|
|
|
190
190
|
Trusted projects can use lifecycle hooks for `tool_call`, `tool_result`, and `agent_settled` in `.pi/killeros-hooks.json`. KillerOS also loads `AGENTS.local.md` for trusted projects. Review these files before granting trust.
|
|
191
191
|
|
|
192
|
+
Pi 1.2.0 runs `before_agent_start` for user prompts and extension-triggered requests. KillerOS applies trusted personal instructions through that shared setup, including goal and compaction continuations, without copying them into each continuation message.
|
|
193
|
+
|
|
192
194
|
### Supported modes and navigation
|
|
193
195
|
|
|
194
196
|
Pi defaults to fullscreen. Use `--tui-mode regular` for one invocation or set `"tuiMode": "regular"` in [Pi settings](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/settings.md#terminal-and-display) to restore terminal-owned scrollback. KillerOS leaves Pi's `tuiMode` and `quietStartup` preferences unchanged.
|
|
@@ -201,7 +203,7 @@ Pi defaults to fullscreen. Use `--tui-mode regular` for one invocation or set `"
|
|
|
201
203
|
|
|
202
204
|
With Pi's default [keybindings](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/keybindings.md#fullscreen), `Home` and `End` move within the current editor line. In fullscreen mode, `Ctrl+Home` and `Ctrl+End` scroll to the transcript's beginning or end without moving the editor cursor. KillerOS inherits these bindings and preserves user overrides.
|
|
203
205
|
|
|
204
|
-
Pi
|
|
206
|
+
Pi reports program status through OSC 7501 in supported terminals. Each question step reports `blocked` and restores the previous status after an answer, cancellation, or abort. Native confirmation dialogs do the same. `PI_PROGRAM_STATUS=1` forces reporting and `PI_PROGRAM_STATUS=0` disables it. KillerOS preserves the preference and uses Pi's native reporting. See [program status](https://github.com/earendil-works/pi/blob/v1.2.0/packages/coding-agent/docs/terminal-setup.md#program-status).
|
|
205
207
|
|
|
206
208
|
### Tool selection and codemode
|
|
207
209
|
|
|
@@ -213,7 +215,7 @@ Pi's native `--tools` and `--exclude-tools` support `*` patterns. Quote patterns
|
|
|
213
215
|
|
|
214
216
|
Excluding the goal tool pauses goals that are active before any model request. A later ordinary request with a blocked goal still runs, but cannot record completion if the tool is excluded. See [Pi tool selection](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/cli.md#tools).
|
|
215
217
|
|
|
216
|
-
Pi
|
|
218
|
+
Pi accepts lists containing only exact `+name` and `-name` entries to change the default selection:
|
|
217
219
|
|
|
218
220
|
```bash
|
|
219
221
|
pi --tools +codemode
|
|
@@ -222,7 +224,7 @@ pi --tools +codemode,-write
|
|
|
222
224
|
|
|
223
225
|
Plain allowlists replace the selection. Pi rejects mixed lists such as `read,+codemode` and modifier patterns such as `-killeros_*`. Use `--exclude-tools "killeros_*"` for wildcard exclusions.
|
|
224
226
|
|
|
225
|
-
|
|
227
|
+
A `-name` modifier does not reliably prevent an extension tool from activating on registration or reload. To exclude the goal tool, use:
|
|
226
228
|
|
|
227
229
|
```bash
|
|
228
230
|
pi --exclude-tools killeros_goal_update
|
|
@@ -299,9 +301,12 @@ The default suite is authoritative. To run the installed CLI and native-terminal
|
|
|
299
301
|
|
|
300
302
|
```bash
|
|
301
303
|
node --test --experimental-strip-types --test-name-pattern="installed Pi CLI|installed Pi terminal|terminal driver reports|RPC driver controls" test/PiExtensionContract.test.ts test/PiTerminalControls.test.ts test/PiRpcControls.test.ts
|
|
304
|
+
node --test --experimental-strip-types test/PiStartup.test.ts
|
|
302
305
|
```
|
|
303
306
|
|
|
304
|
-
Development dependencies
|
|
307
|
+
Development dependencies and the minimum supported Pi version are 1.2.0. CI checks the Node.js floor and current LTS on Linux and Windows, plus the minimum and latest compatible Pi releases. Compatibility installs leave the tracked manifest and lockfile unchanged. Required jobs repeat startup lifecycle checks and installed CLI and terminal pilots five times without forced exit. The latest-Pi job also repeats cancellation lifecycle checks five times. Each job runs the full default suite once.
|
|
308
|
+
|
|
309
|
+
CLI, terminal, process-control, and Git branch-isolation failures include nested errors in the test output and save a bounded `failure.txt` in the retained fixture directory. Failed CI jobs upload only these reports as `test-failures-*` artifacts, retained for seven days. Successful scenarios create no reports. A passing rerun does not establish the cause of an intermittent failure.
|
|
305
310
|
|
|
306
311
|
## Contribution and release expectations
|
|
307
312
|
|
|
@@ -339,8 +344,8 @@ Keep the job if those prerequisites are unmet.
|
|
|
339
344
|
|
|
340
345
|
## Known issues and limits
|
|
341
346
|
|
|
342
|
-
-
|
|
343
|
-
- Pi
|
|
347
|
+
- Windows Node 24.19.0 can crash during native RPC shutdown with Pi 1.2.0. RPC pilots skip that exact Node version, not other Windows versions. Use Node 22.19.0 or 24.20.0+, which includes [Node's shutdown fix](https://github.com/nodejs/node/pull/61999). Terminal pilots and cleanup controls still run on 24.19.0.
|
|
348
|
+
- Pi's `-name` tool modifiers do not reliably exclude extension tools. Use `--exclude-tools`, as described in [Tool selection and codemode](#tool-selection-and-codemode).
|
|
344
349
|
- Passive Git scans treat CRLF text as unchanged when it normalizes to the indexed LF content, including with `text=auto eol=lf` or bare `eol=lf`. After a size-changing rewrite, Git's index stat cache can still make `git status` report a modification even when `git diff` is empty.
|
|
345
350
|
- Questions require TUI mode. Print and JSON modes do not support goals or proactive compaction. See [Supported modes and navigation](#supported-modes-and-navigation).
|
|
346
351
|
|
package/killeros/goal-runtime.ts
CHANGED
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
transitionGoalState,
|
|
11
11
|
type GoalTransitionOptions,
|
|
12
12
|
} from "./goal-state.ts";
|
|
13
|
-
import { resolvePersonalInstructions } from "./personal-instructions.ts";
|
|
14
13
|
import type { GoalRuntime, GoalState, GoalStatus } from "./runtime.ts";
|
|
15
14
|
import { safeTerminalText } from "./safe-terminal-text.ts";
|
|
16
15
|
|
|
@@ -284,7 +283,7 @@ function sendGoalTurn(
|
|
|
284
283
|
try {
|
|
285
284
|
pi.sendMessage({
|
|
286
285
|
customType: GOAL_CONTINUATION_TYPE,
|
|
287
|
-
content: goalContinuationMessage(state
|
|
286
|
+
content: goalContinuationMessage(state),
|
|
288
287
|
display: false,
|
|
289
288
|
}, { triggerTurn: true, deliverAs: "followUp" });
|
|
290
289
|
return true;
|
|
@@ -396,13 +395,8 @@ function goalSystemPrompt(state: GoalState): string {
|
|
|
396
395
|
return goalInstructions(state, "Active KillerOS goal");
|
|
397
396
|
}
|
|
398
397
|
|
|
399
|
-
function goalContinuationMessage(state: GoalState
|
|
400
|
-
|
|
401
|
-
if (ctx.isProjectTrusted()) {
|
|
402
|
-
const personal = resolvePersonalInstructions(ctx.cwd);
|
|
403
|
-
if (personal) sections.push(personal);
|
|
404
|
-
}
|
|
405
|
-
return sections.join("\n\n");
|
|
398
|
+
function goalContinuationMessage(state: GoalState): string {
|
|
399
|
+
return goalInstructions(state, "KillerOS long-running goal turn");
|
|
406
400
|
}
|
|
407
401
|
|
|
408
402
|
export function isGoalModeSupported(ctx: ExtensionContext): boolean {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "killeros",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.7",
|
|
4
4
|
"description": "TUI, goals, and workflow automation for the Pi coding agent",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -45,16 +45,15 @@
|
|
|
45
45
|
]
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
|
-
"@earendil-works/pi-ai": ">=1.
|
|
49
|
-
"@earendil-works/pi-coding-agent": ">=1.
|
|
50
|
-
"@earendil-works/pi-tui": ">=1.
|
|
48
|
+
"@earendil-works/pi-ai": ">=1.2.0 <2",
|
|
49
|
+
"@earendil-works/pi-coding-agent": ">=1.2.0 <2",
|
|
50
|
+
"@earendil-works/pi-tui": ">=1.2.0 <2",
|
|
51
51
|
"typebox": ">=1.1.38 <2"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@earendil-works/pi-ai": "1.
|
|
55
|
-
"@earendil-works/pi-coding-agent": "1.
|
|
56
|
-
"@earendil-works/pi-
|
|
57
|
-
"@earendil-works/pi-tui": "1.1.0",
|
|
54
|
+
"@earendil-works/pi-ai": "1.2.0",
|
|
55
|
+
"@earendil-works/pi-coding-agent": "1.2.0",
|
|
56
|
+
"@earendil-works/pi-tui": "1.2.0",
|
|
58
57
|
"@types/node": "24.12.4",
|
|
59
58
|
"@xterm/headless": "6.0.0",
|
|
60
59
|
"eslint": "^10.9.1",
|
package/themes/killeros.json
CHANGED