Skip to content

B89: search past trails by what you remember - #67

Merged
westernCasa merged 1 commit into
mainfrom
feat/trail-recall
Nov 8, 2026
Merged

westernCasa merged 1 commit into
mainfrom
feat/trail-recall

Conversation

@westernCasa

Copy link
Copy Markdown
Owner

B89. Search past trails by what you remember.

Where (your choices: CommandBar + canvas search, local rules, go to it in its trail)

  • CommandBar (⌘L, ⌘T): a new "In your trails" group, up to four rows.
  • Canvas search bar: the same results under an "In your trails" heading, after Search the web, Ask and Private search. Cards on the current trail are left out there, since the search bar already marks them.
  • Each row says why it matched, the day and the trail: after “Memex – Encyclopedia” · Tue 3 Nov · Reading list.

What NODE reads (own rules, no AI, nothing leaves the computer)

  • Words: titles, sites, addresses, keywords, excerpts, question and note text, replies, group names. All words must match; title matches rank first.
  • Times: today, yesterday, this morning, last night, Tuesday, last Tuesday, this week, last week, this month, last month, in October, 3 days ago, 2 weeks ago, a few days ago, recently.
  • Order: after X, before X, around X, next to X. NODE finds the pages that match X, then the pages just after or before them in the same trail.
  • Kinds: video, song, podcast, question, thread, note, search, image, screenshot.
  • A trail: "in Rye breads".
  • Words like "the", "page", "site", "saw" are ignored. Pages that stayed in the timeline are found too.

Picking a result

  • Switches to its trail and selects its card on the canvas, with a short ring (opacity only; no motion with reduced motion).
  • A page that never became a card: shows the canvas and marks its row in the sidebar's timeline.

Code

  • New core/recall.js (no platform imports): parseRecall, recallIndex, recall.
  • main.js: trail:recall. preload.js: trailRecall.
  • renderer/app.js: CommandBar group, goRecall, timeline row marking. renderer/canvas.js: the list rows, showFound, flashCard. styles.css: tokens only.

Not in this PR: the Chromium build (its canvas page has the hook but no data yet).

Tests

  • test/recall-demo.js (npm run test:recall, in test:unit): 9 checks, including 6,000 pages in 40 trails indexed and searched in about 30 ms.
  • New test/e2e/51-trail-recall.js (13 checks), in both CI e2e lists.
  • Locally: test:unit, and e2e 33, 34, 36, 42, 43, 44, 49 and 50 still pass.

Generated by Claude Code

The CommandBar and the canvas search bar list up to four matches from all
trails under "In your trails", with why each matched, the day and the
trail. Local rules read words, times ("last Tuesday", "in October"), order
("after the Discogs page"), kinds ("video", "question") and a trail name.
Picking a result switches to its trail and selects its card, or marks its
row in the timeline when it never became a card.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011V7Bv7WZ9Q92MZoNWYwevQ
@westernCasa
westernCasa merged commit f70c19c into main Nov 8, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants