Skip to content

chore: release v0.5.0 - #18

Merged
FrancoisChastel merged 4 commits into
mainfrom
release/v0.5.0
Oct 8, 2026
Merged

FrancoisChastel merged 4 commits into
mainfrom
release/v0.5.0

Conversation

@FrancoisChastel

@FrancoisChastel FrancoisChastel commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

What

Release v0.5.0. It carries two features:

  • OpenAI's Decisions API in its public beta (new in this PR). OpenAI opened /v1/decisions to every developer on October 6, 2026 and published an API reference. The request jev-code already sent matches it, so existing JEV_CODE_PROVIDER=openai setups keep working. What the reference adds is handled: a question the model declines ({ "type": "refusal", "name": ... }) is reported as status: "refused" with the cautious outcome instead of invalid_response, and jev_ask lists such ids under refused. Score probabilities are keyed by the level index the API returns. Docs drop the preview caveats, doctor --live quotes a 403 instead of calling it a preview restriction, and CI runs the live tests against OpenAI when an OPENAI_API_KEY secret exists.
  • A System One gateway of your own, from feat: reach a System One gateway of your own through TYPESAFE_BASE_URL #17, unchanged. Merging this PR with a merge commit also marks feat: reach a System One gateway of your own through TYPESAFE_BASE_URL #17 as merged.

Commits: 61178cb (#17), da8d682 (Decisions API), 21e5a1e (a test-runner fix found while testing live), and the release commit (npm version 0.5.0, which synced the plugin manifest, skill metadata, .mcp.json, and the pinned commands in the README and guides, plus the dated changelog heading).

Verified live against OpenAI's Decisions API with a temporary key, which was never written to the repository, CI, or this PR:

Check Result
doctor --live ok via OpenAI Decisions API, gpt-6-luna
npm run test:e2e 2 passed
All five tools on the examples/ payloads every item answered, no status; score probabilities keyed 0 to 3

Testing live exposed that npm run test:e2e never found the suite: vitest.config.ts excluded tests/e2e for every run, so the CI live job could not have run either. 21e5a1e fixes that. Refusals did not occur on these inputs; they are covered by unit tests through the real wire.

How to verify

npm run check
npx vitest run tests/core/wires.test.ts tests/tools/registry.test.ts
OPENAI_API_KEY=... JEV_CODE_PROVIDER=openai node dist/cli.js doctor --live
OPENAI_API_KEY=... JEV_CODE_PROVIDER=openai npm run test:e2e

After merging, publish with:

git switch main && git pull && git tag v0.5.0 && git push origin v0.5.0

Checklist

  • npm run check passes
  • Tests added or updated
  • Docs updated where the contract or setup changed (README, docs/harnesses, skill references)
  • CHANGELOG.md entry, dated under 0.5.0

A gateway that speaks POST /v1/systemone is the proxy case the TypeSafe SDK
already has: the key in TYPESAFE_API_KEY, the address in TYPESAFE_BASE_URL,
TYPESAFE_DEFAULT_MODEL when the model id differs. Document it as such instead
of adding a parallel provider, and make the path first-class:

- setup offers "Other System One gateway" when asking which host a pasted key
  is for, asks for the URL and model, and stores the three variables together;
  an unusable URL stores nothing.
- TYPESAFE_BASE_URL is validated before any request (absolute http(s), no
  credentials, query or fragment, not ending in /v1/systemone). Failures are a
  configuration problem in doctor and setup and never echo the value.

Supersedes #16, keeping its goal and dropping the separate JEV_CODE_* variable
set, the custom retry default, and the unrelated ignore-file changes.
OpenAI opened /v1/decisions to every developer on 2026-10-06 and published a
reference. The request jev-code already sent matches it, so existing setups keep
working; the changes follow what the reference adds:

- A question the model declines comes back as { type: "refusal", name }. The
  wire lists those ids under `refused`, and every tool reports the item as
  status "refused" with the cautious outcome instead of "invalid_response",
  since a retry will not change it.
- Score probabilities are keyed by the level index the API returns.
- doctor quotes a 403 instead of calling it a preview restriction.
- Docs drop the preview caveats; CI runs the live tests against OpenAI when an
  OPENAI_API_KEY secret is set.
vitest.config.ts excluded tests/e2e for every run, so `npm run test:e2e` exited
with "No test files found" and the CI live job could never exercise a host.
Exclude the suite only when JEV_CODE_E2E is unset. Found while running the live
tests against OpenAI's Decisions API for v0.5.0; both pass against gpt-6-luna.
@FrancoisChastel
FrancoisChastel merged commit 74a4569 into main Oct 8, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant