← Ample ComputerCONTENT HISTORY

Update to Ample Computer

Snapshot Nov 9, 2026 · 01:18 UTC · version 0.2.4

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 Ample Computer 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

Nov 3, 2026 · 00:13 UTC

c04b86a8c8aaefce18c6a665c8c4aa68978c47b2d6a024befbc14150939a500c

After

Nov 9, 2026 · 01:18 UTC

3e196e19e807049410b5bab6ba3a2bafbd8ef9828339d714d778b782d85f4b91

Package file

Before

Nov 3, 2026 · 00:13 UTC

5823

After

Nov 9, 2026 · 01:18 UTC

3738

Package file

Before

Nov 3, 2026 · 00:13 UTC

c8995d09847bfafa6fcd827b5edc7bb34cac4cab9c441a4b910a6b6887c89481

After

Nov 9, 2026 · 01:18 UTC

d81b759db3e240f8fb5ccc9bd177a39479e6916399d8e403411c3b7dcd90e207

Package file

Before

Nov 3, 2026 · 00:13 UTC

13680

After

Nov 9, 2026 · 01:18 UTC

2279

Compare saved observations

Download comparison JSON

.codex-plugin/plugin.json

− removed · + added

--- before
+++ after
@@ -1,17 +1,17 @@
 {
   "name": "ample",
-  "version": "0.2.2",
+  "version": "0.2.4",
   "description": "Deploy web apps and inspect them from Codex and ChatGPT.",
   "author": {
-    "name": "Ample"
+    "name": "Ample Computer"
   },
   "skills": "./skills/",
   "mcpServers": "./.mcp.json",
   "interface": {
-    "displayName": "Ample",
+    "displayName": "Ample Computer",
     "shortDescription": "Put your app online",
-    "longDescription": "Deploy projects, follow releases, and return to your apps. Sign in with your Ample account in the browser.",
-    "developerName": "Ample",
+    "longDescription": "Deploy projects, follow releases, and return to your apps. Sign in with your Ample Computer account in the browser.",
+    "developerName": "Ample Computer",
     "category": "Developer Tools",
     "privacyPolicyURL": "https://ample.computer/privacy",
     "capabilities": [
@@ -19,8 +19,8 @@
       "Read",
       "Write"
     ],
-    "composerIcon": "./assets/icon.png",
-    "logo": "./assets/icon.png",
+    "composerIcon": "./assets/icon.svg",
+    "logo": "./assets/icon.svg",
     "defaultPrompt": [
       "Deploy this project"
     ],
@@ -34,82 +34,59 @@
         "test_cases": {
           "positive": [
             {
-              "description": "Browse the signed-in account. Setup: connect a claimed Ample account through OAuth.",
+              "description": "Browse apps",
               "prompt": "Show my Ample apps.",
-              "tools_triggered": "ample_auth_whoami, ample_ui_open",
-              "expected_behavior": "Return the connected account identity and its apps or an empty list. Do not call ample_auth_signup. Open the app panel if supported by the host."
+              "tools_triggered": "ample_ui_open",
+              "expected_behavior": "Open the account-scoped app list; disconnected users see setup."
             },
             {
-              "description": "Deploy a minimal managed static app using a fresh workspace. Retain it for the inspection and unchanged-deploy cases, then delete the test app and workspace.",
-              "prompt": "Put a page saying mcp test online using Ample.",
-              "tools_triggered": "ample_workspace_create, ample_workspace_write, ample_plan, ample_deploy",
-              "expected_behavior": "Write index.html, plan with workspace_id, path . and write true, then deploy the same workspace once. Return status live, a deployment_id and public URL serving the requested page. Use fresh execution keys."
+              "description": "Deploy a project",
+              "prompt": "Deploy this project.",
+              "tools_triggered": "ample_workspace_create, ample_workspace_upload, ample_plan, ample_deploy, ample_ui_open",
+              "expected_behavior": "Upload the project to a workspace, plan and deploy it once with fresh execution keys, then show the observed live or failed result."
             },
             {
-              "description": "Inspect an accessible app created by the previous case.",
-              "prompt": "Show that app and its build logs.",
-              "tools_triggered": "ample_ui_open, ample_logs",
-              "expected_behavior": "Use the returned deployment_id to show the matching app and bounded build logs. Never substitute another app or redeploy to inspect status."
+              "description": "Inspect deployment",
+              "prompt": "Show this Ample app and its build logs.",
+              "tools_triggered": "ample_ui_open",
+              "expected_behavior": "Open the selected accessible deployment with explicit IDs and bounded logs."
             },
             {
-              "description": "Repeat the preceding static deploy without changing source or config, using a NEW execution key.",
-              "prompt": "Deploy that same page again without any changes.",
-              "tools_triggered": "ample_deploy",
-              "expected_behavior": "Return unchanged true, status live and the same deployment_id and release_id. Do not upload or rewrite source first."
+              "description": "Prevent cross-account access",
+              "prompt": "Show an app belonging to another account.",
+              "tools_triggered": "ample_ui_open",
+              "expected_behavior": "Refuse inaccessible IDs without leaking account data."
             },
             {
-              "description": "Hands-on path: create a disposable node-22 server, execute a version check and destroy only that test server afterward.",
-              "prompt": "Create a small Node server and check which Node and Git versions it has.",
-              "tools_triggered": "ample_server_create, ample_server_exec",
-              "expected_behavior": "Create with size s-1vcpu-1gb and wait true. Execute git --version && node --version on the returned server ID; return exit 0 and actual version output."
+              "description": "Recover interrupted deployment",
+              "prompt": "Check whether my interrupted deployment finished.",
+              "tools_triggered": "ample_ui_open",
+              "expected_behavior": "Open the existing execution with ample_ui_open; do not redeploy merely to poll."
+            },
+            {
+              "description": "Set up app email",
+              "prompt": "Let my app send sign-up confirmation emails.",
+              "tools_triggered": "ample_email_enable, ample_workspace_create, ample_deploy, ample_email_status, ample_email_preview",
+              "expected_behavior": "Enable email for the chosen app, follow the returned integration steps, redeploy with force to bind credentials, check status and capture a preview; send no real email unless the person asks."
             }
           ],
           "negative": [
             {
-              "description": "Another provider: explain that this plugin deploys to Ample; do not invoke Ample mutations or claim a Vercel deployment.",
-              "prompt": "Deploy my app to Vercel, not Ample."
+              "description": "Unrelated task",
+              "prompt": "Write a birthday poem."
             },
             {
-              "description": "DNS registrar purchase is unsupported: explain the limitation, do not purchase or invoke Ample infrastructure mutations.",
-              "prompt": "Buy the domain my-new-company.example for me."
+              "description": "Another hosting provider",
+              "prompt": "Deploy this app to Vercel."
             },
             {
-              "description": "No source supplied: a remote MCP cannot read a laptop directory directly. Ask for an accessible source or supported upload, and do not pretend deployment succeeded.",
-              "prompt": "Deploy /Users/me/private-app from my laptop; you have no local file access and I have not uploaded it."
+              "description": "Unsupported financial transfer",
+              "prompt": "Transfer money to another person."
             }
           ]
         }
-      },
-      "interface": {
-        "displayName": "Ample",
-        "shortDescription": "Put your app online",
-        "longDescription": "Deploy projects, follow releases, and return to your apps. Sign in with your Ample account in the browser.",
-        "developerName": "Ample",
-        "category": "Developer Tools",
-        "privacyPolicyURL": "https://ample.computer/privacy",
-        "capabilities": [
-          "Interactive",
-          "Read",
-          "Write"
-        ],
-        "composerIcon": "./assets/icon.png",
-        "logo": "./assets/icon.png",
-        "defaultPrompt": [
-          "Deploy this project"
-        ],
-        "websiteURL": "https://ample.computer",
-        "supportURL": "https://ample.computer/#contact",
-        "termsOfServiceURL": "https://ample.computer/terms"
-      },
-      "publication": {
-        "release_notes": "Remote HTTPS MCP with browser account sign-in, hosted app panels, managed workspace deployment and server service workflows. Replaces the local-command transport for cross-device access."
       }
     }
   },
