# Release Notes

This file is the public release history for Abulafia. Keep entries user-facing: what changed, why it matters, and anything users should do after upgrading.

GitHub release notes are generated from the matching `## vX.Y.Z` section in this file.

## v0.2.44 - 2026-08-04

### Windows installer

- Fixed upgrades that failed with Windows error 448 (`the path contains an untrusted mount point`) when an earlier installation left a junction or symbolic link inside the bundled runtime.
- Kept Inno Setup's `RedirectionGuard` protection enabled. Before extraction, the installer now removes the previous self-contained `app` and `node` trees using reparse-aware deletion that does not traverse link targets.
- Extended the installer smoke test with a stale `typebox` junction and an external sentinel file, proving that installation succeeds, replaces the link with a normal package directory, and leaves the link target untouched.

### Interface

- Renamed the colloquial `Внутрянка` status to the product-facing `Ход работы` label throughout the interactive interface and documentation.

### Release reliability

- Native bundles now upload directly to a draft GitHub release, avoiding failures when the repository's temporary Actions Artifacts quota is exhausted.
- A partially published npm version or draft release can be resumed safely by the next workflow run.

## v0.2.43 - 2026-08-03

### Story workflows

- Changed `abulafia story` and `/story` to run the real model-driven story agents. The deterministic generator is now explicitly named `abulafia story-local` and is documented only as a local smoke/fallback runner.
- Added structured Journal-Yuga state with a publication model, evidence ledger, protected core, bounded contexts, and independently routable story contracts instead of assuming one mandatory S01-S11 chain.
- Made the venue database the first evidence source without treating it as a domain whitelist; S01 now expands to web discovery when the local corpus is insufficient and records unknown evidence separately from absent evidence.

### Reliability

- Added natural-language workflow routing, so known commands such as `deepresearch ...` and `story ...` work with or without a leading slash in the interactive console.
- Hid alphaXiv network tools until login succeeds, repaired malformed empty search/subagent calls, and temporarily upgrades implicit `gpt-5.4-nano` workflow launches to `gpt-5.4` when available.
- Added bounded OpenAI-compatible request timeouts with Pi retries, preventing a stalled 302.AI request from blocking forever.
- Added a keyless Brave, DuckDuckGo, and Bing fallback chain after Perplexity, Exa, and Gemini, so a clean installation can perform basic web discovery without another API key and recover from provider throttling.
- Cleared stale live-status state at the start of every new request and stopped completed workflows from appearing as current work.
- Added Windows-safe artifact guidance to prevent large inline shell commands from failing with `spawn ENAMETOOLONG`.
- Made extension package installation prefer the npm cache and retry transient registry failures.

### Documentation

- Removed dead `abulafia.is` URLs and PowerShell prompt prefixes from copyable commands.
- Updated installation, user, architecture, developer, story, model, search, and local-runner documentation to match the shipped behavior.

### Validation

- Full local tests passed: 194/194; typecheck, application build, and documentation-site build passed.
- A real `302ai/gpt-5.4` S01 run read the sample article, queried local dossiers and official web sources, recovered from search/provider failures, and produced all required state and report artifacts.
- The resulting S01 artifact scored 95/100 (`PRODUCTION-READY`) in the deterministic evaluator.
- Keyless web search returned the official The Law Teacher page, journal description, and SCImago entry; forced-failure tests confirmed fallback through Brave and DuckDuckGo to Bing.
- The Windows x64 EXE was installed into an isolated profile; all 13 embedded extensions loaded, `status` passed, `story-local` created its S01 artifact, keyless search returned results, and silent uninstall completed cleanly.

## v0.2.42 - 2026-08-03

### Fixes

- Fixed extension startup failures where Jiti could not resolve `@earendil-works/pi-coding-agent`, `@earendil-works/pi-tui`, or the unscoped `typebox` package from user-installed extensions.
- Added explicit embedded-runtime aliases for the Earendil Pi package names and the `typebox/compile` subpath used by `pi-subagents`.
- Pinned unscoped `typebox` 1.x as a direct runtime dependency so a transitive legacy package cannot replace its required `typebox/compile` export.
- Made the Windows installer put its self-contained `abulafia` command first in the user `PATH`, preventing an older npm-global installation from shadowing the newly installed EXE release.
- Prevented previous installer smoke directories from being copied into later native bundles, avoiding Windows junction and symlink permission failures during packaging.

