When store is false, OpenAI does not persist response items server-side.
Previously, encrypted_content was only requested when reasoningEffort or
reasoningSummary options were explicitly set. Without it, reasoning items
are serialized with just their ID, causing 404 errors on subsequent turns
when OpenAI cannot resolve the ID reference.
Fixes#41
- Changed default edit mode from `patch` to `hashline` for more precise code modifications.
- Changed `readHashLines` setting default from false to true to enable hash line reading by default.
- Added three new benchmark run reports for GPT-5.3 Codex model with different edit variants (hashline, patch, replace).
- Recorded performance metrics across 60 tasks per variant with success rates ranging from 80-83.3%.
- Added GPT-5.3 Codex Spark model with 128K context window and extended reasoning capabilities.
- Added MiniMax M2.5 and M2.5 Lightning models via OpenAI-compatible API (minimax-code and minimax-code-cn providers).
- Added MiniMax M2.5 and M2.5 Lightning models via Anthropic API (minimax and minimax-cn providers).
- Added Llama 3.1 8B model via Cerebras API.
- Added MiniMax M2.5 model via OpenRouter and Vercel AI Gateway.
- Added Qwen3 VL 32B Instruct multimodal model via OpenRouter.
- show help instead of crashing on `omp setup` with no args
- show runtime-discovered MCP servers in `/mcp list`
- remove deprecated Anthropic model entries from models.json
- sort models by recency in model selector
The Z.AI login flow was hardcoded to validate API keys using the 'glm-5'
model. However, the Z.AI Coding Plan, which this login is for, currently
provides access to 'glm-4.7', with 'glm-5' being rolled out incrementally.
This caused login to fail for users who did not yet have 'glm-5' access.
This change updates the validation model to 'glm-4.7' to match the model
available in the Coding Plan.
Fixes#39
Detects known Bun.stringWidth mishandling of OSC sequences at startup
and exits with a clear upgrade message instead of crashing in the TUI
render path.
Fixes#31
- Fixed incorrect path resolution for CLI module by using Bun.fileURLToPath() to convert import.meta.resolve() result to a proper file path.
- Reordered constant declarations to ensure TMP_DIR is initialized before CLI_PATH which depends on it.
- Updated scripts/repro-stuck.ts to use consistent CLI path resolution with Bun.fileURLToPath().
- Replaced jsdom with linkedom for HTML parsing in browser tool, improving performance and reducing memory footprint.
- Removed @types/jsdom from devDependencies as jsdom is no longer used.
- Simplified HTML document parsing by removing VirtualConsole error handling and direct window cleanup.
- Removed unused yaml dependency from swarm-extension package.
- Updated pi-coding-agent peer dependency constraint from wildcard to ^11.
- Removed pi-coding-agent from devDependencies, keeping only in peerDependencies.
- Exported renderPromptTemplate function from config/prompt-templates module for programmatic prompt template rendering.
- Exported computeLineHash function from patch/hashline module for external patch utility access.
- Added ./cli export path in package.json for direct CLI module access.
Adds a standalone extension that orchestrates multi-agent workflows
defined in YAML. Supports pipeline (iterative), parallel (fan-in/out),
sequential, and arbitrary DAG execution patterns.
Each agent runs as a full oh-my-pi subagent with complete tool access.
Agents communicate through the shared workspace filesystem. The
orchestrator handles lifecycle, dependency ordering, and state tracking.
Key components:
- YAML schema parser with validation and cycle detection
- DAG builder with topological sort into execution waves
- Pipeline controller with iteration loop and wave execution
- Filesystem state persistence for monitoring and resumability
- Standalone runner (run-pipeline.ts) for long-running unattended work
- TUI integration via /swarm command
Designed for any task type: research, coding, data processing, content
creation, analysis workflows, or any multi-step objective that benefits
from specialized agents working in coordination.
- Updated Claude Code version header to 2.1.39 and runtime version to v24.13.1.
- Increased request timeout from 60s to 600s for improved reliability on slower connections.
- Reordered Accept-Encoding header values to prioritize Brotli compression.
- Updated OAuth endpoints to use platform.claude.com and expanded scopes to include user:sessions:claude_code and user:mcp_servers.
- Removed deprecated beta features claude-code-20250219 and fine-grained-tool-streaming-2025-05-14.
- Improved Bun binary detection and update process with version verification and environment variable checking.
- Added SwiftLint linter client with JSON reporter support for Swift file linting.
- Changed SwiftLint configuration to use 'lint' command with JSON reporter for structured output.
- Changed bash.virtualTerminal default setting from 'on' to 'off' for standard non-interactive execution.
- Implemented SwiftLintClient with lint() method that executes swiftlint with JSON output and converts violations to LSP diagnostics.
- Added bash.virtualTerminal settings option with 'on' (PTY-backed interactive) and 'off' (standard non-interactive) values.
- Extracted tool arguments cloning logic into dedicated `cloneToolArgs` helper function to improve code reusability.
- Moved preview diff injection logic from `computeHashlineDiff` callback into new `#getCallArgsForRender` method to centralize argument transformation for rendering.
- Applied `cloneToolArgs` to constructor and `updateArgs` method to ensure tool arguments are properly cloned on assignment.
- Added PTY (pseudo-terminal) backed interactive command execution with streaming output support via PtySession class in pi-natives.
- Added PtyStartOptions and PtyRunResult types to configure and report PTY session execution status.
- Added write(), resize(), and kill() methods to PtySession for interactive control of running commands.
- Added interactive bash execution via PTY with real-time terminal rendering and input forwarding in bash-interactive tool.
- Added --no-pty CLI flag and PI_NO_PTY environment variable to disable PTY-based interactive bash execution.
- Added bash.virtualTerminal setting to control PTY-backed interactive execution behavior.
- Sorted Antigravity models alphabetically in generated models.json and generation script.
- Updated Antigravity model configurations with corrected model IDs, names, and parameters.
- Fixed qwen/qwen3-max-thinking maxTokens from 4096 to 202752 to match context window.
- Added /move slash command to allow users to relocate sessions to different working directories.
- Added moveTo() method to SessionManager for programmatic session relocation with file system operations and rollback support.
- Added refreshSlashCommandState() method to InteractiveMode for dynamic slash command reloading when changing directories.
- Added setSlashCommands() method to AgentSession to allow external management of file-based slash commands.
- Added handleMoveCommand() handler in command-controller to process /move commands with validation and error handling.
- Added zombie process prevention by tracking reap state and implementing Drop trait to ensure processes are properly cleaned up.
- Enabled kill_on_drop for tokio child processes to automatically terminate processes when handles are dropped.
- Improved process termination logic to check reap state before attempting kill operations and properly track completion.
- Added Perplexity OAuth authentication support with native macOS app extraction and email OTP login flows.
- Implemented loginPerplexity and refreshPerplexityToken functions for OAuth token management.
- Created PerplexitySocket class providing Socket.IO v4 client over Engine.IO v4 WebSocket transport with RPC support.
- Added OAuth authentication to Perplexity web search provider with automatic token refresh and SSE streaming support.
- Extended SearchResponse interface with authMode field to track authentication method (oauth or api_key).
- Changed PerplexityProvider.isAvailable() to async to support OAuth token availability checking.
- Removed support for `.pi` configuration directory alias in favor of `.omp` across all packages.
- Updated all configuration paths and references from `.pi` to `.omp` in user and project directories.
- Refactored configuration discovery in builtin.ts to simplify directory traversal logic and remove multi-alias support.
- Simplified Python module discovery to use single directory paths instead of arrays of aliases.
- Updated debug and crash log paths from `.pi/agent/` to `.omp/agent/` in TUI package.
- Extracted cross-platform URL and file path opening logic into a unified `openPath` utility function.
- Removed duplicate platform-specific browser opening code from five modules (stats-cli, debug, login-dialog, command-controller, mcp-command-controller) and replaced with calls to the centralized utility.
- Simplified error handling by delegating platform detection and command execution to the reusable utility function.
- Added SAFETY comments documenting unsafe block invariants in process child collection.
- Refactored nested if statement to use let-else guard clause pattern in OS distro detection.
The GitHub Copilot providers were unconditionally overriding the X-Initiator
header based on message role. This prevented the subagent fix from working
because subagents send the task as a user message.
Now the providers check if X-Initiator is already set in the model headers
before applying the default logic. This allows the sdk.ts fix to properly
mark subagent requests as agent-initiated.