Network drop or GitHub timeout currently means the article is lost (only cached briefly in SW memory). Queue failed saves to chrome.storage and retry when network comes back.
Trade-off: serializing image bytes to storage is heavy — may need to chunk or cap. Estimated medium effort.
