Skip to content

Commit ae6f10b

Browse files
committed
release: pi-codex-goal 0.2.0
Raise the supported Pi floor to 0.84.0, migrate emitted API contracts, and validate the packed extension with isolated Pi 0.84 runtime and tmux goal flows.
1 parent 35048b0 commit ae6f10b

11 files changed

Lines changed: 149 additions & 83 deletions

AGENTS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ pi install -l npm:pi-codex-goal
1717
pi install -l https://github.com/fitchmultz/pi-codex-goal@vX.Y.Z
1818
```
1919

20-
Those write duplicate package entries under `.pi/` for the current project, causing `get_goal`, `create_goal`, and `update_goal` tool-registration conflicts with the global local-checkout install. For install-path release verification, use an isolated temp project/config directory or remove the project-local entries immediately after the check. With Pi 0.79+ project trust, pass `--approve` for isolated project-local package install/list/non-interactive smoke commands when those commands must load `.pi/settings.json`. If conflicts appear, inspect `pi list --approve` and `.pi/settings.json`, then remove any project-local `pi-codex-goal` npm/GitHub installs so only the global local-checkout package remains active.
20+
Those write duplicate package entries under `.pi/` for the current project, causing `get_goal`, `create_goal`, and `update_goal` tool-registration conflicts with the global local-checkout install. For install-path release verification, use an isolated temp project/config directory or remove the project-local entries immediately after the check. On Pi 0.84.0 or later, pass `--approve` for isolated project-local package install/list/non-interactive smoke commands when those commands must load `.pi/settings.json`. If conflicts appear, inspect `pi list --approve` and `.pi/settings.json`, then remove any project-local `pi-codex-goal` npm/GitHub installs so only the global local-checkout package remains active.
2121

2222
## Verify before finishing
2323

@@ -50,4 +50,4 @@ The required gate runs the full suite plus a real model-backed goal-tool smoke o
5050
| Recovery | `recovery*.ts` |
5151
| Domain | `state.ts`, `types.ts`, `goal-persistence.ts` |
5252

53-
Current structural audit and remediation record: `docs/CODEBASE_AUDIT.md`.
53+
Historical 0.1.33 structural audit and remediation record: `docs/CODEBASE_AUDIT.md`.

CHANGELOG.md

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

3+
## 0.2.0 - 2026-08-06
4+
5+
- Raise the minimum supported Pi version to 0.84.0 and pin the development/type-validation baseline to the exact 0.84.0 release.
6+
- Align the SDK runtime smoke with Pi 0.84.0's public `Agent.streamFunction` API and use current pi-ai root exports instead of the compatibility subpath.
7+
- Align the extension test harness with Pi 0.84.0's `registerMarkdownTransformer()` and read-only `scopedModels` context contracts, and serialize the mutating goal tools because they share one session state machine.
8+
- Audit the full repository against every Pi 0.84.0 breaking change; the extension does not use JSON/RPC streaming, model-auth forwarding, dynamic providers, pi-agent-core harness sessions, custom harness filesystems, or remote sessions, so those migrations require no runtime compatibility code.
9+
- Require Pi 0.84.0 or later in install and compatibility documentation while retaining optional wildcard Pi peers as required by Pi package loading.
10+
- Refresh the development lockfile, including the patched `protobufjs` 7.6.5 transitive dependency.
11+
12+
### Validation
13+
14+
- Ran `npm run verify` and a clean public-registry `npm ci && npm run verify` under Pi 0.84.0: `tsc --noEmit`, 6 platform-smoke checks, and 333 regular tests passed in each run.
15+
- Ran `npm audit --omit=optional` with no vulnerabilities and `npm publish --dry-run --ignore-scripts --registry=https://registry.npmjs.org`; both passed.
16+
- Packed the release and installed it project-locally with an isolated Pi 0.84.0 executable/config, verified extension and prompt discovery over RPC, and completed a tmux model-backed `/goal` flow that created and read an exact file, called `get_goal`, called `update_goal`, and rendered the final fullscreen `Goal achieved` status.
17+
- The Crabbox macOS/Ubuntu/native-Windows matrix could not start on this shared host: its doctor stopped before every product suite because Crabbox, model-auth environment, localhost SSH, and Parallels `prlctl` were unavailable. No Crabbox product test ran or failed; the matrix remains required and unchanged for capable environments.
18+
319
## 0.1.39 - 2026-07-28
420

