# 0.89.0

- Previous tag: `0.88.0` (release commit `d681c911`)
- Commit range: `d681c911..HEAD`

## Demo: Codex Debugs in IntelliJ IDEA

[![Codex debugs an application in IntelliJ IDEA](https://img.youtube.com/vi/HtDDNyAoLak/hqdefault.jpg)](https://youtu.be/HtDDNyAoLak)

In this video, Codex debugs an application in IntelliJ IDEA. The demo is powered by the MCP Steroid plugin for IntelliJ-based IDEs, https://mcp-steroid.jonnyzzz.com.

## Codex Agent Output Support

Full support for Codex NDJSON output format — handles `mcp_tool_call` items with their distinct field names (`tool` instead of `name`, `arguments` instead of `input`), structured result objects, and `reasoning` items rendered as `[thinking]` blocks. Raw and decoded agent logs are now saved per prompt run.

## Prompt System Overhaul

- Migrated all articles from multi-file (header + kts) to single-file `.md` format
- Merged `-see-also.md` files into main article files
- Added `###_NO_AUTO_TOC_###` / `###_EXCLUDE_FROM_AUTO_TOC_###` directives for fine-grained TOC control
- Per-article read tests are now auto-generated
- Removed old-format article support from buildSrc codegen
- Migrated tool descriptions to prompt article resources

## Docker Test Infrastructure Refactoring

Major refactoring of the Docker container process runner and agent infrastructure:

- Replaced `runInContainer` with `startProcessInContainer` across all drivers
- Consolidated container process types into `docker-container-exec-detached.kt`
- Channel-driven stdin for `ConsoleDriver` (replacing per-line docker exec)
- Real-time console pumping in `ConsoleAwareAgentSession` with raw + decoded log files
- Interactive docker exec support (`-i` flag)
- Coroutines `Channel` for `ProcessRunner` output (no busy loop)

## DPAIA Arena Testing

Introduced Docker-based A/B comparison testing infrastructure (DPAIA — Developer Productivity AI Assessment) for measuring agent effectiveness with vs without MCP Steroid. Includes automated test pipeline with iterative improvement loops, bare git repo caching, JDK auto-configuration, Maven/Gradle import awaiting, and per-product smoke tests.

## Plugin & Build Improvements

- Extracted plugin build into dedicated `ij-plugin/` subproject
- Plugin deployment hot-reload via `deployPlugin` task
- MCP server now starts at IDE startup via `AppLifecycleListener`
- `execution_id` made optional in `steroid_execute_feedback`
- Release builds only include release notes in `plugin.xml` (skip for snapshots)
- Upload LICENSE to GitHub releases with full URLs

## Settings & UI

- New MCP Steroid project settings page (Tools > MCP Steroid) with copy buttons and structured connection info
- Human review workflow reworked: renamed actions, `isReviewRequired()` logic, Always Allow option with warning icon
- Screenshot capture now includes modal dialogs

## Agent Compatibility

- Claude Code 2.1.x new structured event format support in `ClaudeOutputFilter` (handles both old streaming and new structured formats)
- Output filters pass through unknown JSON events (future-proof)
- Generic `toolDetail()` extracts human-readable summary for all known tools

## Stability & Bug Fixes

- Fixed AIPromoWindowAdvisor 8-minute startup deadlock in Docker containers
- Fixed Islands Theme onboarding dialog blocking test containers
- Fixed `CodeButcher` import extraction from triple-quoted string literals
- Fixed AiAgentDriver NPE with lazy property ordering
- Fixed DISPLAY env var propagation in container processes
- Fixed Docker reaper image tagging and container ancestry filter
- Renamed "IntelliJ MCP Steroid" to "MCP Steroid" across codebase

## Build & Infrastructure

- KtBlocks compilation test infrastructure for verifying code examples in prompt articles
- `ScriptClassLoaderFactory` interface for test classpath isolation
- Compilation tests made stable across build re-runs
- Increased IDE window detection timeout with better diagnostics
- Concurrent test run protection documented (shared `idea-sandbox/` corruption)
