Skip to content

feat: v1.2 — Temporal Search#14

Merged
devwhodevs merged 9 commits intomainfrom
feature/v1.2-temporal-search
Mar 26, 2026
Merged

feat: v1.2 — Temporal Search#14
devwhodevs merged 9 commits intomainfrom
feature/v1.2-temporal-search

Conversation

@devwhodevs
Copy link
Copy Markdown
Owner

Summary

  • New module: temporal.rs — date extraction, heuristic parsing, temporal scoring
  • 5th RRF lane: temporal search activates only when query has a time signal ("yesterday", "last week", "March 2026", etc.)
  • Date extraction during indexing: frontmatter date: field → YYYY-MM-DD filename → NULL (priority order). 41/105 vault files have extractable dates.
  • Heuristic + LLM detection: keyword scanner for common patterns + orchestrator extracts date ranges from natural language
  • Temporal candidate injection: date-matched files enter candidate pool as graph seeds
  • Confidence % display: search results show [97%] instead of raw RRF scores [0.05]
  • Date coverage stats: engraph status shows Dates: N/M files
  • UTF-8 safe: handles multi-byte characters in filenames (em dashes, etc.)

Stats

Metric Before After
Modules 22 23
MCP tools 19 19
Tests 318 361
RRF lanes 4 5 (temporal, when triggered)
Clippy warnings 0 0

Test plan

  • cargo test --lib — 361 pass
  • cargo clippy -- -D warnings — 0 warnings
  • cargo fmt --check — clean
  • Live vault: full rebuild indexes 41/105 dates
  • Non-temporal search shows confidence % (identical ranking)
  • "what happened yesterday" activates temporal lane
  • "last week updates" activates temporal lane
  • "March 2026" activates temporal lane with absolute date
  • "recent changes" activates temporal lane
  • Multi-byte UTF-8 filenames (em dashes) don't panic

…poral scoring

Pure functions for temporal search: extract_note_date from frontmatter/filename,
temporal_score for proximity decay, parse_date_range_heuristic for natural language
temporal keywords, and parse_date_range_from_json for LLM orchestrator output.
33 unit tests covering all functions.
…le signature

Add note_date INTEGER column to files table via fire-and-forget migration.
Extend insert_file with note_date parameter, update all FileRecord construction
sites to include the new field, and add get_files_in_date_range + count_files_with_dates
query methods. All 141 call sites across 10 files updated.
@devwhodevs devwhodevs merged commit c703fad into main Mar 26, 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.

1 participant