All notable user-visible changes to psi are documented here.
Format follows Keep a Changelog.
Version scheme: MAJOR.MINOR.PATCH where PATCH = git rev-list HEAD --count at release time.
claude-opus-4-8) is now available in the Anthropic model catalog with adaptive thinking, native JSON Schema structured output, and mid-conversation system-message capability metadata./speed command and persisted :speed-mode config select a provider throughput tier (:fast maps to Anthropic speed: "fast" and OpenAI chat-completions service_tier: "flex")./effort command and persisted :effort-override config control provider reasoning effort independently of /thinking; Anthropic adaptive :xhigh now sends "highest" while OpenAI transports cap to provider-supported "high".:inject-mid-system-message extension API helper / psi.extension/inject-mid-system-message, gated by the queryable :psi.agent-session/model-supports-mid-system-messages capability.:psi.ui/..., including a discoverable make-visible action descriptor for Emacs and explicit unsupported/headless states for other UI modes.text.format JSON Schema, while remaining distinct from Chat Completions response_format.review-task-design workflow: reviews design.md only for ambiguities and inconsistencies, loops until no actionable feedback remains. Invokable via /delegate review-task-design.create-task-plan workflow: given a stable design.md, creates plan.md and steps.md for a Munera task in a single pass. Invokable via /delegate create-task-plan..md single-step workflow bodies now support {{input}} and {{original}} template variables with automatic wiring — no frontmatter declaration needed. {{input}} expands to the workflow input text; {{original}} expands to the carried original request context..md single-step workflows now support a vars: frontmatter key (EDN string) for declaring custom variable bindings with :from :workflow-input (plus optional :path) or :from :workflow-original sources.{{varname}} tokens in .md workflow bodies that are neither standard (input, original) nor declared in vars: produce a compile-time error at workflow load, catching typos and missing declarations before runtime.bb release --dry-run now only dispatches the non-publishing GitHub Release workflow dry run for the current HEAD and latest release version label, with no local changelog stamping, version-resource edits, commits, tags, or pushes.review-task-design and review-task-plan now run ambiguity/inconsistency follow-up steps only when that reviewer reports PASS_STATUS: ACTIONABLE_FEEDBACK; PASS_STATUS: REVIEW_COMPLETE skips the no-op follow-up while still continuing the remaining review cycle. Plan-review follow-ups now write to steps.md instead of design-steps.md.review-implementation workflow renamed to review-task-implementation; the old name is no longer available. Update any saved /delegate review-implementation invocations to /delegate review-task-implementation.review-task-until-clear workflow renamed to review-task-plan and narrowed to plan.md/steps.md review only (design review is now handled by review-task-design). The old name is no longer available.review-task-implementation now includes a review-task-docs step that reviews user-facing documentation (README.md, doc/, changelog) as part of the implementation review chain.1 kept run via [:config :completed-workflow-run-retention-count]; older retained terminal runs are removed from workflow listing/introspection along with their linked workflow-owned child-session trees.delegate tool results that return plain text now remain visible at the caller tool-result boundary, so unknown workflow errors and empty delegate lists no longer look like silent successes.delegate list now shows active same-session delegated workflow runs from the delegate background-job visibility surface, keeps workflow status separate from delegate attempt status, and delegate remove cleans up active delegate background jobs before deleting their canonical run.review-task-design and review-task-plan now use deterministic routing for their final clarity-status step, avoiding split-brain LLM judge decisions that could loop until iteration exhaustion after reviewers already reported completion.review-step now routes review completion deterministically from the review actor's PASS_STATUS: line, so PASS_STATUS: REVIEW_COMPLETE stops without running no-op follow-up work and actionable feedback loops back through deterministic follow-up routing instead of an LLM/session status step.gpt-5.5 sessions now route through the ChatGPT/Codex transport, matching Codex account access instead of failing against the platform chat-completions quota path.~/.psi/agent/sessions/ store; non-persistence is now explicit at shared test/runtime seams and persistence tests use isolated temporary session roots.psi --tui startup now resolves its shipped runtime dependency closure from jar-owned release metadata packaged at psi/release-deps.edn, so release-tag :jar policy no longer misses TUI runtime dependencies such as charm.clj.psi on PATH, preventing local smoke runs from silently proving an older installed release instead of the checkout under test.psi launcher packaging now includes the full stamped-runtime component surface and required runtime dependencies, so installed bbin releases can start and print --help successfully under release-tag :jar policy.psi launcher installs now resolve psi/github and psi/edit-clj correctly under :jar policy, preventing startup failure from missing psi-owned source-policy defaults.psi --help now prints non-interactive CLI usage and exits successfully instead of starting an interactive session.Release GitHub Actions workflow now supports manual workflow_dispatch dry runs with ref, publish, and release_version inputs so release build validation can run without publishing to Clojars or creating a GitHub Release.bbin launcher entrypoint for published artifacts, not just direct psi.main startup.psi launcher installs now resolve psi/github and psi/edit-clj in :jar policy correctly; their psi-owned catalog entries now include Maven defaults instead of failing at startup with Psi-owned catalog entry is missing source policy defaults.target/psi-unreleased.jar.target/psi-unreleased.jar while another smoke test is inspecting it.target/psi-unreleased.jar, preventing release/test races where one smoke test rebuilt target/ while another was inspecting the jar.:psi launcher alias, preventing installed psi releases from omitting extracted runtime components such as state-kernel.:temperature field (range [0.0, 2.0]). When set, the value is threaded through to the AI provider request. When absent, the provider default applies. Applies to both :type :session steps and :type :llm judge specs.psi-tool now supports action: "mutate" for invoking registered runtime mutations with structured success/error reports.:psi.runtime-session/active-id, :psi.runtime-session/list, :psi.runtime-session/count, :psi.persisted-session/list, and :psi.persisted-session/list-all.:psi.agent-session/context-session-summaries, a compact session inventory for operational selection, alongside the explicit runtime-session root attrs.edit-clj extension and tool: structural Clojure/EDN form replacement by S-expression equality, preserving surrounding file formatting and supporting optional line-range filtering.psi-tool mutation execution now preserves an explicitly supplied business :session-id for session-scoped mutations like psi.extension/close-session, instead of silently retargeting them to the invoking session.logprobs/perplexity deterministic operation: calculates perplexity of the most recent logprob-bearing reply for a session, available to workflows via invoke steps.gh-issue-refine workflow: the discover step is now a deterministic :invoke step backed by the new psi/github extension, replacing a non-deterministic AI builder-delegate step. Issue selection is fully determined by the gh CLI and selection rules — no AI sampling occurs during issue discovery.:provider as a string now resolve provider-scoped auth, request options, and runtime model lookup consistently instead of falling back to built-in provider auth behavior.:openai-completions models now project /thinking off into chat_template_kwargs.enable_thinking=false, allowing local OpenAI-compatible servers to disable hidden reasoning through the existing thinking-level control.close-session and close-session-tree mutations.auto-session-name are now automatically closed after use.HTTPS_PROXY, HTTP_PROXY, ALL_PROXY); see Configuration and Custom providers.M-r searches prompt input history via completing-read (see Emacs UI).Can you improve this documentation? These fine people already did:
Hugo Duncan & Test AuthorEdit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |