Releases: whanyu1212/Wisp
Release list
Wisp v0.2.0rc3
RC3 makes Rust the sole interactive terminal interface. The published native wheels support macOS arm64 and Linux x86_64 with glibc 2.28 or newer. Other platforms receive a pure wheel with print, JSON, RPC, and SDK support; it does not provide an interactive TUI. Python 3.12+ is required. The stable installation pin remains 0.1.0.
Try this prerelease without replacing an existing installation:
uvx --from "wisp-ai==0.2.0rc3" wisp --version
uvx --from "wisp-ai==0.2.0rc3" wispSee the 0.2 upgrade guide for behavior changes and rollback. The public verification report records published artifact hashes, provenance, and installed-package smoke results. Real-provider and native-terminal dogfooding remain part of the prerelease trial.
What's Changed
- perf: benchmark built-in tool boundaries by @whanyu1212 in #588
- perf: prototype Rust managed-output retention kernel by @whanyu1212 in #589
- Use Rust pending text in native wheels by @whanyu1212 in #590
- feat(tui): add selectable startup logos by @whanyu1212 in #591
- refine(tui): remove Adal Blocks startup logo by @whanyu1212 in #592
- perf(search): reuse Python search paths and benchmark repository workloads by @whanyu1212 in #593
- docs: migrate site to mdBook by @whanyu1212 in #594
- perf(search): add native literal grep scanner by @whanyu1212 in #595
- chore: remove implemented mdBook migration plan by @whanyu1212 in #596
- perf(search): avoid duplicate protected path matching by @whanyu1212 in #597
- docs: add Crafting Coding Agents curriculum and pilot chapter by @whanyu1212 in #598
- perf(search): reuse traversal descriptors for grep by @whanyu1212 in #599
- docs: add Chapter 2 tools chapter and enlarge body text by @whanyu1212 in #600
- perf(rpc): coalesce streamed message deltas by @whanyu1212 in #602
- docs: add benchmarking and profiling section to tools chapter by @whanyu1212 in #601
- bench(tui): compare Rust and Textual end to end by @whanyu1212 in #603
- bench(tui): measure interaction during paced streaming by @whanyu1212 in #604
- Speed up Rust TUI full-history hydration by @whanyu1212 in #605
- Measure Rust TUI saved-transcript memory by process by @whanyu1212 in #606
- Retire Textual TUI and keep Python fullscreen fallback by @whanyu1212 in #607
- Retire Python TUI and make Rust the sole terminal frontend by @whanyu1212 in #608
- Prepare Wisp 0.2.0rc3 candidate by @whanyu1212 in #609
Full Changelog: v0.2.0rc2...v0.2.0rc3
Wisp v0.2.0rc2
Known Intel Mac installation limitation: Fresh Cargo-free PyPI installation fails on macOS x86_64. RC2 requires
cryptography>=50.0.0; upstream stopped publishing Intel macOS wheels in version 49. The Intel Wisp wheel exists, but a fresh dependency installation requires source-building tooling. Apple Silicon and Linux public installs passed. See the failed Intel check and upstream changelog. This remains an unresolved release-acceptance gap; no three-platform success is claimed.
Wisp 0.2.0rc2 trials the Rust TUI as the default on native macOS arm64/x86_64 and Linux glibc 2.28+ x86_64 installations. The Python runtime continues to own providers, tools, permissions, and sessions. Textual remains installed and maintained; select it explicitly with wisp tui --renderer textual. Pure/source installations without a native binary retain Textual.
This candidate includes semantic terminal colors and complete saved-transcript loading without a history cap. Known Rust UI differences include transcript search/copy/drag selection, clickable Markdown links, and integrated updates.
Install the candidate explicitly:
uv tool install --force "wisp-ai==0.2.0rc2"
wisp --version
wispStable remains 0.1.0. See the upgrade guide for Python API and live-RPC compatibility changes; its prepublication status paragraph reflects when the tagged source was prepared.
Public installation verification
Release workflow passed. Exactly five PyPI distributions match the corresponding GitHub release bytes. All 15 original build assets passed GitHub attestation verification against the release workflow, tag, and commit af13bf11fce1575ca760a87a3a552b41165141b7.
| Platform | Public install and lifecycle | 10,001-message ready frame |
|---|---|---|
| macOS arm64 | Passed | 3.877 s |
| Linux glibc 2.28 x86_64 | Passed | 3.782 s |
| macOS x86_64 | Failed: dependency wheels unavailable | Not run |
Passing targets verified exact native wheel selection, installed SDK imports, Rust default prompt/exit, explicit Textual prompt/exit, full-history resume, native/pure replacement, corrupted-binary failure, restoration, offline reinstall, uninstall, and terminal restoration. Intentional corruption tests use uv copy mode to avoid changing the shared installer cache. Measurements are individual synthetic fake-provider observations, not cross-platform benchmarks or cross-version downgrade evidence.
Download the postpublication verification report. This report records checks after publication; it is separate from the provenance-attested build assets.
What's Changed
- docs(release): record Wisp 0.2.0rc1 publication by @whanyu1212 in #534
- fix(agent): close owned streams and isolate public tool payloads by @whanyu1212 in #535
- refactor(agent): keep the loop readable without more package splits by @whanyu1212 in #536
- refactor(agent): clarify harness run orchestration by @whanyu1212 in #537
- feat(tui): select and remember models in the Rust TUI by @whanyu1212 in #538
- feat(tui): add command discovery and essential controls by @whanyu1212 in #539
- feat(tui): add context visibility and compaction controls by @whanyu1212 in #540
- feat(tui): add skill discovery and MCP status by @whanyu1212 in #541
- [codex] Add searchable prompt history to the Rust TUI by @whanyu1212 in #542
- docs(tui): describe dual-frontend Textual and Rust coexistence by @whanyu1212 in #543
- feat(rpc): add safe project file discovery by @whanyu1212 in #544
- feat(tui): preserve transcript behind Rust overlays by @whanyu1212 in #545
- feat(tui): add safe project-file completion by @whanyu1212 in #546
- feat(tui): add Rust themes and persistent preferences by @whanyu1212 in #547
- feat(tui): add opt-in mouse navigation by @whanyu1212 in #548
- feat(tui): complete Rust daily-use readiness by @whanyu1212 in #549
- feat(tui): quiet Rust chrome, welcome empty state, and contextual footer by @whanyu1212 in #552
- fix(tui): bound transport stalls and keep input responsive by @whanyu1212 in #551
- feat(tui): fold-first transcript, explore grouping, and sticky user turn by @whanyu1212 in #554
- [codex] Add bounded protocol fuzzing and framing properties by @whanyu1212 in #555
- feat(tui): park approval and trust requests in the conversation pane by @whanyu1212 in #557
- feat(tui): move Rust status chrome into a quiet footer by @whanyu1212 in #558
- [codex] Improve TUI presentation and add HTTP MCP support by @whanyu1212 in #559
- Refine Rust TUI conversation layout, activity, and scrollback by @whanyu1212 in #560
- Polish Rust TUI activity and save project permissions by @whanyu1212 in #561
- Refactor built-in tools and polish Rust TUI input by @whanyu1212 in #562
- fix(tui): bound live transcript retention by @whanyu1212 in #563
- fix(tui): harden untrusted terminal rendering by @whanyu1212 in #564
- build(tui): produce verified wheel candidates by @whanyu1212 in #565
- build(tui): integrate native wheel release lifecycle by @whanyu1212 in #567
- feat(tui): highlight Rust composer commands and files by @whanyu1212 in #570
- fix(tui): smooth history pagination across page loads by @whanyu1212 in #571
- fix(tui): recover evicted live history during scrollback by @whanyu1212 in #572
- feat(tui): add composer selection and word editing by @whanyu1212 in #573
- feat(tui): add composer undo and redo by @whanyu1212 in #574
- feat(tui): expose project initialization by @whanyu1212 in #575
- feat(tui): add composer clipboard support by @whanyu1212 in #576
- fix(tui): polish transcript feedback and command output by @whanyu1212 in #582
- feat(tui): polish Rust transcript and popup feedback by @whanyu1212 in #583
- Add Glass theme, restore activity feedback, and refresh bundled skills by @whanyu1212 in #584
- fix(tui): expose terminal background in Glass theme by @whanyu1212 in #585
- feat(tui): add semantic colors and retain complete session history by @whanyu1212 in #586
- release: prepare 0.2.0rc2 with Rust TUI as the native-install default by @whanyu1212 in #587
Full Changelog: v0.2.0rc1...v0.2.0rc2
Wisp v0.2.0rc1
Wisp 0.2.0rc1
An opt-in release candidate for the 0.2 line. 0.1.0 remains the recommended stable release.
Highlights
- Textual remains the default TUI, with improved streamed-output ordering, input responsiveness, and file-picker behavior.
- Hardened harness lifecycle and message ownership, plus deterministic interruption/recovery coverage for streaming, tools, queues, and context transitions.
- Backend-owned provider connection and model-catalog RPC, with live RPC v4 and event schema v36.
- The Rust TUI remains experimental and source-build opt-in; Python distributions do not bundle a Rust binary.
Try the candidate
uvx --from "wisp-ai==0.2.0rc1" wisp --version
uvx --from "wisp-ai==0.2.0rc1" wispThese commands do not replace an existing persistent installation, but Wisp still uses normal configuration and session locations. Use a disposable project and back up important sessions when testing.
Integration changes: the deprecated wisp.agent.messages.SessionEntry(...) factory and old agent-internal import paths were removed. External JSONL-RPC clients must negotiate live RPC v4. Supported historical session files remain readable. Read the 0.2 upgrade guide before updating integrations.
Verification and feedback
Merged-commit CI, the release dry run, and the publishing workflow passed on d41c8a4. Published-package checks verified the CLI version, installed SDK imports, and a fake-provider prompt outside the source checkout. Wheel and source-distribution hashes agree between PyPI and GitHub.
Before final 0.2.0 promotion, please dogfood real-terminal streaming while typing and scrolling, cancellation, approvals, file navigation, and session resume. Report regressions with your OS, terminal, and a minimal reproduction; headless tests do not establish native-terminal visual correctness.
What's Changed
- Update docs site for Wisp 0.1.0 by @whanyu1212 in #454
- Document the Rust TUI architecture boundary by @whanyu1212 in #471
- Measure TUI input-to-display latency by @whanyu1212 in #455
- Prioritize TUI input over Markdown drains by @whanyu1212 in #472
- Extend TUI input benchmark with completion evidence by @whanyu1212 in #473
- Deduplicate TUI input observations by @whanyu1212 in #474
- Measure TUI terminal write frames by @whanyu1212 in #475
- Measure live TUI terminal frames by @whanyu1212 in #476
- Validate native terminal frame evidence protocol by @whanyu1212 in #477
- Record native terminal frame evidence by @whanyu1212 in #478
- Adopt capability-gated synchronized output by @whanyu1212 in #479
- Define live RPC v1 contract by @whanyu1212 in #480
- Enforce live RPC v2 negotiation by @whanyu1212 in #481
- Add language-neutral TUI transition traces (#459) by @whanyu1212 in #482
- Scaffold optional Rust TUI transport (#463) by @whanyu1212 in #483
- Add Rust TUI reducer and shared trace foundation by @whanyu1212 in #484
- Add live prompt and streaming Rust TUI by @whanyu1212 in #485
- Add Rust TUI approval, trust, and cancel controls by @whanyu1212 in #486
- Add a virtualized transcript to the Rust TUI by @whanyu1212 in #487
- Rust TUI: add bounded incremental assistant Markdown by @whanyu1212 in #488
- Rust TUI: add bounded closed-fence syntax highlighting by @whanyu1212 in #489
- Rust TUI: add bounded structured tool lifecycle cards by @whanyu1212 in #490
- Rust TUI: add bounded structured file and diff details by @whanyu1212 in #491
- Rust TUI: add transcript performance evidence by @whanyu1212 in #492
- Rust TUI: add session selection and bounded resume hydration by @whanyu1212 in #493
- Rust TUI: add bounded history paging and exact detail by @whanyu1212 in #494
- Rust TUI: complete session and queue workflows by @whanyu1212 in #495
- Add authoritative model catalog RPC by @whanyu1212 in #496
- Add secure provider connection RPC workflows by @whanyu1212 in #497
- Record the #470 renderer decision: Textual default, Rust experimental by @whanyu1212 in #499
- docs: resolve live-RPC and context estimation documentation drift (#498) by @whanyu1212 in #500
- refactor(rpc): preserve typed commands through coordination by @whanyu1212 in #501
- refactor(rpc): type configure execution by @whanyu1212 in #502
- docs(skills): refresh bundled Wisp guidance by @whanyu1212 in #503
- refactor(rpc): type session read execution by @whanyu1212 in #504
- refactor(rpc): type session mutation execution by @whanyu1212 in #505
- Harden Wisp's coding-agent system prompt by @whanyu1212 in #506
- refactor(rpc): type new-session execution by @whanyu1212 in #507
- refactor(rpc): type synchronous inspection execution by @whanyu1212 in #508
- refactor(rpc): type provider connection execution by @whanyu1212 in #509
- refactor(rpc): type queue command execution by @whanyu1212 in #510
- refactor(rpc): type control command execution by @whanyu1212 in #511
- refactor(rpc): type run and statistics execution by @whanyu1212 in #512
- ci: shorten feedback with Rust caching and TUI sharding by @whanyu1212 in #513
- refactor(rpc): remove legacy execution and rejection conversions by @whanyu1212 in #514
- refactor(rpc): extract typed command lifecycle helper by @whanyu1212 in #515
- refactor(rpc): extract session-read execution by @whanyu1212 in #516
- refactor(rpc): extract session-mutation execution by @whanyu1212 in #517
- refactor(rpc): extract inspection execution by @whanyu1212 in #518
- refactor(rpc): extract provider connection execution by @whanyu1212 in #519
- refactor(rpc): extract queue, control, and configure execution by @whanyu1212 in #520
- refactor(rpc): extract run and statistics execution by @whanyu1212 in #521
- test(agent): make runtime invariants explicit and expand regression harness by @whanyu1212 in #522
- refactor(agent): extract continuation state and request-boundary transitions by @whanyu1212 in #523
- refactor(agent): isolate one provider-turn lifecycle by @whanyu1212 in #524
- refactor(agent): isolate tool-round scheduling and lifecycle by @whanyu1212 in #525
- refactor(agent): simplify harness boundary coordination by @whanyu1212 in #526
- chore: organize agent loop and refresh model catalog by @whanyu1212 in #527
- refactor(agent): organize harness, prompts, and shared contracts by @whanyu1212 in #528
- docs(agent): explain harness and loop architecture by @whanyu1212 in #529
- fix(tui): preserve streamed output and reduce interactive rendering work by @whanyu1212 in #530
- chore(release): prepare Wisp 0.2.0rc1 by @whanyu1212 in #531
- fix(agent): harden harness lifecycle and message ownership by @whanyu1212 in #532
- test(agent): cover harness interruption and recovery boundaries by @whanyu1212 in #533
Full Changelog: v0.1.0...v0.2.0rc1
Wisp v0.1.0
What's Changed
- Reduce tool card update flicker by @whanyu1212 in #446
- Defer provider construction through startup by @whanyu1212 in #448
- Expose steering and follow-up controls in the TUI by @whanyu1212 in #449
- Fix residual tool card update flicker by @whanyu1212 in #450
- Compact GitHub delivery polling output by @whanyu1212 in #451
- Clarify Wisp development and PR delivery composition by @whanyu1212 in #452
- Prepare Wisp 0.1.0 release by @whanyu1212 in #453
Full Changelog: v0.1.0rc6...v0.1.0
Wisp v0.1.0rc6
What's Changed
- Improve TUI file result presentation by @whanyu1212 in #440
- Prepare Wisp 0.1.0rc6 by @whanyu1212 in #441
Full Changelog: v0.1.0rc5...v0.1.0rc6
Wisp v0.1.0rc5
What's Changed
- Fix resumed history hydration flicker by @whanyu1212 in #410
- Prevent full TUI repaint while scrolling by @whanyu1212 in #411
- Define and verify the public Python SDK surface by @whanyu1212 in #412
- Add tested offline Python SDK examples by @whanyu1212 in #413
- Add Python SDK guide and API reference by @whanyu1212 in #414
- Fix TUI transcript retention flicker by @whanyu1212 in #415
- Document SDK compatibility and schema history by @whanyu1212 in #416
- Add pinned Pi SDK capability audit by @whanyu1212 in #417
- Instrument Textual TUI streaming hotpaths by @whanyu1212 in #420
- Reuse stable Markdown while streaming by @whanyu1212 in #422
- Coalesce TUI timers and settled display updates by @whanyu1212 in #423
- Hold TUI cover until transcript layout settles by @whanyu1212 in #424
- test(agent): make loop and harness lifecycle invariants explicit by @whanyu1212 in #421
- Centralize Textual card identity by @whanyu1212 in #425
- Keep long-session TUI scrolling on the visible-only fast path by @whanyu1212 in #427
- Mount a bounded history window when resuming a session by @whanyu1212 in #429
- Discard a scroll target left beyond shrinking transcript content by @whanyu1212 in #433
- Load provider SDKs on first use instead of at import by @whanyu1212 in #435
- Import the MCP SDK only when MCP servers are configured by @whanyu1212 in #437
- Prepare Wisp 0.1.0rc5 by @whanyu1212 in #439
Full Changelog: v0.1.0rc4...v0.1.0rc5
Wisp v0.1.0rc4
What's Changed
- Fix TUI pending input lifecycle by @whanyu1212 in #396
- Improve TUI startup feedback and history by @whanyu1212 in #397
- Harden rc4 release metadata and dependencies by @whanyu1212 in #398
- Prepare Wisp 0.1.0rc4 by @whanyu1212 in #408
Full Changelog: v0.1.0rc3...v0.1.0rc4
Wisp v0.1.0rc3
What's Changed
- Add xAI Responses API provider by @whanyu1212 in #383
- Preserve RPC configure command ordering by @whanyu1212 in #384
- Reject unresolved ambiguous model selections by @whanyu1212 in #385
- Add first-class DeepSeek provider by @whanyu1212 in #386
- Fix final TUI stream repaint flicker by @whanyu1212 in #387
- Refresh TUI model choices and provider labels by @whanyu1212 in #388
- Highlight Markdown structure in TUI prompts by @whanyu1212 in #389
- Fix complete Textual transcript scrollback by @whanyu1212 in #390
- Hydrate complete resumed TUI history for smooth scrolling by @whanyu1212 in #393
- Prepare 0.1.0rc3 release by @whanyu1212 in #394
Full Changelog: v0.1.0rc2...v0.1.0rc3
Wisp v0.1.0rc2
What's Changed
- Harden production CI and improve TUI wheel scrolling by @whanyu1212 in #375
- fix(tui): stabilize streaming and group resumable process cards by @whanyu1212 in #376
- refactor(agent): centralize context-budget estimation by @whanyu1212 in #377
- Remove obsolete RPC compatibility paths by @whanyu1212 in #379
- Add safe TUI update and restart flow by @whanyu1212 in #380
- docs: add VitePress site and slim the README by @whanyu1212 in #378
- Refine TUI theme palette by @whanyu1212 in #381
- Prepare Wisp 0.1.0rc2 by @whanyu1212 in #382
Full Changelog: v0.1.0rc1...v0.1.0rc2
Wisp v0.1.0rc1
What's Changed
- fix: harden auth and session persistence by @whanyu1212 in #305
- perf: render assistant markdown with Rich by @whanyu1212 in #306
- fix: stabilize transcript scrollbar rendering by @whanyu1212 in #307
- fix: reject stale session writers by @whanyu1212 in #308
- Fix TUI transcript tail and scrollbar rendering by @whanyu1212 in #309
- bench: measure TUI streaming hotpaths by @whanyu1212 in #310
- perf: reduce mounted TUI transcript window by @whanyu1212 in #311
- fix: hide the TUI transcript scrollbar by @whanyu1212 in #312
- fix: copy rendered TUI markdown selections by @whanyu1212 in #313
- fix: show TUI Markdown selections by @whanyu1212 in #314
- bench: instrument TUI streaming hotpaths by @whanyu1212 in #315
- Enhance TUI tool call colors by @whanyu1212 in #316
- perf: reuse streamed Markdown layout strips by @whanyu1212 in #317
- Polish Textual composer and footer by @whanyu1212 in #318
- perf: coalesce streamed transcript layout by @whanyu1212 in #319
- chore: refresh Wisp brand assets by @whanyu1212 in #320
- perf: adapt Markdown stream cadence to render cost by @whanyu1212 in #321
- Add Wisp co-author attribution and GitHub avatar by @whanyu1212 in #322
- perf: reduce mounted TUI transcript window by @whanyu1212 in #323
- Make frontend and SDK shutdown bounded and cancellation-safe by @whanyu1212 in #324
- feat: bundle GitHub PR delivery skill by @whanyu1212 in #325
- fix: restore complete TUI scrollback navigation by @whanyu1212 in #326
- fix: harden tool execution protocol by @whanyu1212 in #327
- fix: avoid flicker when streamed responses complete by @whanyu1212 in #328
- fix: harden provider response lifecycle by @whanyu1212 in #329
- fix: keep prompt construction responsive by @whanyu1212 in #330
- fix: validate shared agent runtime configuration by @whanyu1212 in #331
- refactor: model agent runtime state transitions by @whanyu1212 in #333
- fix: bound read and Python grep work by @whanyu1212 in #332
- fix: make context estimation Unicode-aware by @whanyu1212 in #334
- fix: bound Python find and ls work by @whanyu1212 in #335
- feat: add curated TUI themes by @whanyu1212 in #336
- Centralize tool result event projection by @whanyu1212 in #345
- Fix built-in tool cwd for selected workspaces by @whanyu1212 in #346
- Improve context budget accounting by @whanyu1212 in #347
- Fix race-prone filesystem tool access by @whanyu1212 in #341
- Restyle the Textual composer by @whanyu1212 in #348
- fix: make tool failures actionable by @whanyu1212 in #349
- Fix provider failure streaming and thinking isolation by @whanyu1212 in #350
- style: match Textual composer to OpenCode by @whanyu1212 in #351
- feat: add diff viewer and recover scrollback by @whanyu1212 in #352
- fix: preserve TUI output during history reload by @whanyu1212 in #354
- fix: stop transcript follow-intent desyncing from content growth by @whanyu1212 in #355
- fix: address TUI audit findings across overlay, shell, and renderers by @whanyu1212 in #360
- fix: guard against UnboundLocalError on turn in run_agent_loop by @whanyu1212 in #361
- fix: export shared tool-result ordering helper from agent.transcript by @whanyu1212 in #362
- feat(tui): add Storm theme (Tokyo Night palette) by @whanyu1212 in #364
- feat: add request-boundary hook to the pure agent loop (#338 step 1/4) by @whanyu1212 in #363
- TUI: add responsive unified and split diff layouts by @whanyu1212 in #366
- fix: stabilize provider continuation boundaries by @whanyu1212 in #365
- feat(tui): differentiate approval safety surfaces by @whanyu1212 in #367
- feat(tui): add project tree mode to @ file picker by @whanyu1212 in #369
- fix: keep compaction and queues in one agent loop by @whanyu1212 in #368
- fix: reject truncated and inconsistent tool batches by @whanyu1212 in #370
- feat(tui): highlight prompt commands and file references by @whanyu1212 in #371
- Run independent tool calls concurrently by @whanyu1212 in #372
- Preserve structured historical tool context with safe provider fallbacks by @whanyu1212 in #373
- Prepare Wisp 0.1.0rc1 release candidate by @whanyu1212 in #374
Full Changelog: v0.1.0b4...v0.1.0rc1