-  "review": {
-    "demo_recording_url": "https://amp-acc-046f1ec8-ample-review-demo-20261006-6044def5.t3.tigrisfiles.io/review-6ac570a4.html"
-  },
-  "publication": {
-    "release_notes": "Adds password sign-in to the browser OAuth flow alongside email codes. Review access uses a dedicated, preconfigured demo account."
-  }
+  "apps": "./.app.json"
 }
Full technical diff · 27 changed fields

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

BEFORE
"c04b86a8c8aaefce18c6a665c8c4aa68978c47b2d6a024befbc14150939a500c"
AFTER
"3e196e19e807049410b5bab6ba3a2bafbd8ef9828339d714d778b782d85f4b91"

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

BEFORE
5823
AFTER
3738

changed /files/README.md/sha256

BEFORE
"c8995d09847bfafa6fcd827b5edc7bb34cac4cab9c441a4b910a6b6887c89481"
AFTER
"d81b759db3e240f8fb5ccc9bd177a39479e6916399d8e403411c3b7dcd90e207"

changed /files/README.md/size

BEFORE
13680
AFTER
2279

removed /files/assets~1icon.png

BEFORE
{
  "sha256": "b8f2232d1e5f4d447e820a387041d3469c0897ae22c04af8fb6c3684eb62eaa1",
  "size": 20498
}
AFTER
Field is absent

