Update to Postify
Snapshot Oct 27, 2026 · 06:06 UTC · version 1.0.1
Package or technical metadata updated
Package or technical metadata updated
Observed in package metadata. These changes alone do not establish a new customer-facing feature.
Up to 3 plugins free · no card required.
All fields and original values.
These are saved file metadata. Open a changed file to read its text edits.
Package file
Sep 30, 2026 · 23:07 UTC
cc1e6bfd2544d37a1913ee73a321f221b2c085fde793523bc4fdf1f970b75e17
Oct 27, 2026 · 06:06 UTC
8494e65b2e9f5bc4cda9fceeb44642ad3e7e5ad4bf59674d9985d4181fb1ffd8
Package file
Sep 30, 2026 · 23:07 UTC
127
Oct 27, 2026 · 06:06 UTC
99
Package file
Sep 30, 2026 · 23:07 UTC
2e91b7d125f22717f8737215026c5e556442df9cddbd0feedcca3d3deb42558c
Oct 27, 2026 · 06:06 UTC
db68be30a8a947a5501742b9aacbd0fb660f3df8a120f316a19af5827a5a34fe
Package file
Sep 30, 2026 · 23:07 UTC
4104
Oct 27, 2026 · 06:06 UTC
8735
Compare saved observations
Download comparison JSONChanged files
Choose a file to see its text changes. Binary or large files show metadata only.
.codex-plugin/plugin.json
− removed · + added
--- before +++ after @@ -1,5 +1,4 @@ { - "apps": "./.app.json", "author": { "name": "14930398 Canada Inc." }, @@ -19,8 +18,78 @@ "shortDescription": "Draft and schedule posts", "supportURL": "https://app.usepostify.com/support", "termsOfServiceURL": "https://usepostify.com/terms", - "websiteURL": "https://usepostify.com" + "websiteURL": "https://usepostify.com", + "logo": "./assets/logo.png", + "logoDark": "./assets/logo-dark.png", + "composerIcon": "./assets/icon.png", + "composerIconDark": "./assets/icon-dark.png" }, "name": "app-6a7ae2565a148191802be85a9bf06ab2", - "version": "1.0.0" -} \ No newline at end of file + "version": "1.0.1", + "mcpServers": "./.mcp.json", + "extensions": { + "com.openai": { + "review": { + "test_cases": { + "positive": [ + { + "description": "List the scheduled queue", + "prompt": "List my scheduled posts in Postify.", + "tools_triggered": "list_posts", + "expected_behavior": "The 6 scheduled posts on the Harborline Supply Co. workspace, each with its post id, status of scheduled, scheduled datetime, a body excerpt, and the channels it targets. The account holds 23 posts overall (12 published, 6 scheduled, 4 draft, 1 failed), so the list is never empty." + }, + { + "description": "Open one post in full", + "prompt": "Open the first scheduled post you just listed and show me its per-channel variants and its schedule.", + "tools_triggered": "get_post", + "expected_behavior": "That single post with its per-channel text variants, its schedule, and its recurrence setting. The response is re-parsed through a narrow contract, so it carries the post's own fields and no database internals." + }, + { + "description": "Save a draft, publish nothing", + "prompt": "Draft a post for LinkedIn that says: Team offsite recap - three things we learned.", + "tools_triggered": "list_channels, create_draft", + "expected_behavior": "list_channels returns the 6 connected channels (X, LinkedIn, Instagram, Facebook, Threads, Pinterest) with handles, follower counts and health; Pinterest is deliberately in a reauth_required state and that is seeded, not broken. create_draft then returns the new post id with status draft. Nothing is scheduled and nothing is published - create_draft is structurally incapable of publishing." + }, + { + "description": "Reschedule a queued post", + "prompt": "Move that scheduled post you opened to next Tuesday at 09:00.", + "tools_triggered": "reschedule_post, get_post", + "expected_behavior": "The post's updated scheduled datetime echoed back, with its content unchanged. Re-running get_post on the same id shows the new time. Optionally ask for a suggested slot first: suggest_optimal_time returns up to three ranked times per platform computed deterministically from this workspace's own publish history, with basis set to account_data and no model call involved." + }, + { + "description": "Two-step publish with confirmation", + "prompt": "Publish the draft you just created now.", + "tools_triggered": "publish_now (called twice)", + "expected_behavior": "The first call is deliberately NOT executed: it returns an error-flagged result carrying the code CONFIRMATION_REQUIRED, a preview of exactly what would go live, and a short-lived confirmToken valid for about ten minutes. That first error flag is the safety gate working, not a failure. Reply with a confirmation such as Yes, confirm and publish it, and the assistant re-sends publish_now with the same arguments plus the token; the post is then queued for immediate publishing on the sandbox channels. No request leaves the server toward any real social platform." + } + ], + "negative": [ + { + "description": "Image generation for a post", + "prompt": "Generate an image of a hiking backpack on a mountain trail for my next Instagram post.", + "expected_behavior": "" + }, + { + "description": "Replying to social engagement", + "prompt": "Reply to the comments and DMs on my latest Instagram post.", + "expected_behavior": "" + }, + { + "description": "Billing and plan changes", + "prompt": "Upgrade my Postify subscription and show me this month's invoice.", + "expected_behavior": "" + } + ] + }, + "demo_recording_url": "https://drive.google.com/file/d/1avJgbDBWHCRI2uQnbboC0EipeCX5INkS/view", + "commerce": false, + "commerce_description": "" + }, + "publication": { + "countries": [], + "release_notes": "Logo refresh: the listing icons are replaced with the official 1024px brand logo. No change to the MCP server, tools, OAuth or test account." + } + } + }, + "apps": "./.app.json" +}
Full technical diff · 9 changed fields
changed /files/.app.json/sha256
"cc1e6bfd2544d37a1913ee73a321f221b2c085fde793523bc4fdf1f970b75e17"
"8494e65b2e9f5bc4cda9fceeb44642ad3e7e5ad4bf59674d9985d4181fb1ffd8"
changed /files/.app.json/size
127
99
changed /files/.codex-plugin~1plugin.json/sha256
"2e91b7d125f22717f8737215026c5e556442df9cddbd0feedcca3d3deb42558c"
"db68be30a8a947a5501742b9aacbd0fb660f3df8a120f316a19af5827a5a34fe"
changed /files/.codex-plugin~1plugin.json/size
4104
8735
added /files/.mcp.json
Field was absent
{
"sha256": "14ba7cd46635ec008feb9620b3506f03642e88596d330c51c6336f82378a1a82",
"size": 104
}added /files/assets~1icon-dark.png
Field was absent
{
"sha256": "96a2641973001ad1f4a62f12cf5ed7177efce608fa8432f6b8181995898a407a",
"size": 1075053
}added /files/assets~1icon.png
Field was absent
{
"sha256": "96a2641973001ad1f4a62f12cf5ed7177efce608fa8432f6b8181995898a407a",
"size": 1075053
}added /files/assets~1logo-dark.png
Field was absent
{
"sha256": "96a2641973001ad1f4a62f12cf5ed7177efce608fa8432f6b8181995898a407a",
"size": 1075053
}added /files/assets~1logo.png
Field was absent
{
"sha256": "96a2641973001ad1f4a62f12cf5ed7177efce608fa8432f6b8181995898a407a",
"size": 1075053
}Full snapshot data
{
"files": {
".app.json": {
"sha256": "8494e65b2e9f5bc4cda9fceeb44642ad3e7e5ad4bf59674d9985d4181fb1ffd8",
"size": 99
},
".codex-plugin/plugin.json": {
"sha256": "db68be30a8a947a5501742b9aacbd0fb660f3df8a120f316a19af5827a5a34fe",
"size": 8735
},
".mcp.json": {
"sha256": "14ba7cd46635ec008feb9620b3506f03642e88596d330c51c6336f82378a1a82",
"size": 104
},
"assets/icon-dark.png": {
"sha256": "96a2641973001ad1f4a62f12cf5ed7177efce608fa8432f6b8181995898a407a",
"size": 1075053
},
"assets/icon.png": {
"sha256": "96a2641973001ad1f4a62f12cf5ed7177efce608fa8432f6b8181995898a407a",
"size": 1075053
},
"assets/logo-dark.png": {
"sha256": "96a2641973001ad1f4a62f12cf5ed7177efce608fa8432f6b8181995898a407a",
"size": 1075053
},
"assets/logo.png": {
"sha256": "96a2641973001ad1f4a62f12cf5ed7177efce608fa8432f6b8181995898a407a",
"size": 1075053
}
}
}SHA-256 of public snapshot: 2f58e12c76984125d08cb13b77b320796f5c053f4c3f9dc2ee3f9dadcd22abce