← FormatryCONTENT HISTORY

Update to Formatry

Snapshot Nov 3, 2026 · 06:11 UTC · version 0.4.2

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 Formatry and check future changes in Following.

Up to 10 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

Oct 24, 2026 · 13:41 UTC

65b8c21627d85823d7e91bfe7c29d45d5f6d0bcb75b5ef56b6154fefde917845

After

Nov 3, 2026 · 06:11 UTC

306a3d6dd5cfb73c37f96b2083e34851c69642d241ac9be3a46f3713b584be08

Package file

Before

Oct 24, 2026 · 13:41 UTC

7626

After

Nov 3, 2026 · 06:11 UTC

10433

Package file

Before

Oct 24, 2026 · 13:41 UTC

abe2852d165049a42ef7f47299223e26104bd95cf434b065946d6c5b8ed63c6b

After

Nov 3, 2026 · 06:11 UTC

281443c72c6035dadef61e65840ca1e73139d39eaadfadc57d446972554987d7

Package file

Before

Oct 24, 2026 · 13:41 UTC

119

After

Nov 3, 2026 · 06:11 UTC

266

Compare saved observations

Download comparison JSON

plugin.json

− removed · + added

--- before
+++ after
@@ -1,7 +1,7 @@
 {
   "name": "formatry-api",
-  "version": "0.4.0",
-  "description": "Create advertising images from your product photos and brand copy.",
+  "version": "0.4.2",
+  "description": "Create advertising images and animated banners from your product photos and brand copy.",
   "author": {
     "name": "Mikhail Drozdov",
     "email": "support@formatry.cc",
@@ -29,27 +29,27 @@
               "expected_behavior": "The authenticated demo account returns authenticated: true, status: \"credential_present\", and a safe next action. It returns no credential and does not claim that other Studio capabilities are ready."
             },
             {
-              "description": "Use the authenticated demo account with deterministic sample balance and preview quota; keep the two allowances distinct.",
-              "prompt": "Check balance and preview quota before creating anything.",
-              "tools_triggered": "formatry_check_balance, formatry_get_preview_quota",
-              "expected_behavior": "Return separate structured balance and preview-quota values with recovery metadata; do not treat one allowance as the other."
+              "description": "Use the dedicated reviewer account's existing ordinary credits and saved demo creative. Repeat GIF, animated WebP and MP4 as separate exact-revision output selections, approving each quoted ordinary credit cost. Animation shares Studio's account balance; no subscription or separate Animation quota is required. The free-image allowance does not cover Animation.",
+              "prompt": "Check my account balance and preview allowance, animate my saved demo banner for three seconds and show the moving preview. Quote one GIF using my existing ordinary credits and wait for my approval of its exact cost. After I approve, return the actual file without buying credits or starting a subscription.",
+              "tools_triggered": "formatry_check_balance, formatry_get_preview_quota, formatry_get_studio_creative, formatry_set_studio_workspace_mode, formatry_set_studio_delivery_spec, formatry_create_studio_animation_preview, formatry_create_studio_export_quote, formatry_confirm_credit_export, formatry_wait_for_generation_job, formatry_get_artifact_manifest, formatry_download_artifact_file",
+              "expected_behavior": "Read the exact creative revision, select Animation and configure its released profile with complete three-second motion settings through typed operations, retaining revisions. Show the moving protected WebP, exact output, fresh account-balance funding source and ordinary credit cost. After approval, confirm the unchanged quote with matching approvedUnits and stable idempotency key through formatry_confirm_credit_export. Use the same allocator as Studio, follow the existing job to success, require a ready manifest and return the actual file. Unchanged confirmation replay retains its job and avoids a second debit. Images settings remain intact. Insufficient ordinary funds fail without a new job, debit, checkout, upsell or fabricated success; old included-only quotes require a fresh quote and cost approval."
             },
             {
-              "description": "Use the dedicated reviewer workspace with its saved demo creative. No local file attachment is required.",
-              "prompt": "List my Studio projects, open Formatry Plugin Review, and inspect its saved demo creative without changing it.",
-              "tools_triggered": "formatry_list_studio_projects, formatry_list_studio_project_creatives, formatry_get_studio_creative",
-              "expected_behavior": "Return the account-owned project and creative with exact ids and current revision. Report its editable fields without modifying the creative or inventing assets."
+              "description": "Use the dedicated reviewer workspace. Create one named review campaign with two independent blank concepts; this persists design data without rendering or consuming export allowance. Retain its returned ids for recovery, and inspect the separate existing Formatry Plugin Review demo used by the export/edit cases.",
+              "prompt": "Create a new campaign named Formatry Plugin Review 0.4.2 with two independent concepts named Launch and Reminder. Read both saved concepts and open Launch in embedded Studio. Then list my projects and inspect the existing Formatry Plugin Review demo without changing it. Do not render or export anything.",
+              "tools_triggered": "formatry_start_creative, formatry_add_creative, formatry_open_studio, formatry_list_studio_projects, formatry_list_studio_project_creatives, formatry_get_studio_creative",
+              "expected_behavior": "Start one account-owned project and its first named raster creative with a stable creation key, add the second blank creative to that same project with its own stable key, and read both exact revisions. Return the account-owned ids and current revisions; do not claim a clone, rendered output, export or debit. An unchanged creation replay returns the original targets without resetting later edits. List and inspect the separate existing demo without mutating it; retain its exact revision for subsequent cases."
             },
             {
-              "description": "Use the normal zero-credit, non-unlimited OAuth demo account with free raster allowance and the saved demo creative. The reviewer approves the quoted one-image output set before confirmation.",
+              "description": "Use the normal non-unlimited OAuth demo account with free raster allowance and the saved demo creative. Restore Images mode if the Animation case ran first, retaining its independently saved raster output. The reviewer approves the quoted one-image output set before confirmation.",
               "prompt": "Quote one downloadable raster ad from the saved demo creative at its current revision. Show the free allowance and wait for my approval. After I approve, generate the image and return its ready file.",
-              "tools_triggered": "formatry_get_studio_creative, formatry_create_studio_export_quote, formatry_confirm_studio_export_quote, formatry_wait_for_generation_job, formatry_get_artifact_manifest, formatry_download_artifact_file",
+              "tools_triggered": "formatry_get_studio_creative, formatry_set_studio_workspace_mode, formatry_create_studio_export_quote, formatry_confirm_studio_export_quote, formatry_wait_for_generation_job, formatry_get_artifact_manifest, formatry_download_artifact_file",
               "expected_behavior": "Return a server-issued raster quote with billingMode free and the real free allowance. After approval, confirm with an unchanged quote id and stable idempotency key, consume one canonical free raster unit without credit debit, follow the existing job to succeeded, require a ready artifact manifest, and return the file as an authenticated MCP resource. A protected preview alone is not the requested deliverable."
             },
             {
               "description": "Two-step case: inspect the demo creative and propose changing only its CTA to Book a demo, or Schedule a demo if the saved CTA is already Book a demo. The reviewer then explicitly confirms that exact edit.",
               "prompt": "Inspect the saved demo creative and propose changing only its CTA to Book a demo, or Schedule a demo if it is already Book a demo. Wait for my confirmation before applying the edit.",
-              "tools_triggered": "formatry_get_studio_creative, formatry_apply_studio_command",
+              "tools_triggered": "formatry_get_studio_creative, formatry_set_studio_copy",
               "expected_behavior": "Propose the typed set_copy CTA edit, wait for explicit confirmation, then apply it with the matching creative ids, exact expectedRevision, commandId and idempotency key. Re-read the creative to verify only the confirmed field changed."
             }
           ],