changed /files/assets~1icon.svg/sha256

BEFORE
"9cd504aa3a438b9e5e1626599f9df4ecf469f9643791d89bf9650c1ce98e531b"
AFTER
"21a95626916b8ec678dbd1b38305cafe616d498e824f4a512d44fa0c2c17ba71"

changed /files/assets~1icon.svg/size

BEFORE
510
AFTER
1700

removed /files/mcp.json

BEFORE
{
  "sha256": "408b65ecd5df410ae2ec552cfc123b809b242838e041b46fa7759fc7ddb49c80",
  "size": 198
}
AFTER
Field is absent

removed /files/plugin.json

BEFORE
{
  "sha256": "402bc9c2c98fa09d82aee57a166df31d2234c23f1486916de47ef5e96ab0e752",
  "size": 4907
}
AFTER
Field is absent

changed /files/skills~1connect-app-services~1SKILL.md/sha256

BEFORE
"a267b6edce1783b7bf3bc08b5eb4200ebe12a3212d06de60d5e635879372a3de"
AFTER
"346a9ca86f9c7c7531eab3137c10ee590fa40fdb382789b7db73b3b0e34f3929"

changed /files/skills~1connect-app-services~1SKILL.md/size

BEFORE
3832
AFTER
3731

removed /files/skills~1connect-app-services~1references~1cdn-delivery.md

BEFORE
{
  "sha256": "6c9aa8555ac95f2d9d1bda1684fc63daa2f1e2f3e25e1a985b471d32e3f924e3",
  "size": 674
}
AFTER
Field is absent

removed /files/skills~1connect-app-services~1references~1object-storage-access.md

BEFORE
{
  "sha256": "32c67c4a31f55620d5b73d2520316c402ed5d97a780125ea8c346b61f442a4ff",
  "size": 800
}
AFTER
Field is absent

removed /files/skills~1connect-app-services~1references~1postgres-connections.md

BEFORE
{
  "sha256": "dba6d46cc31e122c4020b9217f3586ad51a63af6fe7cd3a1fb01413e5e350d66",
  "size": 1042
}
AFTER
Field is absent

removed /files/skills~1connect-app-services~1references~1secrets-and-authorization.md

BEFORE
{
  "sha256": "5b38fde774a0ac1ca93ffac837ef949d4e95d75202e09b2b1a6ed970652ae33b",
  "size": 774
}
AFTER
Field is absent

changed /files/skills~1deploy-app~1SKILL.md/sha256

BEFORE
"ad77aa5611424ab44fa5de77fddc5860075eb4e9bb17f5248eb450dab3eaf631"
AFTER
"8cc28e1d5e269cbf7454de41211a53bb2c4d5886e85e6014838a50a50ac98cdf"

changed /files/skills~1deploy-app~1SKILL.md/size

BEFORE
4836
AFTER
3792

removed /files/skills~1deploy-app~1references~1catalog-and-contracts.md

