Preserve picker request failure details through picker.session #431

Closed
opened 2026-04-26 23:33:01 +00:00 by barrettruth · 0 comments
barrettruth commented 2026-04-26 23:33:01 +00:00

Problem

forge.picker.session currently collapses request and decode failures to false, nil. That drops stderr/stdout and JSON decode context before picker-specific code can decide whether the fetch failed, the response failed to decode, or the result was simply empty.

This makes many picker failures degrade into generic messages like failed to fetch ..., and it blocks follow-up fixes that want to distinguish empty results from real transport/parse failures.

Proposed solution

Preserve structured failure details through request_json, decode_json, prefetch_json, and pick_json so picker callers can surface real request/decode errors without reimplementing command parsing.

Notes

  • root tracker: #170
## Problem `forge.picker.session` currently collapses request and decode failures to `false, nil`. That drops stderr/stdout and JSON decode context before picker-specific code can decide whether the fetch failed, the response failed to decode, or the result was simply empty. This makes many picker failures degrade into generic messages like `failed to fetch ...`, and it blocks follow-up fixes that want to distinguish empty results from real transport/parse failures. ## Proposed solution Preserve structured failure details through `request_json`, `decode_json`, `prefetch_json`, and `pick_json` so picker callers can surface real request/decode errors without reimplementing command parsing. ## Notes - root tracker: #170
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
barrettruth/forge.nvim#431
No description provided.