@@ -69,23 +69,24 @@
           ]
         },
         "commerce": false,
-        "commerce_description": "No checkout, payment collection, credit sale or subscription creation. Raster exports use the connected account's free allowance or already-included subscription quota/unlimited access. Included-export confirmation requires exact approved quote units and cannot debit purchased-credit balances."
+        "commerce_description": "No checkout, payment collection, credit sale, subscription creation or upgrade promotion. Images uses the shared free-image allowance or existing ordinary account credits; Animation uses the same ordinary account balance as Studio. Credit confirmation requires a fresh quote and exact approved cost. No new access is purchased. Legacy included-only approvals retain their original spending restriction."
       },
       "publication": {
         "countries": [],
-        "release_notes": "Native campaign projects and independent concepts, local file transfer, revision-safe edits and verified raster delivery. Approved exports may use free-image allowance or existing included subscription quota/unlimited access. No purchased-credit fallback, credit sale, subscription signup, checkout or upgrade promotion."
+        "release_notes": "Connect a new or existing account through native sign-in and edit the same saved design with the agent or embedded Studio. Images shares Studio's daily free allowance. Animation previews and WebP/GIF/MP4 exports use existing account credits with exact quoted-cost approval. Legacy consent stays protected; no credit sale, checkout or upgrade promotion."
       },
       "interface": {
         "displayName": "Formatry",
         "shortDescription": "Create ads from photos & copy",
-        "longDescription": "Create campaign ad concepts from local product photos and brand copy, edit and preview them, and save verified raster files directly in your Codex workspace. Native OAuth connects your account.",
+        "longDescription": "Create campaign ads from product photos and brand copy, edit saved designs with the agent or embedded Studio, and save PNG, JPG, WebP, animated WebP, GIF or MP4 files in your workspace. Sign in or create an account through the native connection window. Non-free exports use your existing account credits after quoted-cost approval.",
         "developerName": "Mikhail Drozdov",
         "category": "Creativity",
         "capabilities": [
           "Create ad images from your photos and text",
           "Adapt designs for posts, stories and banners",
           "Try new headlines, calls to action and colors",
-          "Preview changes to your saved designs"
+          "Edit and preview saved designs in embedded Studio",
+          "Animate saved banners and export WebP, GIF or MP4"
         ],
         "websiteURL": "https://formatry.cc",
         "privacyPolicyURL": "https://formatry.cc/privacy",
Full technical diff · 15 changed fields

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

BEFORE
"65b8c21627d85823d7e91bfe7c29d45d5f6d0bcb75b5ef56b6154fefde917845"
AFTER
"306a3d6dd5cfb73c37f96b2083e34851c69642d241ac9be3a46f3713b584be08"

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

BEFORE
7626
AFTER
10433

changed /files/.mcp.json/sha256

BEFORE
"abe2852d165049a42ef7f47299223e26104bd95cf434b065946d6c5b8ed63c6b"
AFTER
"281443c72c6035dadef61e65840ca1e73139d39eaadfadc57d446972554987d7"

changed /files/.mcp.json/size

BEFORE
119
AFTER
266

changed /files/README.md/sha256

BEFORE
"357bed6852238a866ac8a727ab1cb76767787200739f66692dd1c45f68cb78a8"
AFTER
"8a1f5095d8938013d8d166da0048b8374fb4023c8fe78d1bd391bf4ff31f4c3b"

changed /files/README.md/size

BEFORE
8204
AFTER
10772

changed /files/plugin.json/sha256

BEFORE
"57241a47573d69157cd0497e3ff0aafc04923120f222aa1dc686e574b3ea454c"
AFTER
"3f962b6e21063cfb9a1211a65944707269e05fc645d4d7f36f28a88ee9a4f9c1"

changed /files/plugin.json/size

BEFORE
7774
AFTER
10585

changed /files/skills~1formatry-api~1SKILL.md/sha256

BEFORE
"bafc92596b3e8bc68dd7ec69004e31d1fde46e67ac3adabcbbe5a626180b5b2d"
AFTER
"95f53c48441dc7b8247260701fcea362a3135f15f923ab68aa8927886ebc4402"

changed /files/skills~1formatry-api~1SKILL.md/size

BEFORE
12764
AFTER
6451

added /files/skills~1formatry-api~1references~1animation-banners.md

BEFORE
Field was absent
AFTER
{
  "sha256": "c42e606776e2a1bf64a1472dd055be6f34d19033253da985c1a11e79ee0d1094",
  "size": 2337
}

added /files/skills~1formatry-api~1references~1campaign-export-workflow.md

BEFORE
Field was absent
AFTER
{
  "sha256": "8eb6cb58250ef04d5e1f130c9427e89508211cc071afdce4891c8214554971ff",
  "size": 7711
}

added /files/skills~1formatry-api~1references~1native-file-helper.md

BEFORE
Field was absent
AFTER
{
  "sha256": "30e01ce9d74a13d40c82838b909b4d6e711b130af83b9e99d5ac4f6d9702cfca",
  "size": 5336
}

changed /files/skills~1formatry-api~1scripts~1formatry-files.mjs/sha256

BEFORE
"105ab77527cf228e4231c0948800b5500c32b409658229837c0d2f9ff2effb1d"
AFTER
"5850c8e09e86132029eb6cf0552157809f8043839df04ee80cb0a2831560478f"

changed /files/skills~1formatry-api~1scripts~1formatry-files.mjs/size

BEFORE
8405
AFTER
12933
Full snapshot data
{
  "files": {
    ".app.json": {
      "sha256": "f96f62159385dd69500aa329c20fe5325ca1717a1ddc77a61cce46a0efcd3f40",
      "size": 104
    },
    ".codex-plugin/plugin.json": {
      "sha256": "306a3d6dd5cfb73c37f96b2083e34851c69642d241ac9be3a46f3713b584be08",
      "size": 10433
    },
    ".mcp.json": {
      "sha256": "281443c72c6035dadef61e65840ca1e73139d39eaadfadc57d446972554987d7",
      "size": 266
    },
    "README.md": {
      "sha256": "8a1f5095d8938013d8d166da0048b8374fb4023c8fe78d1bd391bf4ff31f4c3b",
      "size": 10772
    },
    "assets/formatry-plugin-icon.png": {
      "sha256": "2bf5bf590a34b296e3eb21a1b30032c963444d3d987122d2246b1c74db306bec",
      "size": 148405
    },
    "assets/formatry-plugin-logo-dark.svg": {
      "sha256": "815ba18cccedd7f03ba742ae3a608f29970c8eb681af10d9bf14ba6472fe3ec7",
      "size": 9298
    },
    "assets/formatry-plugin-logo.svg": {
      "sha256": "6fa6aa7047afa686ee687f7a9785a28fab07304eee92ca702e91c99b6eb2fabb",
      "size": 11556
    },
    "assets/formatry-plugin-preview.png": {
      "sha256": "d8bd807e367ee903fb4c90cb837896797fdf08db4ebcda91ac13d232f831de29",
      "size": 390316
    },
    "mcp.json": {
      "sha256": "7955ad56e850abd5e4063acb9ff4c83d2464c3fce7a88aa6eef80d6193784d45",
      "size": 202
    },
    "plugin.json": {
      "sha256": "3f962b6e21063cfb9a1211a65944707269e05fc645d4d7f36f28a88ee9a4f9c1",
      "size": 10585
    },
    "skills/formatry-api/SKILL.md": {
      "sha256": "95f53c48441dc7b8247260701fcea362a3135f15f923ab68aa8927886ebc4402",
      "size": 6451
    },
    "skills/formatry-api/agents/openai.yaml": {
      "sha256": "a02279941292af84f31182e5e283b0c5ea3336506f205ed241bbe099fbb1fe35",
      "size": 636
    },
    "skills/formatry-api/assets/formatry-plugin-icon.png": {
      "sha256": "2bf5bf590a34b296e3eb21a1b30032c963444d3d987122d2246b1c74db306bec",
      "size": 148405
    },
    "skills/formatry-api/references/animation-banners.md": {
      "sha256": "c42e606776e2a1bf64a1472dd055be6f34d19033253da985c1a11e79ee0d1094",
      "size": 2337
    },
    "skills/formatry-api/references/campaign-export-workflow.md": {
      "sha256": "8eb6cb58250ef04d5e1f130c9427e89508211cc071afdce4891c8214554971ff",
      "size": 7711
    },
    "skills/formatry-api/references/native-file-helper.md": {
      "sha256": "30e01ce9d74a13d40c82838b909b4d6e711b130af83b9e99d5ac4f6d9702cfca",
      "size": 5336
    },
    "skills/formatry-api/scripts/formatry-files.mjs": {
      "sha256": "5850c8e09e86132029eb6cf0552157809f8043839df04ee80cb0a2831560478f",
      "size": 12933
    }
  }
}

SHA-256 of public snapshot: 11af942740db5d9bb030127df85a19fdab2934077eced23e52ece29b50fa6665