← PostifyCONTENT HISTORY

Update to Postify

Snapshot Oct 27, 2026 · 06:06 UTC · version 1.0.1

WHAT CHANGED

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.

Save Postify and check future changes in Following.

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

Before

Sep 30, 2026 · 23:07 UTC

cc1e6bfd2544d37a1913ee73a321f221b2c085fde793523bc4fdf1f970b75e17

After

Oct 27, 2026 · 06:06 UTC

8494e65b2e9f5bc4cda9fceeb44642ad3e7e5ad4bf59674d9985d4181fb1ffd8

Package file

Before

Sep 30, 2026 · 23:07 UTC

127

After

Oct 27, 2026 · 06:06 UTC

99

Package file

Before

Sep 30, 2026 · 23:07 UTC

2e91b7d125f22717f8737215026c5e556442df9cddbd0feedcca3d3deb42558c

After

Oct 27, 2026 · 06:06 UTC

db68be30a8a947a5501742b9aacbd0fb660f3df8a120f316a19af5827a5a34fe

Package file

Before

Sep 30, 2026 · 23:07 UTC

4104

After

Oct 27, 2026 · 06:06 UTC

8735

Compare saved observations

Download comparison JSON

Changed files

Choose a file to see its text changes. Binary or large files show metadata only.

.app.json →

.codex-plugin/plugin.json →

.mcp.json →

assets/icon-dark.png →

assets/icon.png →

assets/logo-dark.png →

assets/logo.png →

.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

BEFORE
"cc1e6bfd2544d37a1913ee73a321f221b2c085fde793523bc4fdf1f970b75e17"
AFTER
"8494e65b2e9f5bc4cda9fceeb44642ad3e7e5ad4bf59674d9985d4181fb1ffd8"

changed /files/.app.json/size

BEFORE
127
AFTER
99

changed /files/.codex-plugin~1plugin.json/sha256

BEFORE
"2e91b7d125f22717f8737215026c5e556442df9cddbd0feedcca3d3deb42558c"
AFTER
"db68be30a8a947a5501742b9aacbd0fb660f3df8a120f316a19af5827a5a34fe"

changed /files/.codex-plugin~1plugin.json/size

BEFORE
4104
AFTER
8735

added /files/.mcp.json

BEFORE
Field was absent
AFTER
{
  "sha256": "14ba7cd46635ec008feb9620b3506f03642e88596d330c51c6336f82378a1a82",
  "size": 104
}

added /files/assets~1icon-dark.png

BEFORE
Field was absent
AFTER
{
  "sha256": "96a2641973001ad1f4a62f12cf5ed7177efce608fa8432f6b8181995898a407a",
  "size": 1075053
}

added /files/assets~1icon.png

BEFORE
Field was absent
AFTER
{
  "sha256": "96a2641973001ad1f4a62f12cf5ed7177efce608fa8432f6b8181995898a407a",
  "size": 1075053
}

added /files/assets~1logo-dark.png

BEFORE
Field was absent
AFTER
{
  "sha256": "96a2641973001ad1f4a62f12cf5ed7177efce608fa8432f6b8181995898a407a",
  "size": 1075053
}

added /files/assets~1logo.png

BEFORE
Field was absent
AFTER
{
  "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