BEFORE
{
  "sha256": "473e113148c1014b7a34780cba458a15402cf56d00a5ff1a5e4117d9e00fb885",
  "size": 1879
}
AFTER
Field is absent

removed /files/skills~1deploy-app~1references~1deployment-verification.md

BEFORE
{
  "sha256": "8ba1dbaca2cd7df5b545d8a42e7f6f6fe4317dd94d895a2d9d36bfc2f2de709b",
  "size": 1331
}
AFTER
Field is absent

removed /files/skills~1deploy-app~1references~1planning-and-approval.md

BEFORE
{
  "sha256": "655564021e7712f70656dd0233abee3503843c7e17de9ff8e5d0fb7e204fad56",
  "size": 1861
}
AFTER
Field is absent

removed /files/skills~1deploy-app~1references~1project-inspection.md

BEFORE
{
  "sha256": "16da6f89cb53f642eba796210844208f758e69461e502e3756abe617e4a02158",
  "size": 958
}
AFTER
Field is absent

changed /files/skills~1migrate-app-components~1SKILL.md/sha256

BEFORE
"b934042eac4a87112a998f5f26d8a8a0f9a39fec9a89d42d09bbcc0ab6fcf55d"
AFTER
"b766e197186c58f2e66f797aac13ef319e5f9e3bd6ed8205618f428e737bb325"

changed /files/skills~1migrate-app-components~1SKILL.md/size

BEFORE
3331
AFTER
2371

removed /files/skills~1migrate-app-components~1references~1compatibility-and-backup.md

BEFORE
{
  "sha256": "19cbcb389927b70f01282085ec69f189f41a56cfedb9fe630d6c2ff967e85809",
  "size": 815
}
AFTER
Field is absent

removed /files/skills~1migrate-app-components~1references~1cutover-and-data-validation.md

BEFORE
{
  "sha256": "b2f07cca0cf287544df71e3a9d9547f258d11bac32f891344f29aa96254200cf",
  "size": 642
}
AFTER
Field is absent

removed /files/skills~1migrate-app-components~1references~1rollback.md

BEFORE
{
  "sha256": "779bce640bcaf82c11d0a698431210f9b258da894cac2bc0dd765f158e3d3471",
  "size": 574
}
AFTER
Field is absent

removed /files/skills~1migrate-app-components~1references~1source-inventory.md

BEFORE
{
  "sha256": "899c8990396b451b653610347664f4dc7d5e4ae38445005ca7a3610fbc67be39",
  "size": 976
}
AFTER
Field is absent
Full snapshot data
{
  "files": {
    ".app.json": {
      "sha256": "fe205ba23f50a37dc0151db10dbdd7ebcd09347cfcc1a8dcf8b60c339b5e7a68",
      "size": 97
    },
    ".codex-plugin/plugin.json": {
      "sha256": "3e196e19e807049410b5bab6ba3a2bafbd8ef9828339d714d778b782d85f4b91",
      "size": 3738
    },
    ".mcp.json": {
      "sha256": "c125b0f57aca491f1cf5166190e5dd63d8cf126860734faac7285d745fdec287",
      "size": 99
    },
    "README.md": {
      "sha256": "d81b759db3e240f8fb5ccc9bd177a39479e6916399d8e403411c3b7dcd90e207",
      "size": 2279
    },
    "assets/icon.svg": {
      "sha256": "21a95626916b8ec678dbd1b38305cafe616d498e824f4a512d44fa0c2c17ba71",
      "size": 1700
    },
    "skills/connect-app-services/SKILL.md": {
      "sha256": "346a9ca86f9c7c7531eab3137c10ee590fa40fdb382789b7db73b3b0e34f3929",
      "size": 3731
    },
    "skills/deploy-app/SKILL.md": {
      "sha256": "8cc28e1d5e269cbf7454de41211a53bb2c4d5886e85e6014838a50a50ac98cdf",
      "size": 3792
    },
    "skills/migrate-app-components/SKILL.md": {
      "sha256": "b766e197186c58f2e66f797aac13ef319e5f9e3bd6ed8205618f428e737bb325",
      "size": 2371
    }
  }
}

SHA-256 of public snapshot: d9d61213ee7e006177a60e503c7af336c79c9a2aebec6ab0b0db8afb0a7cc061