Chirio OAuth callbacks now show clear success and failure messages on Accounts; editing your own approved post re-stamps approval instead of sending it back through review.
Failed Instagram or Threads connects no longer look like nothing happened — Accounts reads Chirio's callback and shows a toast or danger banner. Editing a post you approved keeps its schedule; only someone else's approval is revoked on edit.
What we shipped
Clear connect outcomes on Accounts
Chirio sends users back to Dashboard → Social → Accounts with the OAuth result on the URL. Until now, a refused connect looked identical to one that never started — the account was missing and the page stayed silent.The page now reads those parameters once on load:
Success — a toast confirms the platform (and @username when Chirio provides it)
Failure — a danger banner explains the mapped reason (cancelled authorization, expired link, account limit, token exchange refused, and similar) plus Chirio's detail when the platform returned its own message
The URL is cleaned up afterward so a reload does not replay the verdict, and starting a new connect clears the previous failure.
Re-stamp when the editor approves their own post
Editing an approved or scheduled post used to send it back through review every time — even when you were the approver fixing a typo before tomorrow's slot.Now your own approval carries over: status and schedule stay put, and approved_at / approved_by re-stamp to you. The timeline records re-approved by the editor instead of a revocation.Approval still revokes when somebody else approved the post and has not seen your changes, or when you explicitly change status. Failed posts keep their approval too — fix the caption and hit Retry without a full re-approval round-trip.
Collection locale fallback for legacy folders
Folders created before translation groups sometimes had no translation_group_id, so Collection blocks on translated pages could still list source-locale cards. Resolution now falls back to path-based locale matching when the group lookup is empty.