Summary
Once it can be done faithfully, bring back a non-interactive fuzzy filter shaped like fzf --filter. The previous implementation wrapped rapidfuzz (WRatio / partial_ratio), which only approximated fzf's scoring; a re-introduction should port fzf's actual algorithm so --algo v1|v2, the extended-search grammar, and --tiebreak behave like fzf. Companion to the removal (linked below).
Reference — fzf v0.72.0
- Fuzzy algorithms (
--algo):
- Extended-search grammar (
^prefix, suffix$, 'exact, !negation, AND, | OR):
- Tiebreak criteria (length / begin / end / index / chunk):
- Non-interactive
--filter / -f mode (match stdin, print, no TUI):
Open questions
- Port fzf's V1/V2 scoring + tiebreak directly (or via a faithful Python port) rather than re-introducing the rapidfuzz approximation.
- Keep it a generic stdin filter (fzf-parity, pipe-friendly), or also add a mode that filters the agent stores so it fits an agent-history tool?
Acceptance criteria
--algo v1|v2, extended-search tokens, and --tiebreak match fzf --filter output on a shared fixture corpus.
- Restore the CLI page + card and the test suite; full gate green.
Summary
Once it can be done faithfully, bring back a non-interactive fuzzy filter shaped like
fzf --filter. The previous implementation wrapped rapidfuzz (WRatio/partial_ratio), which only approximated fzf's scoring; a re-introduction should port fzf's actual algorithm so--algo v1|v2, the extended-search grammar, and--tiebreakbehave like fzf. Companion to the removal (linked below).Reference — fzf v0.72.0
--algo):FuzzyMatchV2: https://github.com/junegunn/fzf/blob/v0.72.0/src/algo/algo.go#L428-L710FuzzyMatchV1: https://github.com/junegunn/fzf/blob/v0.72.0/src/algo/algo.go#L711-L790^prefix,suffix$,'exact,!negation,AND,|OR):parseTerms: https://github.com/junegunn/fzf/blob/v0.72.0/src/pattern.go#L168-L251BuildPattern: https://github.com/junegunn/fzf/blob/v0.72.0/src/pattern.go#L79-L167criterion: https://github.com/junegunn/fzf/blob/v0.72.0/src/options.go#L265-L274parseTiebreak: https://github.com/junegunn/fzf/blob/v0.72.0/src/options.go#L1315-L1370--filter/-fmode (match stdin, print, no TUI):Open questions
Acceptance criteria
--algo v1|v2, extended-search tokens, and--tiebreakmatchfzf --filteroutput on a shared fixture corpus.