Repository navigation
Rich history search and metadata #143
Copy link
Copy link
Closed
1 / 11 of 1 issue completedLabels
area:shellShell backend and integrationShell backend and integrationarea:uiUI and visual presentationUI and visual presentationtype:featureNew feature or improvementNew feature or improvement
Description
Goal
Native history that uses what NMSh already knows, with structured search.
NMSh already records much more than flat zsh history. Native history should eventually support:
- command
- cwd
- project
- exit status
- duration
- date/time
- session
- success/failure
- frecency
- possibly command-sequence context
UX / product direction
Structured filters in /history search, for example:
cwd: project: exit: before: after: session: duration:
/history= command-level search./resume= session-level continuity. This does not replace/resume.- Selecting a result restores it into the editor without running it (current Bare /history should enter interactive history search #120 behavior).
Scope
- A local, private metadata store. Derive or index from the session journal (Continuous session journal and advanced /resume #88) where possible rather than duplicating it.
- Import existing zsh history so users start with their past commands.
- Privacy: leading-space and
HISTORY_IGNORErules; ability to delete entries. - Responsive with 100k+ entries.
Non-goals
- Sync or cloud features.
- Replacing
/resume.
Acceptance criteria
- Commands run in NMSh are recorded with the metadata above.
- Filters work and combine; plain text search keeps working.
- Search stays responsive on a large benchmark history.
- Ignored commands are never stored.
Dependencies / related
- Part of Provider framework and unified provider UX #134 (History/Search family). Child: Atuin history provider #144 Atuin.
- Feeds NMSh Native Suggestions v2 #138 ranking and Smart directory navigation and zoxide integration #147 directory frecency. Related Continuous session journal and advanced /resume #88, Bare /history should enter interactive history search #120.
Research references
- Atuin: https://github.com/atuinsh/atuin
- McFly: https://github.com/cantino/mcfly (reference only; no separate issue planned)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:shellShell backend and integrationShell backend and integrationarea:uiUI and visual presentationUI and visual presentationtype:featureNew feature or improvementNew feature or improvement
Activity
raiseCatError commentedon Sep 30, 2026
Development implementation is reviewable in #235, with cumulative hardening in #240; final acceptance documentation is #241. These are dependent, unmerged PRs on current dev, with no release/version bump.
The complete code head passed 714 local tests, build, typecheck, benchmark types and diff checks, plus Node 22/26 CI. Architecture and limitations describe what is implemented and deferred. One physical-QA checklist covers the relevant keyboard/layout/provider/privacy checks; it has not been performed.
This issue stays open until release. Project status could not be updated because the available token lacks read:project; active branches/PRs provide durable work status.
raiseCatError commentedon Oct 4, 2026
Implemented on the v0.16 branch (PR #303,
feature/v016-platform-portability-agents). Structured command history with cwd/project/exit/duration/session metadata, combinable filters, zsh import, ignore rules and a 100k-entry budget:tests/structuredHistory.test.ts,tests/historySearch.test.ts,tests/historyRanking.test.ts. It was part of the integrated build the maintainer physically validated in the earlier v0.16 QA pass; closing with the implementation.