Changelog

Every capture improvement, fix, and security change — documented in the open. This is what active maintenance looks like.

actively maintained latest v0.9.10 12 releases
filter
legend NewImprovedDeprecatedRemovedFixedSecurity

v0.9.10

Latest Sep 6, 2026
Fixed
**Claude capture-all could stop partway through the conversation and still report success.** The history sweep finds a conversation's own pagination requests by looking for its id in the URL, and the pattern did not include Claude Cowork (`/cowork/<id>`). With no id to match it saw zero requests, answered "history is idle" from the first moment, and stopped with 74 of 163 messages loaded — producing a clean-looking PDF that began mid-conversation.
**The "history has stopped" threshold is no longer a fixed number.** Measured gaps between Claude history pages reached 3079ms against a 1500ms threshold, and a later run measured 4199ms — the worst case kept moving. The wait now scales to twice the largest gap the current sweep has actually observed, floored at 4s and capped at 15s, so a slow connection buys its own patience.
**Every strip carried a washed-out row of text on Claude.** Claude paints a 48px fade above the composer; the capture's bottom edge was derived from the composer's top and therefore sat 44px inside it. The window now stops above the fade, detected by behaviour rather than by class name.
**Claude captures aborted at "Capture incomplete".** Claude's feed reserves estimated space for undrawn messages and rewrites it as they mount, so its scroll height swung ~22,000px mid-capture; a scroll issued at a short moment was clamped by the browser, once to zero. The position is now re-asserted once the layout settles.
**A capture could fail with "entry could not be re-resolved during pre-measure".** The walk that finds an unrendered message assumed Claude's mounted rows are contiguous; measured live, 15 rows spanned indices 14..141. It now steers by the nearest mounted row.
**PDF pages no longer break through the middle of a line of text.** Page breaks snap to the nearest line boundary, measured per message so the snapping is valid in ChatGPT's frozen capture coordinates, and taken from text nodes so a code block's lines are visible to it.
**Captures no longer carry a wide blank margin on both sides.** The crop followed the full-width conversation row rather than the column the message paints in — measured on Gemini as a 1428px row around 710px of text.
**Diagnostics that reached users as `[object Object]`** now render their numbers inline, at all 22 log sites rather than the one that was reported.

v0.9.9

Sep 4, 2026
Fixed
**A Clarishot message left on screen could be photographed into the next capture.** After a capture, Clarishot shows a small card for a few seconds ("Copied 3 messages", or an error). Starting another single-message capture while that card was still up could include it in the new screenshot when the message sat underneath it. Cards are now kept out of every capture frame, and clicking a camera while a previous card is still up dismisses that card first, so only one result shows at a time.
ChatGPTthe camera no longer appears inside a message's **Share** dialog. The dialog shows a preview of the message, and Clarishot mistook the preview's code block for a real one and added a camera that could not be clicked.