### Validation

- Added an installed-runtime smoke test that loads every configured embedded extension through Pi's actual Jiti loader.
- Loaded 13 extensions from 13 bundled packages successfully, including `pi-subagents`, `pi-web-access`, and `@aliou/pi-processes`.
- Full local tests passed: 181/181, and typecheck passed.
- The Windows x64 installer was built, installed into an isolated directory, and then installed into the normal per-user location.
- The installed runtime completed `doctor` and a real `302ai/gpt-5.4` request successfully; PATH priority and the desktop shortcut target were also verified.

## v0.2.41 - 2026-08-03

### Fixes

- Fixed Windows startup failures caused by incompatible `pi-subagents` and `pi-web-access` releases importing the unavailable `@earendil-works/pi-ai/compat` entrypoint.
- Pinned both compatibility-sensitive extensions to the releases validated against Abulafia's embedded Pi runtime.
- Added an automatic startup migration that replaces incompatible copies already present in `~/.abulafia/npm-global`, so reinstalling is sufficient and users do not need to delete their profile manually.
- Normalized existing unpinned package settings to the compatible versions and prevented the package update command from upgrading them past the supported runtime contract.

### Validation

- Full local tests passed: 178/178.
- Typecheck passed.
- Clean-profile migration replaced `pi-subagents 0.37.2` with `0.28.0` and `pi-web-access 0.17.1` with `0.10.7`.
- Clean-profile startup loaded all extensions and completed a real `302ai/gpt-5.4` request successfully.
- The Windows x64 installer was built, installed into an isolated directory, and its installed `abulafia 0.2.41` completed the same live request successfully.

## v0.2.40 - 2026-04-19

### Fixes

- Fixed local-model web-search failures where a model calls non-existent search aliases such as `google:search`; Abulafia now maps those aliases to Pi's real `web_search` tool when it is available.
- Granted the bundled researcher and verifier agents access to Pi web-access tools (`web_search`, `fetch_content`, and `get_search_content`) so their prompts and allowed tools match.
- Made `abulafia doctor` and `abulafia search status` explicitly show when `web-search.json` has not been created and how to initialize it.
- Stopped treating expired OAuth credentials as authenticated model availability, so `doctor`, `model list`, and onboarding guide users to re-login instead of failing later in chat.
- Added a package-workspace setup lock so concurrent Abulafia invocations do not race while restoring `.abulafia/npm`.

### Validation

- Full local tests passed: 137/137.
- Typecheck, build, vendored runtime regeneration, runtime archive inspection, sequential CLI smoke, and parallel CLI smoke passed.

## v0.2.39 - 2026-04-19

### Fixes

- Fixed TUI-selected thinking/reasoning effort persistence. Abulafia no longer passes an implicit `--thinking medium` on every launch, so thinking levels saved by Pi after `Shift+Tab` survive restarts.
- Explicit `--thinking <level>` and `ABULAFIA_THINKING=<level>` still override the saved default for that launch.

### Validation

- Added regression coverage that Abulafia only passes a launch thinking override when it was explicitly configured.
- Full local tests passed: 126/126.
- Typecheck and build passed.

## v0.2.38 - 2026-04-19

### Fixes

- Fixed `abulafia update memory` and `abulafia update session-search` so friendly core-package aliases resolve to the correct npm package sources and use Abulafia's npm install path with peer-dependency compatibility flags.
- Fixed `abulafia summarize ... --window-size ...` and related summarize tuning flags when the flags appear after the source positional.
- Fixed `abulafia setup preview` so it actually runs the preview dependency check, matching the legacy `--setup-preview` alias.
- Made optional `generative-ui` install/update failures degrade cleanly on macOS toolchains where upstream `glimpseui` cannot compile, without dumping thousands of Swift compiler lines.
- Reduced deepresearch TUI redraw churn by freezing the Abulafia header's Last Activity snapshot during live streaming work instead of recomputing it every render.
- Fixed bundled skills that referenced prompt templates through broken installed relative paths.
- Fixed the embedded Pi patcher so repeated runtime preparation does not duplicate the TUI stdin error handler.