521
- Pause active goals when a hidden continuation run only calls `get_goal` / namespaced `*__get_goal` and makes no actionable progress, so blocked status-inspection loops stop and surface `/goal resume` attention instead of spinning forever (#47).

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ Goal state is stored in pi session custom entries, so it follows session history
1212

1313
## Install
1414

15+
Requires Pi 0.84.0 or later.
16+
1517
Install from npm:
1618

1719
```sh
@@ -45,7 +47,7 @@ pi install .
4547

4648
On this maintainer machine, the active install is a global/user package that already points at this checkout; do not also leave a project-local install under this repository's `.pi/` settings. Duplicate local and global installs both try to register `get_goal`, `create_goal`, and `update_goal`, which causes tool-registration conflicts. For install-path release checks, use an isolated temp project/config directory or remove the project-local entry immediately after the check.
4749

48-
Compatibility note: this package is tested against the current pi release during each package update. The current source tree targets Pi 0.80.10 on Node 24 for the next package release. The latest published npm artifact remains the reproducible source of truth for its own published version's metadata. Pi-bundled runtime packages remain optional wildcard peers, so npm peer ranges do not hard-block users from trying newer pi releases; runtime behavior is only verified against the tested baseline until a follow-up package release confirms it.
50+
Compatibility note: this package supports Pi 0.84.0 or later on Node 24. The latest published npm artifact remains the reproducible source of truth for its own published version's metadata. Pi-bundled runtime packages remain optional wildcard peers as required by Pi package loading; the support floor is declared here and validated by the source tree's exact Pi 0.84.0 development dependencies.
4951

5052
Release note: npm installs and pinned GitHub tags are the reproducible release artifacts. Installing from the repository default branch can include unreleased changes that will ship in a future package release, even when `package.json` still identifies the latest published version.
5153

@@ -81,10 +83,10 @@ npm run smoke:platform:all
8183

8284
`smoke:platform:all` runs the doctor before any target suite.
8385

84-
That local gate runs `npm run verify`, packs the package, installs the packed package into a clean pi project, checks `pi list`, and runs a real model-backed goal-tool smoke on macOS, Ubuntu Linux, and native Windows. Pi 0.79+ project trust is handled explicitly with `--approve` inside the isolated smoke projects so project-local package settings and the packed extension load in non-interactive runs. The runtime smoke defaults to `zai/glm-5.2`; override it with `PLATFORM_SMOKE_MODEL` and configure forwarded auth env vars with `PLATFORM_SMOKE_AUTH_ENV`. Setup and artifact details: [docs/platform-smoke.md](docs/platform-smoke.md).
86+
That local gate runs `npm run verify`, packs the package, installs the packed package into a clean pi project, checks `pi list`, and runs a real model-backed goal-tool smoke on macOS, Ubuntu Linux, and native Windows. Pi 0.84.0-or-later project trust is handled explicitly with `--approve` inside the isolated smoke projects so project-local package settings and the packed extension load in non-interactive runs. The runtime smoke defaults to `zai/glm-5.2`; override it with `PLATFORM_SMOKE_MODEL` and configure forwarded auth env vars with `PLATFORM_SMOKE_AUTH_ENV`. Setup and artifact details: [docs/platform-smoke.md](docs/platform-smoke.md).
8587

8688
Project agent notes and module map: [AGENTS.md](AGENTS.md).
87-
Current structural audit and remediation record: [docs/CODEBASE_AUDIT.md](docs/CODEBASE_AUDIT.md).
89+
Historical 0.1.33 structural audit and remediation record: [docs/CODEBASE_AUDIT.md](docs/CODEBASE_AUDIT.md).
8890

8991
## Interactive smoke tests
9092

docs/platform-smoke.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,14 +76,14 @@ Each required target runs `platform-build` and `goal-runtime-smoke`.
7676
4. Run `npm pack`.
7777
5. Create a clean target-local pi project.
7878
6. Install the packed tarball into that project with `npm install --no-save`.
79-
7. Run `pi install -l ./node_modules/pi-codex-goal --approve` from the clean project so Pi 0.79+ can read and write project-local package settings for this isolated command.
79+
7. Run `pi install -l ./node_modules/pi-codex-goal --approve` from the clean project so supported Pi 0.84.0-or-later hosts can read and write project-local package settings for this isolated command.
8080
8. Run `pi list --approve` and assert `pi-codex-goal` is registered from the packed install.
8181
9. Assert the smoke never used the source shortcut `pi -e .` or `pi --extension .`.
8282

8383
### `goal-runtime-smoke`
8484

8585
1. Re-pack and install the package into a clean target-local pi project.
86-
2. Run real `pi --approve --model <model> -p <prompt>` against that packed install so non-interactive Pi 0.79+ loads the isolated project-local package settings.
86+
2. Run real `pi --approve --model <model> -p <prompt>` against that packed install so non-interactive Pi 0.84.0-or-later hosts load the isolated project-local package settings.
8787
3. Prompt the model to call the actual goal tools, create a marker file, verify it with the built-in `read` tool, call `update_goal`, and confirm completion.
8888
4. Capture pi stdout/stderr and session JSONL.
8989
5. Assert the final marker, verified file, `pi-codex-goal` custom entries, built-in `read` tool evidence, and complete goal status.
@@ -142,7 +142,7 @@ The suites record failures as artifacts before reporting failure so the host can
142142
- Keep `platform-build` behavior in the shared Node orchestrator; native Windows may use only a thin PowerShell wrapper to launch it.
143143
- Run the repository's existing validation command on every required target.
144144
- Test the packed package, not `pi -e .`.
145-
- Pass `--approve` for isolated project-local package smoke commands and non-interactive runtime smokes; Pi 0.79+ otherwise skips project-local settings and packages when no saved trust decision exists.
145+
- Pass `--approve` for isolated project-local package smoke commands and non-interactive runtime smokes; Pi 0.84.0-or-later hosts otherwise skip project-local settings and packages when no saved trust decision exists.
146146
- Include a real model-backed pi run so release claims are not based on unit tests alone.
147147
- Assert built-in `read` evidence in the model-backed runtime smoke so post-tool goal completion stays covered.
148148
- Keep project-specific defaults in `platform-smoke.config.mjs`; use environment variables only for local overrides.

0 commit comments

Comments
 (0)