Package Release Info

pi-coding-agent-1.0.4-bp160.1.1

Update Info: Base Release
Available in Package Hub : 16.0

platforms

AArch64
ppc64le
s390x
x86-64

subpackages

pi-coding-agent
pi-coding-agent-examples

Change Logs

* Tue Oct 06 2026 Martin Pluskal <mpluskal@suse.com>
- Update to version 1.0.4 (1.0.3 was superseded the same day and
  never submitted):
  * BREAKING: provider azure-openai-responses renamed to azure,
    now also serving Azure Foundry Chat Completions
    (azure/deepseek-v4-pro first). Rename the provider key in
    auth.json (or run /login again), models.json and
    settings.json (defaultProvider, enabledModels and
    modelThinkingLevels); sessions on the old provider fall back
    and lose prompt cache. AZURE_OPENAI_* env vars unchanged
  * --tools and --exclude-tools take *-patterns and --no-mcp
    disables MCP for one run; --tools keeps MCP tools unless an
    entry starts with mcp__
  * Codemode read() on image files yields an image block image()
    shows, and image() also saves each image to a temp file for
    later turns
  * Fix fenced-code highlighting past the first line, MCP OAuth
    native-client registration, MCP shutdown racing a connecting
    server, Bedrock stalled-stream retries and frozen codemode
    built-ins, plus ChatGPT-login, EIO-on-closed-terminal and
    output-file-permission fixes
  * Many more fixes and improvements; see upstream's release notes
    for the full list
