Not really, because zoxide's "aging" is a global multiplicative downscale of
cumulative scores. It doesn't solve the problem of "Historical Rigidity."
In zoxide, every visit you have ever made contributes to a monolithic frequency
score. Because the "aging" is a global multiplier (0.9), it preserves the
relative proportions of your history. If "Project A" has 1000 visits from three
months ago, its score can remain so high that it still outranks "Project B," which
you started this week and visited 50 times. This is why zoxide provides a manual
remove command -- users sometimes have to intervene when the "ghosts" of old projects
won't stop winning matches. I have never felt the need to do something like that
in sd (although the option is there, mostly as a historic artifact).
In sd, the ranking is based on the density of visits within a fixed window (the
"Attention Span").
If you haven't visited "Project A" in your last ≈1000 moves, it has exited the
window and is ignored for ranking purposes (as long as a pattern match is found
elsewhere on the stack -- otherwise fallback logic kicks in and "Project A" is still
discoverable). So it doesn't matter if you visited it 1000 times earlier in the
year; it no longer occupies your "attention." Conversely, if you've visited
"Project B" 50 times in the last two days, those visits occupy a high-weight
portion of the power-law curve.
sd essentially uses a sliding window weighted summation approach.
It prioritizes what you are doing
now without being weighed down by the "debt" of what you were doing months ago.
This provides "Zero Maintenance" because the math naturally suppresses old signals
as they exit the window, whereas cumulative models might eventually require manual
pruning to fix a sluggish ranking.
Money in mailed in envelopes. Western Union. Prepaid credit cards. Stolen credit cards. Bank transfer to a legitimate business that funnels it to their drug empire.
reply