### Documentation

- Documented `abulafia setup preview`.
- Documented the existing `Shift+Tab` thinking-level hotkey and `/hotkeys` discovery path.

### Validation

- Full local tests passed: 124/124.
- Typecheck, build, and clean website build passed.
- Local CLI matrix passed for help, doctor, status, model list/tier, search status/set, alpha status, setup preview, packages list/install, and package update aliases.
- End-to-end workflow runs completed for chat, summarize, review, compare, audit, draft, lit, deepresearch with confirmation, replicate, watch/jobs, log, and a bounded autoresearch loop.

## v0.2.37 - 2026-04-19

### Fixes

- Hardened `/deepresearch` reviewer/audit fix handling so Abulafia may only claim a patch landed after the edit/write tool succeeds and an explicit on-disk check proves the old unsupported content is gone and the corrected content exists.
- Added provenance requirements for failed edit recovery so verification notes cannot mark an issue fixed before the final candidate actually reflects the fix.
- Corrected MiniMax model preference casing to match Pi's exposed model IDs.

### Performance

- Resolved preview/runtime executables in parallel before launching Pi, reducing synchronous startup work while preserving Windows, macOS, and Linux fallback behavior.

### Fork Review

- Scanned all public forks and selectively adopted the low-risk startup/model-test improvements. Rejected product-specific or bloated fork changes such as Claude CLI bypass mode, ValiChord, Overleaf export, and an external `parallel-cli` dependency.

### Validation

- Full local tests passed: 121/121.
- Typecheck, build, local CLI doctor, and real one-shot launch smoke test passed.
- Fork scan compared 676 accessible forks: 666 behind, 2 identical, 8 with unique commits inspected.

## v0.2.36 - 2026-04-18

### Fixes

- Hardened `/review` so it writes a durable plan, evidence notes, and `outputs/<slug>-review.md` instead of stopping after a planning/narration response.
- Added blocked-review fallback behavior for PDFs or external sources that cannot be parsed, so failed extraction still produces an explicit review artifact with `Verification: BLOCKED`.
- Fixed subagent child-process spawning under Abulafia's Pi wrapper so writer/reviewer subagents no longer treat `--mode` as a module path.
- Made optional package presets platform-aware so Linux users do not see or attempt to install the macOS-only `generative-ui` package.
- Added the Release Notes entry to the website docs sidebar.

### Documentation

- Updated peer review docs to describe the concrete output files and blocked-extraction behavior.
- Updated package docs to clarify that memory and session search are core packages and `generative-ui` is macOS-only upstream.

### Validation

- Added regression coverage for the `/review` durable-artifact contract.
- Added regression coverage for platform-aware optional presets and Abulafia-aware subagent spawning.
- Real installed-global review, package-list/install, subagent, and extension-load checks were run before release.

## v0.2.35 - 2026-04-18

### Fixes

- Restored the `/deepresearch` confirmation gate: the workflow now writes `outputs/.plans/<slug>.md`, summarizes the plan, and waits for explicit user approval before searching, drafting, citing, or delivering final artifacts.
- Changed top-level workflow invocation so `abulafia deepresearch ...` behaves like the REPL workflow in a real terminal instead of forcing one-shot execution.
- Added a Abulafia wrapper around Pi's CLI entrypoint so completed print-mode runs exit cleanly after Pi finishes.
- Tightened direct-mode `/deepresearch` artifact paths so research notes and verification files are written under `outputs/.drafts/`.

### Features

- Added section-focused `alpha_get_paper` extraction with `section` / `sections` filters for abstract, introduction, methodology, experiments, results, discussion, limitations, and conclusion.
- Added configurable `/summarize` context-window controls via flags and `ABULAFIA_SUMMARIZE_*` environment variables.

### Documentation

- Added public `RELEASES.md` and website release notes so each release has visible fix and feature history.
- Updated deep research docs to describe the plan-confirmation workflow and current PDF-safety behavior.

