v0.32.0 — slash surface trimmed; plan UX fixes; @<dir> expansion
Headline
The slash surface lost weight. Eleven redundant commands gone (/clear, /keys, /models, /effort, /rename, /forget, /think, /tool, /apply-plan, /semantic, /resume), the unified preset+model picker replaces three near-identical commands, and the two heaviest features almost nobody opted into — /harvest (Pillar-2 plan-state extraction) and /branch (parallel-sample selector) — are deleted along with their backing modules, events, transcript fields, and CLI flags. The four-pillar architecture collapses to three. The slash registry now carries a group tag (chat / setup / info / session / extend / code / jobs / advanced) and bare-/ suggestions render those groups with advanced rows hidden behind a + N advanced · type to search footer. A new ~/.reasonix/slash-usage.json counter sorts frequent commands first within a prefix.
The other half of the release is plan-mode UX. PlanLiveRow had nothing to dock — a code path that should have materialized an "active" plan card on approval was missing, so the bottom strip stayed empty after /plan. Fixed. And the per-step "Checkpoint — step done" picker fired in auto/yolo too, defeating the whole point of those modes; auto/yolo now resolve "continue" without prompting while still creating per-step rollback snapshots so /restore granularity stays intact. Plus a long-standing @-mention bug: typing @docs/ produced an empty not-file placeholder. It now expands to a recursive <directory> listing respecting the project's gitignore, and symlinked source files finally appear in the @-picker.
Features
- feat(semantic) — OpenAI-compatible embedding provider. Configure custom API URL / key / model / request body for embeddings, replacing the Ollama-only setup. Community contribution from @kabaka9527. (#424)
- feat(slash) — unified preset+model picker; cursor lands on the active row. Both
/preset(no arg) and/model(no arg) open it. (#453) - feat(slash) — grouped suggestions + usage telemetry;
slash.invokedevents emit to events.jsonl. (#453)
Bug fixes
- fix(plan) — dock active plan card. The approve path now materializes a
variant: "active"card soPlanLiveRowhas something to render; revise-accept replaces the card with merged steps. (#454) - fix(plan) — auto/yolo skip the per-step checkpoint picker. Per-step rollback snapshot still runs so
/restoregranularity is preserved;reviewmode is unchanged. (#454) - fix(at-mentions) —
@<dir>expands to a recursive listing capped atDEFAULT_AT_DIR_MAX_ENTRIES(200), respecting the project root's gitignore layers.@docs/and@docsresolve identically. (#455, closes #451) - fix(at-mentions) — symlinks-to-files appear in the
@-picker. BothlistFilesWithStatswalkers stat through symlinks; symlinks-to-dirs and broken links stay dropped. (#455, closes #451)
Breaking changes (public API)
src/index.ts drops the following exports — consumers using them break intentionally:
harvest,runBranches,aggregateBranchUsage,defaultSelector,emptyPlanState,isPlanStateEmpty- types:
TypedPlanState,HarvestOptions,BranchSample,BranchSummary,BranchProgress,BranchOptions,BranchResult,BranchSelector
CLI flags --harvest and --branch are also removed.
Install
npm install -g reasonix@0.32.0Full changelog: CHANGELOG.md