← doDomainCONTENT HISTORY

Update to doDomain

Snapshot Oct 27, 2026 · 06:07 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 doDomain 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:11 UTC

d2ea52618736297e3233591478dcaa1d40d1d1aa4ffd7dbb6c98e68902b12a9e

After

Oct 27, 2026 · 06:07 UTC

7699b80fc1fb117509a3bc0b72e8181094e62452b62f27a3cfff13ce4f37d840

Package file

Before

Sep 30, 2026 · 23:11 UTC

127

After

Oct 27, 2026 · 06:07 UTC

100

Package file

Before

Sep 30, 2026 · 23:11 UTC

50ee174781d77031bb3742b01f7dfdd630bfd3b163507027310e490c4c8daa8a

After

Oct 27, 2026 · 06:07 UTC

f3dc11e2627e5722b058acf865b07dba3b11932469f7a62d68b4547ea6fae76d

Package file

Before

Sep 30, 2026 · 23:11 UTC

3550

After

Oct 27, 2026 · 06:07 UTC

8218

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": "Connect custom domains",
     "supportURL": "https://app.dodomain.io/support",
     "termsOfServiceURL": "https://dodomain.io/terms",
-    "websiteURL": "https://dodomain.io"
+    "websiteURL": "https://dodomain.io",
+    "logo": "./assets/logo.png",
+    "logoDark": "./assets/logo-dark.png",
+    "composerIcon": "./assets/icon.png",
+    "composerIconDark": "./assets/icon-dark.png"
   },
   "name": "app-6a7ae2ab834c8191a93649ac23775d1f",
-  "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": "Pre-flight a domain's DNS",
+              "prompt": "Pre-flight the domain mail.quartzapps.dev for me \u2014 who manages its DNS and what connect method would it get?",
+              "tools_triggered": "check_domain",
+              "expected_behavior": "The DNS provider that manages the domain, its registrable zone, the nameservers, detection confidence, and the connect tier it qualifies for (1 one-click OAuth, 2 Domain Connect, 3 guided manual), plus a provider-specific setup guide. This reads public DNS and creates nothing. Because it queries the live internet, results for a third-party domain can legitimately differ between two calls."
+            },
+            {
+              "description": "List the team's apps",
+              "prompt": "List the apps on my team.",
+              "tools_triggered": "list_apps",
+              "expected_behavior": "A non-empty list with both seeded apps, Sendly and Sendly Staging, each with its id, name, public widget key, sandbox flag, and creation time. No secret API key appears anywhere in the response \u2014 confirming that is part of the test. Note the app id for the later cases."
+            },
+            {
+              "description": "Check connection DNS health",
+              "prompt": "Show me the domain connections for the Sendly app you just listed, and whether their DNS is still healthy.",
+              "tools_triggered": "list_connections",
+              "expected_behavior": "The seeded connections with status, fqdn, and the verifiedAt, lastCheckedAt and brokenAt timestamps. Across both apps the account holds 10 connections, 4 active and 6 broken; the broken ones are seeded deliberately so drift is visible. Note a connection id for the recheck case."
+            },
+            {
+              "description": "Start a connect session",
+              "prompt": "Start a connect session for demo.quartzapps.dev on the Sendly app, and show me the DNS records that need to be added.",
+              "tools_triggered": "create_connect_session",
+              "expected_behavior": "A new session token plus the exact DNS records the customer has to apply. Nothing is live yet \u2014 the records still have to be added at the domain's DNS provider. This call consumes one unit of the plan's monthly connection quota."
+            },
+            {
+              "description": "Verify the session's records",
+              "prompt": "What is the status of the session you just started, and check whether its records are in place yet.",
+              "tools_triggered": "get_connect_session, verify_connect_session",
+              "expected_behavior": "First the session's domain, expected records, and current state in the pending to detected to authorizing to writing to verifying to verified machine. Then a live check against authoritative nameservers returning verified only when every record matches, with a per-record breakdown marking each one present, propagating, or absent. On a domain where the records were never published, verified comes back false with an honest per-record reason \u2014 that is a correct result reporting an unfinished setup, not a tool failure."
+            }
+          ],
+          "negative": [
+            {
+              "description": "Buying or registering a domain",
+              "prompt": "Register the domain acmestudio.co for me and charge it to my account.",
+              "expected_behavior": ""
+            },
+            {
+              "description": "TLS certificate management",
+              "prompt": "Renew the TLS certificate for mail.quartzapps.dev and tell me when it expires.",
+              "expected_behavior": ""
+            },
+            {
+              "description": "General DNS explainer, no account data",
+              "prompt": "What is the difference between a CNAME record and an A record?",
+              "expected_behavior": ""
+            }
+          ]
+        },
+        "demo_recording_url": "https://drive.google.com/file/d/1pi6VgbJ8Lz_vi-LZiYNWSbUexdvMx69H/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
"d2ea52618736297e3233591478dcaa1d40d1d1aa4ffd7dbb6c98e68902b12a9e"
AFTER
"7699b80fc1fb117509a3bc0b72e8181094e62452b62f27a3cfff13ce4f37d840"

