feat(ui): show inline images in the Details pane #78
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/71-inline-images-details"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Draws images from PR and issue bodies inline in the Details pane, in kitty and Ghostty (tmux needs
allow-passthrough). Everything else keeps today's🖼 altlink, silently. Part 3 of #60, on top of #65 (fetch/decode) and #66 (terminal layer).Changes
internal/ui/markdown):Images(body)lists block images (a top-level paragraph holding only images, each optionally wrapped in a link);RenderWithImages(body, width, blocks)splices prepared lines in.Renderis the same call with nil, byte-identical to before.internal/ui/images.go,details.go,model.go): per-image state (loading, ready, failed), loads throughcore.Service.Image, transmit/place throughtermimg, memo keyed on animgGencounter. Resize re-fits; pane height caps the image.cmd/lazyforge/main.godeletes them afterRunreturns so SIGINT/SIGTERM exits are covered too.Imagessection with aShow imagestoggle, default on ([images] showin the config file).docs/design.mdrecords the behavior; ADR 0016 has the final signatures.make testnow passes-timeout=2mso a spinning test fails fast.Decisions
<img>keeps today's rendering (it draws nothing now).Update, so the release runs afterRunreturns.Test plan
make build,make test(race, -timeout=2m, 13 packages, about 30 s),go vet,gofumpt,go mod tidy -diff, golangci-lint v2.14.0 (0 issues);go.mod/go.sumunchanged.Runrelease inmain.go(no headless test).kill -TERM); a logged-in image download from a real forge.Follow-ups
<img>and other terminals stay out of scope.Refs #71
🤖 Generated with Claude Code
https://claude.ai/code/session_01APHERaPcnmg6YuAkRuoDYq