1.1 KiB
1.1 KiB
| cairn | change | landed |
|---|---|---|
| log | pimdir-public-id | 2026-08-02 |
The pimdir backend shows a short public id, not the link id
The pimdir backend set Envelope.id = link_id (a long mid:…@… string) that
filled the envelope table's ID column and forced users to handle it. io-pimdir now
assigns each item a per-collection public seq; the backend uses it:
envelope_from_itemsetsid = seq.to_string().get_messageandsynced_placement(the write ops' resolver) parse the id as aseqand resolve it to the internallink_idviastore.get_item(collection, seq)before reading the body / staging the mutation.parse_idfails clearly on a non-numeric id.add_messagereturns the new item'sseqviastore.seq_for_link.
Verified against a live neverest-synced Stalwart store: envelope list shows ids
1..N (fitting the table), message read 3 reads by the short id, flag add 2 --flag flagged resolves the id and stages the mutation, and a non-numeric id
gives "Invalid message id … (expected a number)".
Spec updated: backends (ADDED "pimdir shows a short public id").