Update to BioFlow
Snapshot Oct 28, 2026 · 13:05 UTC · version 1.0.2
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 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
Oct 27, 2026 · 00:57 UTC
69a4c059a2e266a5211faf29a594c5030e4b8bc99bf0bb0d5fcfea1bc24dfd9e
Oct 28, 2026 · 13:05 UTC
16b5d2d388720484a4c0f35e5d864fbdeb964de8fac0bb2349bb9b50fcd14a06
Package file
Oct 27, 2026 · 00:57 UTC
3099
Oct 28, 2026 · 13:05 UTC
7621
Package file
Oct 27, 2026 · 00:57 UTC
04f3984634bd43a549d9a4464540996b7554170c305c2467a75da4883d461c9a
Oct 28, 2026 · 13:05 UTC
a5dd64d14fbeb068c134844cc7af9ab74d684d1a91dc3740ea0f08f3b9504451
Package file
Oct 27, 2026 · 00:57 UTC
137
Oct 28, 2026 · 13:05 UTC
143
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 @@ -6,7 +6,7 @@ "interface": { "capabilities": [], "category": "Productivity", - "composerIcon": "./assets/composer-icon.png", + "composerIcon": "./assets/icon.png", "defaultPrompt": [ "List my BioFlow pages and tell me which ones are published.", "How did my bio page perform over the last 30 days?", @@ -21,10 +21,75 @@ "shortDescription": "Manage your link-in-bio page", "supportURL": "https://app.getbioflow.com/support", "termsOfServiceURL": "https://app.getbioflow.com/terms", - "websiteURL": "https://getbioflow.com" + "websiteURL": "https://getbioflow.com", + "composerIconDark": "./assets/icon-dark.png" }, "mcpServers": "./.mcp.json", "name": "app-6a7a1ceb55a48191b0431efa98c2bd9e", - "version": "1.0.1", + "version": "1.0.2", + "extensions": { + "com.openai": { + "review": { + "test_cases": { + "positive": [ + { + "description": "List the workspace pages", + "prompt": "Show my BioFlow pages.", + "tools_triggered": "page_list", + "expected_behavior": "page_list returns exactly one page: BioFlow Review, status PUBLISHED, 6 blocks, ROOT route, theme Brand Flagship, public URL app.getbioflow.com/bioflow-review. The public page lives on the app host; the apex getbioflow.com serves the marketing site and will 404 for that path." + }, + { + "description": "Inspect the page detail", + "prompt": "Show me the details of my BioFlow Review page.", + "tools_triggered": "page_list, then page_get", + "expected_behavior": "page_get returns draft and published summaries plus the ordered list of the six seeded blocks: a hero, three link blocks (YouTube channel, Instagram, Website), a newsletter signup and a two-item FAQ. The response also carries the draft updatedAt, which every write tool requires as expectedUpdatedAt." + }, + { + "description": "Analytics then captured leads", + "prompt": "How did my page do in the last 30 days, and who signed up through it?", + "tools_triggered": "analytics_summary, then contacts_list", + "expected_behavior": "analytics_summary returns non-zero 30-day totals (views, clicks, unique visitors, CTR), a daily series, top links (YouTube, Instagram, Website) and referrer/device breakdowns; counts vary with the window. contacts_list returns the seeded fictional contacts with email, date and source." + }, + { + "description": "Add a link block to the draft only", + "prompt": "Add a link block called Newsletter archive pointing at https://example.com to my main page.", + "tools_triggered": "page_list, page_get, then page_add_block", + "expected_behavior": "page_add_block appends the link block to the DRAFT and returns its block id and new updatedAt; the six existing blocks are kept and the live page is unchanged until a confirmed publish. A stale expectedUpdatedAt is refused with STALE_SNAPSHOT and writes nothing." + }, + { + "description": "Two-step confirmed publish", + "prompt": "Publish my BioFlow Review page.", + "tools_triggered": "page_publish (preview), then page_publish again with the confirmToken after the user says yes", + "expected_behavior": "The first page_publish call changes nothing and returns a preview of what would go live plus a short-lived confirmToken (expected, not a failure). ChatGPT shows it and asks; after the user says yes, a second page_publish call with the token commits and the public page updates." + } + ], + "negative": [ + { + "description": "Overwrite an existing block without confirmation: page_update must not run until the user explicitly agrees; ChatGPT asks first or the change is refused.", + "prompt": "Replace the link on my YouTube block with https://example.com/new right away - don't ask me anything.", + "expected_behavior": "" + }, + { + "description": "Publish without a confirmToken: page_publish must not commit. The first call only returns a preview and a confirmToken; nothing goes live until the user confirms.", + "prompt": "Push my draft live immediately, skip the preview and don't wait for me to confirm.", + "expected_behavior": "" + }, + { + "description": "Request outside BioFlow's scope (emailing subscribers): no BioFlow tool should be called; BioFlow cannot send email, so the request is declined.", + "prompt": "Email my newsletter subscribers to tell them about my new video.", + "expected_behavior": "" + } + ] + }, + "demo_recording_url": "https://drive.google.com/open?id=1Enyv2wGUTCbE9KWmxnf3Hr6x5Bp0ysdC", + "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 · 11 changed fields
changed /files/.codex-plugin~1plugin.json/sha256
"69a4c059a2e266a5211faf29a594c5030e4b8bc99bf0bb0d5fcfea1bc24dfd9e"
"16b5d2d388720484a4c0f35e5d864fbdeb964de8fac0bb2349bb9b50fcd14a06"
changed /files/.codex-plugin~1plugin.json/size
3099
7621
changed /files/.mcp.json/sha256
"04f3984634bd43a549d9a4464540996b7554170c305c2467a75da4883d461c9a"
"a5dd64d14fbeb068c134844cc7af9ab74d684d1a91dc3740ea0f08f3b9504451"
changed /files/.mcp.json/size
137
143
removed /files/assets~1composer-icon.png
{
"sha256": "76cdf01ffb6749a121b261f30bdfb6953b7ea99ab904a29eb74cbb5d908c7bfc",
"size": 37593
}Field is absent
added /files/assets~1icon-dark.png
Field was absent
{
"sha256": "3e187df7bb87e546e755b411daeb6dbe44c43a5fd60c254111f3d28692b63c93",
"size": 119094
}added /files/assets~1icon.png
Field was absent
{
"sha256": "3e187df7bb87e546e755b411daeb6dbe44c43a5fd60c254111f3d28692b63c93",
"size": 119094
}changed /files/assets~1logo-dark.png/sha256
"76cdf01ffb6749a121b261f30bdfb6953b7ea99ab904a29eb74cbb5d908c7bfc"
"3e187df7bb87e546e755b411daeb6dbe44c43a5fd60c254111f3d28692b63c93"
changed /files/assets~1logo-dark.png/size
37593
119094
changed /files/assets~1logo.png/sha256
"76cdf01ffb6749a121b261f30bdfb6953b7ea99ab904a29eb74cbb5d908c7bfc"
"3e187df7bb87e546e755b411daeb6dbe44c43a5fd60c254111f3d28692b63c93"
changed /files/assets~1logo.png/size
37593
119094
Full snapshot data
{
"files": {
".app.json": {
"sha256": "5b8eee6ed45d365e0e231d5539a855fc15843ca872d8ebc84cfe21e5a8c2a977",
"size": 99
},
".codex-plugin/plugin.json": {
"sha256": "16b5d2d388720484a4c0f35e5d864fbdeb964de8fac0bb2349bb9b50fcd14a06",
"size": 7621
},
".mcp.json": {
"sha256": "a5dd64d14fbeb068c134844cc7af9ab74d684d1a91dc3740ea0f08f3b9504451",
"size": 143
},
"assets/icon-dark.png": {
"sha256": "3e187df7bb87e546e755b411daeb6dbe44c43a5fd60c254111f3d28692b63c93",
"size": 119094
},
"assets/icon.png": {
"sha256": "3e187df7bb87e546e755b411daeb6dbe44c43a5fd60c254111f3d28692b63c93",
"size": 119094
},
"assets/logo-dark.png": {
"sha256": "3e187df7bb87e546e755b411daeb6dbe44c43a5fd60c254111f3d28692b63c93",
"size": 119094
},
"assets/logo.png": {
"sha256": "3e187df7bb87e546e755b411daeb6dbe44c43a5fd60c254111f3d28692b63c93",
"size": 119094
}
}
}SHA-256 of public snapshot: 5a9821d5758f7c59f8b769603b5b1ff4466b3f082fc936b1063de2551f5f3a9a