Latest Results
feat(time-resolver): new package resolving now-relative temporal values
Temporal literals like `created > @now-7d` parse into inert `{ type: "now", offset }` values
and both adapters reject them with "Unresolved relative time value".
The resolution step was deliberately left out of core and the adapters so callers
control the reference instant; this adds the package that performs it.
- New `@filtron/time-resolver` package exporting `resolveTemporal(ast, { now? })`: returns a new AST with every relative point
(bare `@now`, offsets, range bounds) replaced by an absolute ISO 8601 UTC `date` value
- Fixed-length units (`s`, `m`, `h`, `d`, `w`) offset by exact milliseconds; `M`/`y`
move the calendar in UTC and clamp to month end (Jul 31 − 1M → Jun 30, Feb 29 + 1y → Feb 28)
- Structural sharing: subtrees without relative values come back by reference; a query without `@now` is identity-equal
- Ranges that invert after resolution throw, covering the ordering check the parser cannot do for relative bounds
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
PR: https://github.com/jbergstroem/filtron/pull/318
Closes: https://github.com/jbergstroem/filtron/issues/317 Latest Branches
N/A
renovate/codspeedhq-action-5.x -26%
renovate/codspeedhq-action-4.x 0%
renovate/actions-checkout-7.x © 2026 CodSpeed Technology