You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: --since recency filter (drop sources older than a cutoff) (#62)
Builds on v0.14's published-date extraction. --since=<date|duration>
(env DEEPDIVE_SINCE) drops a fetched web source whose detected publication
date precedes the cutoff — absolute date (2024, 2024-06-15) or duration
meaning "that long ago" (30d, 2w). Dateless sources are kept (no penalty
for missing metadata); --include / continue sources are exempt. Emits a
new `stale` fetch.skipped reason. A supplied-but-unparseable value is a
hard error (exit 2). New pure resolveSince (exported); persistable as
`since` in the config file. 5 new tests (547 total green).
Copy file name to clipboardExpand all lines: CHANGELOG.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
7
7
## [Unreleased]
8
8
9
+
### Added — `--since` recency filter
10
+
11
+
-**`--since=<date|duration>`** (env `DEEPDIVE_SINCE`) — drop fetched sources published before a cutoff, building on v0.14's published-date extraction. Accepts an absolute date (`2024`, `2024-06`, `2024-06-15`) or a relative duration meaning "that long ago" (`30d`, `12h`, `2w`). A web source whose detected publication date precedes the cutoff is skipped (new `stale``fetch.skipped` reason); sources with no detectable date are kept (no penalty for missing metadata). Doesn't apply to `--include` / `continue` sources. New pure `resolveSince` (exported); persistable as `since` in the config file. A supplied-but-unparseable `--since` is a hard error (exit 2), not a silent no-op.
12
+
9
13
## [0.14.0] - 2026-06-09
10
14
11
15
### Added — config file, named profiles, shell completion
Copy file name to clipboardExpand all lines: README.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -188,6 +188,12 @@ Two signals that help you read a report at a glance.
188
188
189
189
**Published dates.** When deepdive fetches a page, it tries to recover the page's publication date from the rendered HTML — JSON-LD `datePublished`, `<meta property="article:published_time">` and friends, or a `<time datetime>` element. When it finds one, the source row shows it (`fetched 2026-05-07 · published 2024-03-15`), the HTML export shows it, the JSON carries it as `publishedAt`, **and** the synthesizer sees it — so when sources disagree it can prefer the more recent one and flag claims that come from an older page. Pages that don't expose a date (many SPAs) simply don't get the annotation; nothing breaks.
190
190
191
+
**Recency filter.** Pass `--since` (or `DEEPDIVE_SINCE`) to drop stale sources outright — an absolute date (`--since=2024`, `--since=2024-06-15`) or a duration meaning "that long ago" (`--since=30d`, `--since=2w`). A fetched page whose detected publication date is before the cutoff is skipped (`stale` in `--verbose`); pages with no detectable date are kept, so a missing-metadata page is never penalized. Useful for fast-moving topics where a 2019 blog post is worse than no answer.
192
+
193
+
```bash
194
+
deepdive "best way to deploy a node app in 2026" --since=365d --deep
195
+
```
196
+
191
197
**Confidence.** After each run, alongside the cost line, deepdive prints a one-line coverage read:
0 commit comments