{"title":"OpenPost changelog","id":"https:\/\/openpo.st\/changelog","link":[{"@attributes":{"href":"https:\/\/openpo.st\/changelog"}},{"@attributes":{"href":"https:\/\/openpo.st\/changelog.xml","rel":"self","type":"application\/atom+xml"}}],"updated":"2026-11-14T00:00:00Z","entry":[{"title":"OpenPost v7.41.6","id":"https:\/\/openpo.st\/changelog#v7.41.6","link":{"@attributes":{"href":"https:\/\/openpo.st\/changelog#v7.41.6"}},"updated":"2026-11-14T00:00:00Z","content":"Fixed: A failed automatic alt-text generation no longer raises a page alert that can cover composer controls. The media editor shows the failure with a Try again action. Updated SvelteKit to address a security advisory affecting malformed rewritten paths. Bluesky direct messages now reach the account's own PDS. The bsky.social entryway answers chat requests with \"Method Not Implemented\", so Bluesky-hosted accounts never collected messages. Message collection stops retrying when a provider refuses access (HTTP 403) or does not offer chat for the account (HTTP 501). The account shows a clear status, OpenPost checks again daily, and these refusals no longer add failed job records. Grid view on Posts gives post text the full card width instead of one word per line. 3 more fixed entries in the full changelog. Removed: The Home page and tab are gone from the web app, the phone navigation, and the native app. Opening OpenPost now lands on Posts, and the personal landing preference offers Posts or New post. The full setup checklist that lived on Home is replaced by the next-step line in the composer. Added: Maintained umbrelOS App Store packaging with persistent local storage, independent per-install session and encryption keys, public URL settings, and provider callback and media access through Umbrel's gateway. Official store availability is subject to Umbrel's review. Changed: Ideas is a full page. A build keeps running when you leave the page and can be resumed from any screen. The sidebar shows the next scheduled posts with their count and time, in one navigation list. Inbox pages share one Collection issues control and one search plus Filters row. Features you turned off are no longer counted as issues, and Reviews and Comments have their own empty states. Settings navigation has icons and clearer groups. Instance configuration rows stack on narrow panels and keep environment variable notes quiet. Billing leads with the current plan and usage; payment actions sit together with a quieter cancel action. 2 more changed entries in the full changelog."},{"title":"OpenPost v7.40.2","id":"https:\/\/openpo.st\/changelog#v7.40.2","link":{"@attributes":{"href":"https:\/\/openpo.st\/changelog#v7.40.2"}},"updated":"2026-11-13T00:00:00Z","content":"Added: Self-hosted AI gateways can use `OPENPOST_AI_BASE_URL` with `OPENPOST_AI_API_KEY` and their model settings for post generation, image alt text, meme suggestions and workflow decisions. Custom endpoints omit OpenRouter-specific routing and attribution. Legacy `OPENROUTER_API_KEY` and mounted-secret settings remain supported as fallbacks. (#508) Fixed: Server and CLI builds use Go 1.27.4, fixing the standard library HTTP vulnerability GO-2026-6859. CI retries transient media-tool downloads and waits for SQLite write locks in the Messages recovery fixture. Changed: The mobile app uses the current compatible Expo patch versions."},{"title":"OpenPost v7.39.0","id":"https:\/\/openpo.st\/changelog#v7.39.0","link":{"@attributes":{"href":"https:\/\/openpo.st\/changelog#v7.39.0"}},"updated":"2026-11-10T00:00:00Z","content":"Added: Admins can require client review for every post in a workspace (Workspace settings > Client review). While it is on, scheduling, publishing and provider writes refuse any post whose current version has no client approval, including posts created through the API, CLI, MCP and Workflows, and automatic reposts are disabled. Enabling it requires client reviews on the deployment (`OPENPOST_CLIENT_REVIEWS_ENABLED`); disabling it requires a signed-in browser session, so API and CLI tokens cannot turn it off. `GET`\/`PATCH \/workspaces\/{id}\/settings` and the app bootstrap expose the new `require_client_review` field. Fixed: The `video_edit` and `image_edit` MCP tools no longer advertise `\"required\": null` for actions without required value fields (`text.style`, `item.transform`, `page.add`, `page.duplicate`, `page.delete`). MCP clients that validate tool schemas, such as Claude Code, rejected both tools and did not load them. The workspace timezone picker now lists every IANA time zone the browser supports, including Atlantic (America\/Halifax) and Newfoundland (America\/St_Johns) time. A zone saved through the API stays selectable even when the browser lists it under another name. SQLite upgrades no longer stop at migration 171 because of unrelated historical foreign-key violations in sync-state tables. The engagement table rebuild still validates its own foreign keys and incoming references, preserving existing data."},{"title":"OpenPost v7.38.6","id":"https:\/\/openpo.st\/changelog#v7.38.6","link":{"@attributes":{"href":"https:\/\/openpo.st\/changelog#v7.38.6"}},"updated":"2026-11-08T00:00:00Z","content":"Fixed: The Video Editor preview unlocks its audio on the first pointer interaction, so playback started after a preview click keeps sound when the browser has suspended the shared audio context. Feedback, diagnostics and meme requests accept bodies up to their documented limit exactly; the previous allowance of one extra byte is gone. Small account avatars keep one initial so the platform badge no longer covers the second letter. Changed: Interface sounds use the new cuelume cue set. Signature, Velvet and Crisp now map to cuelume's warm, trackpad and mechanical materials, and each sound follows its interface job: selecting, confirming, closing, toggling on or off, deleting and errors. The server is built with Go 1.27.3 on Alpine 3.24.4, with refreshed Go and JavaScript dependencies. Analytics is redesigned around dithered charts: stat cards carry their recent trend, daily visibility and engagement stack by network, followers show the account-wide total over time, the audience donut spotlights an account from its legend, and a network profile compares every network with the strongest one on each measure. Account rows show a follower trend. Charts can be inspected from the keyboard with a live readout, and every chart keeps an accessible data table. Themes without the dither decoration draw flat fills in their own chart colors. Instance administration trends use the same dithered bar charts."},{"title":"OpenPost v7.37.2","id":"https:\/\/openpo.st\/changelog#v7.37.2","link":{"@attributes":{"href":"https:\/\/openpo.st\/changelog#v7.37.2"}},"updated":"2026-11-05T00:00:00Z","content":"Fixed: Facebook Reels retain their video ID after publishing, so comments and video analytics use the correct Meta object. Pending Reel publishes also recover correctly from existing checkpoints. Previously published Reels with an incorrect stored ID still need their identity corrected. Keep every channel in the public navigation menu reachable on shorter desktop windows with a bounded, scrollable panel. Nightly and manually started package checks compare SDK, CLI, and n8n changes against the latest published release instead of failing with an empty comparison revision. Updated the mobile app to the compatible Expo SDK 57 patch releases while retaining its Swift concurrency compatibility patch. The new Android app version is 0.2.73."},{"title":"OpenPost v7.37.1","id":"https:\/\/openpo.st\/changelog#v7.37.1","link":{"@attributes":{"href":"https:\/\/openpo.st\/changelog#v7.37.1"}},"updated":"2026-11-02T00:00:00Z","content":"Fixed: Restore official YouTube icons in public channel navigation and cards, and keep the account connection row compact while preserving the artwork's colors, proportions and clear space."},{"title":"OpenPost v7.37.0","id":"https:\/\/openpo.st\/changelog#v7.37.0","link":{"@attributes":{"href":"https:\/\/openpo.st\/changelog#v7.37.0"}},"updated":"2026-11-02T00:00:00Z","content":"Fixed: Instagram keeps ambiguous `media_publish` errors pending for read-only reconciliation, including Story sequence progress, rather than permitting another publish request. Instagram does not send a publish request for a container already reported as published, even when a later status read is inconsistent. Direct Instagram Login reads older messages through the conversation node and retains its nested pagination cursor. Graph `100\/33` guidance describes inaccessible objects and unsupported actions without claiming that a Facebook Page was deleted or asking users to republish a live post. Instagram server diagnostics identify the failed Graph operation and endpoint template, a bounded object ID, and safe provider codes without logging tokens, captions, media URLs, or response bodies. 36 more fixed entries in the full changelog. Changed: When a connected account's credentials break, OpenPost now notifies the person who connected the account and the workspace administrators once per failure, in addition to the per-post failure notification for the post's author. Repeated failures for the same broken account no longer create a separate notification for every scheduled post. Simplified Analytics on web and mobile by removing recommendation cards and repeated explanations. Web reporting actions use compact labelled icons, and audience by account appears directly after the trend chart. Analytics reuses the shared account picker with multiple-account and Social Set selection. Totals, charts, rankings, and export defaults follow the same selection while preserving Visibility and provider-specific measurements. Refresh the README, product screenshots, and demos for the Calm interface. New default Calm theme with Manrope, softer surfaces, and a single warm accent. Saved themes are unchanged. 46 more changed entries in the full changelog. Added: Read and answer dev\/null comments and nested replies from Inbox using existing SSH connections. Add an automatic first comment to dev\/null posts. Instagram destinations now enforce Meta's 1000-character alt-text maximum on image posts, including carousel image children. Scheduling, publishing, and API or MCP submissions that project longer alt text onto an Instagram image destination fail readiness and publish validation with a clear message instead of silently truncating. Alt text on Reels, Stories, and video carousel children is never sent to Meta and stays unvalidated. The Instagram destination settings dialog caps the alt-text input at the limit and shows the provider hint; the media library and other destinations keep accepting longer descriptions. Instagram connections through Facebook Login now support Meta's Unified Login for newly created Meta apps: provider app entries accept a `config_id`, and the consent dialog is built from the Facebook Login for Business configuration instead of explicit scopes. Apps created before Meta's change keep working unchanged; end-to-end verification against a fresh Meta app is tracked separately (#495). Improved: Run development servers from multiple checkouts with separate local URLs, ports, databases, and media."},{"title":"OpenPost v7.35.4","id":"https:\/\/openpo.st\/changelog#v7.35.4","link":{"@attributes":{"href":"https:\/\/openpo.st\/changelog#v7.35.4"}},"updated":"2026-10-30T00:00:00Z","content":"Fixed: Instagram Story publishing omits the unsupported `alt_text` parameter and records a rejected media container as a definite failure with the provider error visible, instead of leaving the publication processing until reconciliation expires. Resuming an Instagram Story create checkpoint now retries container creation when Meta never returned a container id. `openpost publication create --content-profile story` no longer writes a `post_type` setting that server validation rejects. Release recording now removes the changelog entries that shipped with the tag instead of repeating them in every later release, while keeping entries added after the tag."},{"title":"OpenPost v7.35.3","id":"https:\/\/openpo.st\/changelog#v7.35.3","link":{"@attributes":{"href":"https:\/\/openpo.st\/changelog#v7.35.3"}},"updated":"2026-10-30T00:00:00Z","content":"Fixed: Self-hosted instance administrators can record certification evidence for Telegram bot publishing. Recording derived the expected contract from the managed-production flag, while readiness decisions and the certification context derived it from the provider's mandatory certification policy, so every Telegram, Pinterest and Google Business Profile evidence append on a self-hosted instance was rejected with \"provider readiness evidence was rejected\". Both paths now share one contract derivation."},{"title":"OpenPost v7.35.2","id":"https:\/\/openpo.st\/changelog#v7.35.2","link":{"@attributes":{"href":"https:\/\/openpo.st\/changelog#v7.35.2"}},"updated":"2026-10-30T00:00:00Z","content":"Fixed: Prevent a delayed GitHub run status from failing release CI coordination. Retry pending tag status briefly and retain main CI when tag liveness cannot be confirmed, while keeping full release qualification required. Restore public site delivery after CI reruns retain an earlier successful public build, while keeping artifacts tied to their original successful execution. Self-hosted instance administrators can record certification evidence for Telegram bot publishing. Recording derived the expected contract from the managed-production flag, while readiness decisions and the certification context derived it from the provider's mandatory certification policy, so every Telegram, Pinterest and Google Business Profile evidence append on a self-hosted instance was rejected with \"provider readiness evidence was rejected\". Both paths now share one contract derivation."}]}