Same pair of components (ArchivedCopies and ArchiveSourceField) and the same read payload. (1) Mirrors at submit. The submit and edit forms archive the primary source_url inline (posted as source_snapshot_url); the secondary source links still have to be archived from the event page afterwards, once the event exists. Extending the write to a list of (original_url, snapshot_url) pairs would cover them at submit time as well. Promote once analysts are actually filling the primary field and asking for the rest. (2) Proof citations. The source, each mirror and the provenance link carry their archive affordance on the event page, but a proof_link copy is storable and never rendered: the endpoint accepts it and nothing on the page opens or records it. The proof body renders through lib/proof.tsx, which walks marks rather than payload fields, so surfacing it needs the archived copies keyed by URL on the read payload before the renderer can pair a link with its copy. Promote once a dead citation is actually reported. (3) Second provider. The affordance opens one provider page, the Wayback Machine, while the field accepts a snapshot from every host in archival.md's provider table, so an analyst who prefers archive.today or Ghostarchive reaches it themselves. Restoring a second prefilled link means giving each provider a submitUrl of its own and bringing back the row that renders them, in the popover and in ArchiveSourceField alike, since the component now holds provider names alone and opens exactly one page. Promote if reaching archive.today by hand turns out to be real friction, or if Save Page Now starts refusing a host analysts actually cite.
Imported from planning/backlog.md.
Same pair of components (
ArchivedCopiesandArchiveSourceField) and the same read payload. (1) Mirrors at submit. The submit and edit forms archive the primarysource_urlinline (posted assource_snapshot_url); the secondary source links still have to be archived from the event page afterwards, once the event exists. Extending the write to a list of(original_url, snapshot_url)pairs would cover them at submit time as well. Promote once analysts are actually filling the primary field and asking for the rest. (2) Proof citations. The source, each mirror and the provenance link carry their archive affordance on the event page, but aproof_linkcopy is storable and never rendered: the endpoint accepts it and nothing on the page opens or records it. The proof body renders throughlib/proof.tsx, which walks marks rather than payload fields, so surfacing it needs the archived copies keyed by URL on the read payload before the renderer can pair a link with its copy. Promote once a dead citation is actually reported. (3) Second provider. The affordance opens one provider page, the Wayback Machine, while the field accepts a snapshot from every host inarchival.md's provider table, so an analyst who prefers archive.today or Ghostarchive reaches it themselves. Restoring a second prefilled link means giving each provider asubmitUrlof its own and bringing back the row that renders them, in the popover and inArchiveSourceFieldalike, since the component now holds provider names alone and opens exactly one page. Promote if reaching archive.today by hand turns out to be real friction, or if Save Page Now starts refusing a host analysts actually cite.Imported from planning/backlog.md.