- Refresh the vendored node_modules 1.0.2 -> 1.0.4: the ten
  @earendil-works packages move to 1.0.4; nanoid, postcss and
  vite move too but are dev-only and not shipped. Still 119
  shipped modules and the licence union is unchanged
  * CVE-2026-102276 (boo#1283188): brace-expansion is 5.0.12, above
    the 5.0.10 fix floor, so the package is not affected by it
  * CVE-2026-102277 (boo#1283392) and CVE-2026-102278
    (boo#1283412): brace-expansion is 5.0.12, at the 5.0.12 and
    above the 5.0.11 fix floors, so the package is not affected
    by them
* Sun Oct 04 2026 Martin Pluskal <mpluskal@suse.com>
- Update to version 1.0.2: patch releases on the 1.0 API, with no
  breaking changes
  * models.json takes samplingParamsByThinkingLevel next to the
    existing samplingParams, so an OpenAI-compatible model can set
    temperature, top_p and the like separately for off, minimal, low,
    medium, high, xhigh and max. Model defaults, the effective level's
    override and the request are merged per key, modelOverrides merges
    per level, and the levels are pi's own, not the provider's
    thinkingLevelMap values. Only openai-completions, openai-responses
    and azure-openai-responses apply them
  * MCP servers can be enabled, disabled or re-scoped per project
    from a .pi/mcp.json entry without a command or url, and /mcp
    toggles a user-level server for the current project
  * oauth.clientRegistration: "cimd" identifies pi by its Client ID
    Metadata Document instead of dynamic client registration
  * pi.registerToolRenderer() picks how calls to a tool that is not
    registered yet are drawn, such as MCP tools in a resumed session
  * Cloudflare's Clef and Clef Flash classifier models are usable
    from codemode scripts and extensions
  * A codemode script printing in a loop now fails at 16 Mi
    characters or 100000 items instead of running pi out of memory
  * MCP tool calls in resumed sessions and HTML exports no longer
    render fully expanded until their server connects
  * JPEG, GIF and WebP images that extensions draw through Image now
    appear in Kitty, Ghostty, WezTerm and Warp, and fullscreen Kitty
    images no longer collapse to a one-row strip after scrolling in
    WezTerm
  * Many more fixes and improvements; see upstream's release notes
    for the full list
- Refresh the vendored node_modules over 1.0.0 -> 1.0.2: the ten
  @earendil-works packages move to 1.0.2, with pi-telemetry the one
  that was already at 1.0.2 in the 1.0.1 tree, plus
  @anthropic-ai/sdk to 0.129.0. No module leaves or joins the 119
  shipped ones and the licence union is unchanged
  * CVE-2026-102276 (boo#1283188): brace-expansion is 5.0.12, above
    the 5.0.10 fix floor, so the package is not affected by it.
    Upstream's 1.0.1 made it a direct dependency, but this package
    vendored 5.0.12 already at 1.0.0
  * CVE-2026-102277 (boo#1283392) and CVE-2026-102278 (boo#1283412):
    brace-expansion is 5.0.12, at the 5.0.12 and above the 5.0.11
    fix floors, so the package is not affected by them
- Fix the %prep comment on Source10: upstream ships no shrinkwrap
  since 1.0.1
* Fri Oct 02 2026 Martin Pluskal <mpluskal@suse.com>
- Update to version 1.0.0. This is a major release with breaking
  behaviour changes, not a patch release:
  * BREAKING: the interactive TUI runs fullscreen by default now,
    so the terminal's normal scrollback is gone. Set tuiMode to
    "regular" in the settings, or pass --tui-mode regular, for
    the old behaviour
  * BREAKING: MCP OAuth credentials are keyed by server name and
    URL instead of by URL alone, so two servers behind one URL can
    hold separate accounts. Credentials written by 0.99.x move to
    the first server that reads them; other servers on the same
    URL have to sign in again
  * BREAKING: MCP sign-in enforces RFC 9207 and rejects an
    authorization response whose iss names another authorization
    server. A server advertising a wrong or missing one needs the
    new oauth.authServerMetadataUrl setting
  * BREAKING: --provider without --model fails now instead of
    silently running another provider's default model
  * BREAKING: codemode scripts have to probe for a tool with
    "name" in tools; typeof tools.name no longer finds it, and
    the codemode description carries one call line per tool
    instead of the full declaration
  * BREAKING: quietStartup also takes "header", which keeps the
    version and key hints but hides the model scope line and the
    loaded-resource listing
  * Sign in with Radius from /login, which can set up the Radius
    MCP server too, and with a copy code for Anthropic when the
    browser runs on another machine
  * Codemode scripts call models.generateImages() to run image
    models with the session's credentials. Codemode needs about
    40% fewer prompt tokens and its errors now name close matches
    and the expected argument shape
  * MCP step-up sign-in keeps the scopes it already had, so a
    server asking for more no longer causes a sign-in loop
  * Fix MCP tools that tool_search loaded being dropped on resume
    and /reload, user messages keeping two full-width copies of
    every rendered line, and slash command completion after
    leading whitespace
  * Fix the memory a long assistant message keeps in the
    transcript (about a fifth of before), colour bleeding past
    highlights in fullscreen mode, and the system theme
    oversaturating pastel palettes
  * Many more fixes and improvements; see upstream's release notes
- Refresh the vendored node_modules: the ten @earendil-works
  packages go 0.99.2 -> 1.0.0 and nothing else in the 119 shipped
  modules moves, so the license union is unchanged. pi-agent-core
  drops its chord, pi-telemetry, diff, ignore and yaml deps, all
  of which other packages in the tree still pull in.
- The codemode sandbox is still WebAssembly only (quickjs.wasm
  plus five .so-named WASI modules, no ELF), so the package stays
  noarch
* Fri Oct 02 2026 Martin Pluskal <mpluskal@suse.com>
- Update to version 0.99.2:
  * MCP servers with the default codemode exposure no longer block
    the first prompt; they are listed in a short mcp_servers
    system prompt section and scripts find their tools with
    searchTools() and describeNamespace()
  * More MCP authentication: oauth.clientName for servers that
    only accept known OAuth clients, and "auth": {"provider": ...}
    to send a provider's /login token to an HTTP server
  * Anthropic workload identity federation from
    ANTHROPIC_FEDERATION_RULE_ID, ANTHROPIC_ORGANIZATION_ID and
    ANTHROPIC_IDENTITY_TOKEN_FILE
  * /reload enables tools newly added to the defaultTools setting
  * Fix codemode image() accepting malformed base64 or
    unsupported image types, which made every later provider
    request fail with HTTP 400
  * Fix codemode scripts calling the wrong MCP tool when two
    names differ only in "-" and "_"; such names now
    normalise to "_"
  * Fix new sessions intermittently ignoring the saved default
    model, or warning that no models are available, for
    extension-registered providers with a stored credential
  * Fix Anthropic requests failing when a tool schema uses
    minimum or maximum, which strict tool use rejects; such
    tools are sent non-strict
  * Fix provider retries firing immediately on an unparseable
    Retry-After date, and prompt submission slowing as a
    session grows
  * Many more fixes and improvements; see upstream's release notes
- Refresh the vendored node_modules: the ten @earendil-works
  packages go 0.99.1 -> 0.99.2 and nothing else in the 119
  shipped modules moves, so the license union is unchanged
  * CVE-2026-102277 (boo#1283392): brace-expansion is 5.0.12,
    at the fix floor, so the package is not affected by it
  * CVE-2026-102278 (boo#1283412): brace-expansion is 5.0.12,
    above the 5.0.11 fix floor, so the package is not
    affected by it
* Wed Sep 30 2026 Martin Pluskal <mpluskal@suse.com>
- Update to version 0.99.1 (upstream jumped from 0.87.1; no
  0.88-0.98 releases exist):
  * Codemode and MCP: model-written JavaScript runs in a QuickJS
    WebAssembly sandbox calling pi's tools in parallel; MCP servers
    over stdio/HTTP with OAuth come from mcp.json and are managed
    with /mcp and pi mcp add|remove|list|login|logout
  * New default system theme follows the terminal's own palette,
    with #rgb/oklch()/okhsl() colors and light/dark rebuilding
  * Sign in with ChatGPT on the OpenAI provider; inherited OpenAI
    Codex provider renamed "OpenAI Codex (legacy)"
  * Experimental virtual models route each request to a physical
    model; llama.cpp models gain classifier support
  * GPT-6.1 Sol joins OpenAI, Azure OpenAI and OpenAI Codex, and
    becomes the default Codex model
  * Built-in extensions and tools are named builtin:<name>,
  - -no-extensions disables them too; tool APIs gain exposure,
    namespaces, annotations, structuredContent, ctx.executeTool()
  * Sessions are created on the first user message, so pi no longer
    loses them when it exits before the first response
  * Many more fixes and improvements; see upstream's release notes
- Refresh package-lock.json (now the full npm-generated lockfile,
  integrity complete) and the vendored node_modules archive:
  116 -> 119 shipped modules, with @earendil-works/pi-codemode,
  @earendil-works/pi-mcp and quickjs-wasi new, openai 6.40.0 ->
  7.19.0 and agent-base/https-proxy-agent 7.x -> 9.x; license union
  unchanged
- The new codemode sandbox ships as WebAssembly only (quickjs.wasm
  plus five .so-named WASI modules, no ELF), so the package stays
  noarch
* Wed Sep 23 2026 Martin Pluskal <mpluskal@suse.com>
- Update to version 0.87.1:
  * New frontier models: Claude Opus 5.5, GPT-6 Sol and Luna
    across providers; Grok 4.7 default for xAI
  * Fix split-turn compaction summaries refused by Claude
    Fable 5.1; invalid --mode values now error out
  * Undici 8.10.2 retained: the 8 CVE batch fixed since
    0.86.1 (CVE-2026-84961, CVE-2026-85024, CVE-2026-85008,
    CVE-2026-84947, CVE-2026-85152, CVE-2026-84890,
    CVE-2026-84933, CVE-2026-85014; boo#1279832)
- Refresh the vendored node_modules
Version: 0.87.0-bp160.1.1
* Tue Sep 22 2026 Martin Pluskal <mpluskal@suse.com>
- Update to version 0.87.0:
  * Model context can be edited append-only without rewriting
    history, and extensions get actionable turn_end and
    agent_before_settle lifecycle boundaries
  * New context_with_system extension event runs on the full
    transcript including system messages
  * Removed the shouldStopAfterTurn agent option; use finishTurn
    and return an end action instead
  * SessionManager is now canonical for AgentSession provider
    context, and ContextEditEntry joins the SessionEntry union
  * Fixed context handlers that filter or slice messages
    dropping the prompt and tool declarations, leaving requests
    without built-in tools
  * /bug no longer uploads in offline mode; local zip exports
    are kept
  * Fixed text files beginning with GIF being misclassified as
    images and omitted from read and CLI @file input
  * Fixed unknown OpenAI-compatible Chat Completions endpoints
    receiving strict tool schemas unless they advertise support
  * Many more fixes; see the upstream release notes
* Mon Sep 21 2026 Martin Pluskal <mpluskal@suse.com>
- Update to version 0.86.1:
  * Meta (Muse subscription) login via /login meta, with automatic
    Model API key refresh, and META_API_KEY support
  * Restore the OSC 52 clipboard fallback when no display is
    available, fixing copy in containers and under WSL
  * Recognise inherited z.ai "Prompt too long" errors as context
    overflow
  * Stop inherited Cerebras models advertising unsupported strict
    tool schemas, which returned HTTP 400 when strict and
    non-strict tools were mixed
  * /bug descriptions keep line breaks from pasted diagnostics,
    and its hints no longer appear for user cancellations
- Changes from version 0.86.0:
  * Prompt cache warming keeps valuable caches alive during long
    tool runs, with cost-aware refreshes
  * Report problems with /bug using redacted diagnostics, an
    optional transcript or an exported ZIP
  * Instruction and tool changes survive resume and branch
    navigation while cached prefixes are retained
  * Offline Radius model catalogue, overlaid with the live one
    when available
  * Per-model compaction budgets for reserved and recent tokens
  * Breaking for extension authors: provider stream inputs take a
    normalized TranscriptContext, ToolCall.arguments and
    ToolResultMessage.details are restricted to JSON-compatible
    values, and user_bash now fails closed
  * Many more fixes and improvements; see upstream's CHANGELOG.md
    for the full list
- Upstream replaced the @mariozechner/clipboard optional addon with
  helpers bundled in @earendil-works/pi-tui, including a prebuilt
  linux-x11 .node that a noarch package cannot ship. It is dropped
  in %build, so xclip, xsel and wl-clipboard are the only local
  clipboard mechanism here; xsel is now recommended too, as pi's
  own error text names it
- Refresh package-lock.json (integrity filled in for the five
  @earendil-works siblings, 26 esbuild platform entries stripped)
  and the vendored node_modules archive to match: 127 to 116
  shipped modules, the @aws-crypto and fast-xml-parser sets gone,
  proxy-agent-negotiate new, license union unchanged
Version: 0.85.1-bp160.1.1
* Mon Sep 07 2026 Martin Pluskal <mpluskal@suse.com>
- Update to 0.85.1:
  * New GPT-6 Astra model for OpenAI API keys and OpenAI Codex
    subscriptions
  * Anthropic transports now keep per-turn thinking effort and
    recover from signed-thinking mismatches
  * Fullscreen transcript gained a jump-to-latest control and an
    editor-embedded working indicator; Alt plus mouse wheel scrolls
    five times faster
  * SessionManager.inMemory() restores externally stored session
    entries through the SDK
  * New inherited vllmPriority and supportsMaxOutputTokens model
    settings
  * 0.85.0 accidentally published internal experimental code and
    broke SDK imports; 0.85.1 makes the client and
    experimental/plugin subpaths source-only instead
  * Fixed the built-in tools ignoring ctx.cwd, skills being
    unavailable when bash was the only enabled tool, concurrent
    session shares overwriting each other, imported sessions
    overwriting a same-named one and forks losing their compaction
    boundary
  * Fixed startup under seccomp policies that reject the SIGWINCH
    self-signal, managed fd and ripgrep downloads on musl, and
    proxied plain-HTTP provider requests hanging after a tool call
- Refresh package-lock.json (five @earendil-works sibling integrity
  hashes filled in) and the vendored node_modules archive to match:
  the new @earendil-works/chord dependency pulls in esbuild,
  @anthropic-ai/sdk moves 0.91.1 -> 0.123.0 and pulls in
  standardwebhooks, @stablelib/base64 and fast-sha256, and upstream
  moved pi-client and pi-protocol to devDependencies; 124 -> 127
  shipped modules
- Add Unlicense to the license union for fast-sha256
- Install with --omit=optional and drop the matching package-lock
  entries instead of deleting the modules after the fact: every
  optionalDependency here is a per-architecture prebuilt binary a
  noarch package must not ship, and esbuild alone would have added
  26 platform packages to the source RPM
Version: 0.84.4-bp160.1.1
* Sat Aug 29 2026 Martin Pluskal <mpluskal@suse.com>
- Update to 0.84.4:
  * Detected terminal hyperlink, image and truecolor support can now
    be overridden through environment variables and settings
  * New ui_prompt_start/ui_prompt_end extension events, letting
    integrations tell agent work apart from waiting on a prompt
  * New RPC clear_queue call to retrieve and drop queued steering
    and follow-up messages
  * New fullscreenCopyOnSelect setting to turn off automatic
    fullscreen selection copying, with Ctrl+X to copy on demand
  * Experimental vision-capable deepseek-v4-flash-vision-exp model
    and a new detectSupportedImageMimeTypeFromFile() library export
  * Auto-compaction now runs between tool execution and the next
    assistant response, so oversized tool results no longer reach
    the provider uncompacted
  * Fixed resumed sessions corrupting the next transcript entry when
    the JSONL file lacked a trailing newline
  * Assorted extension replay, rendering, autocomplete, Google
    Vertex proxy, OpenRouter and Mistral streaming fixes
- Refresh package-lock.json (six @earendil-works sibling integrity
  hashes filled in) and the vendored node_modules archive to match;
  the dependency set stays at 135 modules and the license union is
  unchanged
* Mon Aug 24 2026 Martin Pluskal <mpluskal@suse.com>
- Update to 0.84.3:
  * New /thinking selector with searchable defaults, session-scoped
    model and thinking selections, and Ctrl+S to persist them
  * Managed installer updates are now staged, verified and
    activated atomically
  * Optional powershell tool for Windows, selectable through
    defaultTools and the SDK
  * Package resource globbing switched to the Node.js built-in
    implementation, dropping the glob, minipass and path-scurry
    dependencies
  * Lazy jiti/Babel loading and eager highlighting limited to
    twenty languages, both cutting startup time
  * Anthropic, Azure OpenAI, Google, Mistral and OpenAI adapters
    now send pi's default User-Agent unless overridden
  * Renamed the GoogleThinkingLevel type to GoogleApiThinkingLevel
    and added ResolvedGoogleThinkingLevel
  * auth.json and models-store.json writes no longer override
    administrator-managed file permissions and ACLs
  * Assorted extension, compaction, skill discovery and provider
    catalogue fixes
- Refresh package-lock.json (six @earendil-works sibling integrity
  hashes filled in) and the vendored node_modules archive to match;
  the dependency set shrinks from 139 to 135 modules and the
  license union is unchanged
- Declare the second verbatim copy embedded by "pi export" as
  Provides: bundled(marked)
- Add pi-use-modular-runtime.patch: 0.84.3 also introduced
  dist/bundle, a pre-bundled copy of the same application, and
  pointed package.json's bin and the ./rpc-entry export at it. The
  bundle inlines its own detectInstallMethod(), which
  pi-disable-self-update.patch cannot reach, and its chunk names are
  content-hashed and change every release. Point both entry points
  back at the modular tree upstream still ships, so what the package
  declares, what /usr/bin/pi runs and what the self-update patch
  covers are the same code
- Drop dist/bundle in %prep: nothing references it after the patch
  above, and it is 7.1 MB of duplicate runtime
Version: 0.84.2-bp160.1.1
* Tue Aug 18 2026 Martin Pluskal <mpluskal@suse.com>
- Update to 0.84.2:
  * Fullscreen transcript search with incremental match
    highlighting, configurable match colors and next/previous
    navigation
  * New defaultTools setting to choose the startup built-in tools
    globally or per project, and a fullscreen exit output setting
    (full transcript or only a resume hint)
  * New --use-theme option for a per-run interactive theme
  * Experimental strict JSON-schema constrained sampling for the
    default read/bash/edit/write tools under PI_EXPERIMENTAL=1
  * Mistral SDK transport replaced by a native Chat Completions
    HTTP stream; the vendored dependency tree shrinks from 143 to
    139 modules (mistralai, opentelemetry-semantic-conventions,
    zod and zod-to-json-schema gone), licence union unchanged
  * Assorted TUI startup, model selector and rendering fixes
- Refresh package-lock.json (six @earendil-works sibling
  integrity hashes filled in) and the vendored node_modules
  archive to match
* Tue Aug 11 2026 Martin Pluskal <mpluskal@suse.com>
- Initial package (version 0.84.1)
- Self-updating is disabled via pi-disable-self-update.patch; pi is
  installed under a node_modules path, so upstream would otherwise
  detect an npm install and run "npm install -g" over the files owned
  by this package. Extension, skill and model management (pi install,
  pi remove, pi list, pi update --extensions/--models) is unaffected
  and still writes to ~/.pi
- Drop the doom-overlay example: its doom.wasm and doom.js are built
  from doomgeneric, derived from the GPL-2.0 id Software Doom sources,
  and the complete corresponding source is not included; the extension
  also downloads a non-redistributable shareware WAD on first run
- Drop prebuilt binaries that carry no corresponding source: the darwin
  and win32 addons in @earendil-works/pi-tui, which are never loaded on
  Linux, and the photon-node WebAssembly blob, which is loaded lazily
  and only powers image conversion
- Drop source maps, TypeScript declarations and documentation
  screenshots, none of which are useful at runtime
- Ship the example extensions in a separate subpackage