changed /files/.app.json/size

BEFORE
127
AFTER
100

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

BEFORE
"50ee174781d77031bb3742b01f7dfdd630bfd3b163507027310e490c4c8daa8a"
AFTER
"f3dc11e2627e5722b058acf865b07dba3b11932469f7a62d68b4547ea6fae76d"

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

BEFORE
3550
AFTER
8218

added /files/.mcp.json

BEFORE
Field was absent
AFTER
{
  "sha256": "1dcace753fa1194e55055826e6f0f27212961e977451eb0c0698c2765835e476",
  "size": 102
}

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

BEFORE
Field was absent
AFTER
{
  "sha256": "50e28736ac03a072378c759eeb830b19942cb365269e8c168490d252d4e7e1f2",
  "size": 58521
}

added /files/assets~1icon.png

BEFORE
Field was absent
AFTER
{
  "sha256": "50e28736ac03a072378c759eeb830b19942cb365269e8c168490d252d4e7e1f2",
  "size": 58521
}

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

BEFORE
Field was absent
AFTER
{
  "sha256": "50e28736ac03a072378c759eeb830b19942cb365269e8c168490d252d4e7e1f2",
  "size": 58521
}

added /files/assets~1logo.png

BEFORE
Field was absent
AFTER
{
  "sha256": "50e28736ac03a072378c759eeb830b19942cb365269e8c168490d252d4e7e1f2",
  "size": 58521
}
Full snapshot data
{
  "files": {
    ".app.json": {
      "sha256": "7699b80fc1fb117509a3bc0b72e8181094e62452b62f27a3cfff13ce4f37d840",
      "size": 100
    },
    ".codex-plugin/plugin.json": {
      "sha256": "f3dc11e2627e5722b058acf865b07dba3b11932469f7a62d68b4547ea6fae76d",
      "size": 8218
    },
    ".mcp.json": {
      "sha256": "1dcace753fa1194e55055826e6f0f27212961e977451eb0c0698c2765835e476",
      "size": 102
    },
    "assets/icon-dark.png": {
      "sha256": "50e28736ac03a072378c759eeb830b19942cb365269e8c168490d252d4e7e1f2",
      "size": 58521
    },
    "assets/icon.png": {
      "sha256": "50e28736ac03a072378c759eeb830b19942cb365269e8c168490d252d4e7e1f2",
      "size": 58521
    },
    "assets/logo-dark.png": {
      "sha256": "50e28736ac03a072378c759eeb830b19942cb365269e8c168490d252d4e7e1f2",
      "size": 58521
    },
    "assets/logo.png": {
      "sha256": "50e28736ac03a072378c759eeb830b19942cb365269e8c168490d252d4e7e1f2",
      "size": 58521
    }
  }
}

SHA-256 of public snapshot: b0a6d25c34515f59f6a1b1710ab43845eb4322d6ad067d0ca69ccf58cadd2650