Repository navigation
v1.1.1 - Docs home fix and scheduler recovery
Scheduled Instagram posts now recover when a publishing run stops partway, and a post that reached Instagram is never marked failed or published twice. This release also fixes the empty docs home page.
Fixed
- A scheduled post no longer stays in Publishing when a run stops partway. The next run takes it over after 20 minutes.
- A post that reached Instagram is no longer marked failed when Instagram's reply is lost. Before deciding, the scheduler asks Instagram whether the post went out, so it is never published twice.
- A timeout or a temporary Instagram error no longer fails a post at once. The post is tried again on the next two runs, and its row shows "Trying again on the next run".
- Deleting or editing a post can no longer change one that is being published.
- The overdue alert in Publish also warns about posts stuck in Publishing.
- The docs home at https://twiligent.ujjwal.fyi/docs shows the Introduction page again.
Changed
- The GitHub Actions backup runs at minutes 7, 22, 37 and 52, one run at a time, with a 14 minute limit. GitHub often starts these runs hours late, so the app and the docs no longer promise 15 minutes for it. The server's own scheduler still publishes within 15 minutes.
Upgrading
If you run your own Twiligent, run this SQL in the Supabase SQL editor before you deploy this version. It adds two columns and two indexes to scheduled_posts, and marks posts that were stuck in Publishing as failed, with a note to check Instagram before scheduling them again.
alter table public.scheduled_posts
add column if not exists claimed_at timestamptz,
add column if not exists attempts integer not null default 0;
update public.scheduled_posts
set status = 'failed',
data = data || jsonb_build_object('error', 'Publishing was interrupted before Twiligent tracked it. Check Instagram before scheduling this post again.')
where status = 'publishing' and claimed_at is null;
create index if not exists scheduled_posts_user_id_idx on public.scheduled_posts (user_id);
create index if not exists scheduled_posts_due_idx on public.scheduled_posts (status, scheduled_at);The same SQL is in Upgrading an existing instance.
Full list of changes: CHANGELOG.md