What's New
This release brings duration offsets to timestamp helpers, fixes visual mode yanking, cleans up SSH resource handling, and includes a round of internal refactoring across the HTTP client and editor.
Duration offsets for timestamps
The $timestamp, $timestampISO8601 and the new $timestampMs helper all support + / - offsets now. Need a token that expires in 6 days? A timestamp from 90 minutes ago? You can just write it inline like:
POST https://api.example.com/auth
Content-Type: application/json
{
"issued_at": "{{$timestamp}}",
"expires_at": "{{$timestamp + 6d}}",
"not_before": "{{$timestampISO8601 - 90m}}",
"issued_ms": "{{$timestampMs}}"
}
Offsets accept all standard Go duration units (s, m, h) plus d (days) and w (weeks). You can combine them too - 1w2d3h works just fine.
The same duration support extends to RTS scripts. time.addUnix now accepts a duration string as its second argument, and there's a new time.duration function that parses a duration string into seconds:
let expires = time.addUnix(time.unix(), "7d")
let ttl = time.duration("1h30m") // 5400
Visual mode yank fix
Visual selection is now properly inclusive - yanking abc with the cursor on c actually grabs all three characters instead of stopping at b.
SSH connection cleanup
SSH sessions now properly clean up authentication resources (agent sockets, key handles) when connections close. Previously these could leak if a session was torn down.
Other small improvements
- GraphQL GET fix - when a GraphQL query is sent as GET with query parameters, the mutated URL now persists correctly through template expansion. This was a subtle bug where the expanded URL could get lost.
- Metadata hints (like header name completions) now anchor correctly on lines other than the first one, so autocompletion works properly in multi-line request bodies.