### Validation

- Real installed-global REPL test: typed `/deepresearch what is BM25`, verified that only the plan existed before approval, then replied `yes` and verified final report, provenance, draft, cited draft, research notes, and verification artifacts.
- Full local tests passed: 117/117.
- Typecheck, build, website build, local pack, and local global install checks passed.

## v0.2.34 - 2026-04-18

### Fixes

- Tightened `/deepresearch` so direct-mode research must use at least three distinct search terms or angles before drafting.
- Required direct-mode `/deepresearch` to record the exact search terms in the direct research artifact.
- Added regression coverage for the multi-query deep research contract.

### Validation

- Real RPC smoke test for `/deepresearch what is BM25` completed and wrote the required plan, draft, cited draft, final report, and provenance artifacts.
- Release CI published npm and native bundles for macOS arm64/x64, Linux x64, and Windows x64.

## v0.2.33 - 2026-04-18

### Fixes

- Rewrote `/deepresearch` from a long protocol-style prompt into a shorter execution checklist so local models are less likely to echo instructions instead of doing work.
- Made narrow direct-mode research complete without spawning verifier or reviewer subagents.
- Avoided the crash-prone PDF parser path in `/deepresearch` unless PDF extraction is explicitly requested.

### Validation

- Real RPC `/deepresearch what is BM25` completed with required artifacts and `agent_end`.
- Full local tests, typecheck, build, audits, website build, and pack dry-run passed before release.

## v0.2.32 - 2026-04-18

### Fixes

- Fixed Pi subagent parallel output propagation so top-level task `output` paths are honored.
- Added foreground and async regression coverage for subagent output handoff behavior.
- Hardened deep research prompts around durable artifacts and provenance.

## v0.2.31 - 2026-04-17

### Fixes

- Fixed Abulafia runtime auth environment propagation so launched Pi sessions can see the expected model provider credentials.
- Revalidated setup and runtime startup paths after the auth fix.

## v0.2.30 - 2026-04-17

### Fixes

- Fixed Pi subagent task output handling in the runtime patch layer.
- Preserved bundled research-agent file handoffs for multi-agent workflows.

## v0.2.29 - 2026-04-17

### Maintenance

- Updated bundled Pi runtime packages.
- Rebuilt native release artifacts against the refreshed runtime package set.

## v0.2.28 - 2026-04-17

### Maintenance

- Removed runtime hygiene extension bloat and kept the bundled runtime closer to upstream Pi behavior.
- Reduced custom extension surface area to keep the research agent simpler.

## v0.2.27 - 2026-04-17

### Fixes

- Added Pi event guards for workflow state transitions.
- Improved workflow state tracking around long-running research operations.

## v0.2.26 - 2026-04-17

### Fixes

- Switched research context hygiene onto Pi runtime hooks instead of extra custom runtime logic.
- Improved compatibility with upstream Pi runtime behavior.

## v0.2.25 - 2026-04-17

### Fixes

- Fixed workflow continuation and provider setup gaps.
- Improved setup flow behavior for model-provider configuration.

## v0.2.24 - 2026-04-16

### Fixes

- Linked bundled runtime dependencies for core Pi packages.
- Addressed missing dependency errors for installed core packages.

## v0.2.23 - 2026-04-16

### Features

- Added LM Studio setup support for local model workflows.
- Added blocked-research artifact handling so interrupted runs keep useful state.

## v0.2.22 - 2026-04-16

### Features

- Added first-class LM Studio setup.
- Improved local model onboarding defaults.

## v0.2.21 - 2026-04-16

### Fixes

- Fixed extension repair behavior.
- Added the Opus 4.7 model overlay.

## v0.2.20 - 2026-04-16

### Release

- Restored publish workflow behavior after a duplicate npm version blocked release.
- Native bundles remained available through GitHub releases.

## v0.2.19 - 2026-04-16

### Fixes

- Skipped release publication when the npm version already exists.
- Prevented repeat publish attempts from failing the pipeline after npm publication succeeds.

## v0.2.18 - 2026-04-16

### Release

- Prepared the release automation baseline used by the current npm and native-bundle pipeline.
