jeopi-cli 16.4.5 → 16.5.0
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 +10 -0
- package/dist/cli.js +3194 -3193
- package/dist/types/config/settings-schema.d.ts +27 -6
- package/dist/types/session/blob-store.d.ts +10 -1
- package/dist/types/session/exit-diagnostics.d.ts +11 -0
- package/package.json +14 -14
- package/src/cli/config-cli.ts +23 -7
- package/src/config/settings-schema.ts +32 -7
- package/src/config/settings.ts +43 -2
- package/src/extensibility/plugins/legacy-pi-bundled-keys.ts +1 -0
- package/src/extensibility/plugins/legacy-pi-bundled-registry.ts +2 -0
- package/src/internal-urls/docs-index.generated.txt +2 -2
- package/src/sdk.ts +30 -3
- package/src/session/agent-session.ts +16 -1
- package/src/session/blob-store.ts +19 -2
- package/src/session/exit-diagnostics.ts +106 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [16.5.0] - 2026-08-19
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Resuming a session whose previous process died mid-turn no longer replays a non-terminal transcript to the provider. An abnormal exit recorded after an unanswered tool call (or a first-turn user message) now appends exactly one terminal aborted assistant record, so the partial history is preserved while the restored context stays valid. Applied on session load, after startup model selection (a first-turn user tail has no assistant metadata to copy from), and on `/switch`-style session reloads. Ported from oh-my-pi (upstream `e3e5bf8`, `de23690`, `a420dd1`, `bdad9ca`, `72b1ddf`, taken at their combined final state; the internal `readPendingToolCalls` wrapper was inlined into `readSessionExit` to satisfy jeopi's no-tiny-functions rule, and the recovery record's `errorMessage` names jeopi rather than OMP).
|
|
10
|
+
- A malformed or temporarily unreadable `config.yml` is no longer treated as empty settings and then overwritten by the next setting change, which could erase broker tokens, model roles, and provider configuration wholesale. The save path now reads through a dedicated loader where a missing file is the only safe empty base: an invalid file is moved aside as `config.yml.broken-<ts>-<pid>` and the write is refused and re-queued, and an unreadable file aborts the write outright. Ported from oh-my-pi (upstream coding-agent 17.1.5, reduced to the data-loss fix — upstream's full YAML write-lock and multi-filename machinery was not adopted).
|
|
11
|
+
- `jeopi config list` no longer prints credential settings in plain text. `auth.broker.token`, `searxng.token`, `searxng.basicPassword`, and `dev.autoqaPush.token` are now marked as credentials and render as `********` in human output; `--json` omits the value entirely and reports `redacted: true` rather than substituting a placeholder a consumer could write back. An unset or cleared credential keeps its ordinary rendering, and `config get <path>` is unchanged since it is an explicit single-value request. Ported from oh-my-pi (upstream coding-agent 17.1.4, adapted: jeopi has no legacy `ui.secret` spelling, so `isCredential` reads only the explicit marker).
|
|
12
|
+
- Closed a path-traversal hole in the session blob store: `parseBlobRef` returned the reference suffix unvalidated, and `get`/`getSync`/`has` feed that value straight into `path.join(dir, hash)`, so a crafted session file containing `blob:sha256:../../…` could read files outside the blob directory. The suffix must now match a canonical 64-char lowercase hex digest. Ported from oh-my-pi (upstream coding-agent 17.1.0).
|
|
13
|
+
- Browser stealth patches are actually applied again. `patchedDependencies` declared `puppeteer-core@25.1.0` while the lockfile resolved `25.4.0` through a `^25.1.0` range, so Bun silently applied nothing and all 16 stealth modifications were absent from the installed tree. The patch is rebased onto 25.4.0 and the dependency is pinned to an exact version so the two cannot drift apart again. The two hunks that no longer applied were upstream renaming `debugError` to `debugCatchError`; both stealth behaviors (main-realm binding init, and never sending the highly-detectable `Runtime.enable`) are preserved. `arktype` is pinned for the same reason — its `^2.2.0` range resolved to the patched `@ark/schema@0.56.2` only by luck.
|
|
14
|
+
|
|
5
15
|
## [16.4.3] - 2026-07-22
|
|
6
16
|
|
|
7
17
|
### Added
|