← Jade NoteCONTENT HISTORY

Update to Jade Note

Snapshot Nov 12, 2026 · 12:08 UTC · version 1.1.3

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 Jade Note 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 · 22:53 UTC

cd4cff5a16cdd49d9c230c9fb4d40b62c22ef371a02fde5b79cc39495c3dfeae

After

Nov 12, 2026 · 12:08 UTC

7b22ecdd07298451bc032e68d4bb4d9b1e893c9113ebe7161167af6c84dd2571

Package file

Before

Sep 30, 2026 · 22:53 UTC

127

After

Nov 12, 2026 · 12:08 UTC

101

Package file

Before

Sep 30, 2026 · 22:53 UTC

17abeb99977623bebbc9025278ab650659c0d52f64b5173d4851d3361f155e43

After

Nov 12, 2026 · 12:08 UTC

6bfaaffe7e4286ec878e76c2cd965e88d1b7531950a5ca87caad6652e50d697e

Package file

Before

Sep 30, 2026 · 22:53 UTC

1521

After

Nov 12, 2026 · 12:08 UTC

9517

Compare saved observations

Download comparison JSON

.codex-plugin/plugin.json

− removed · + added

--- before
+++ after
@@ -1,22 +1,88 @@
 {
-  "apps": "./.app.json",
   "author": {
     "name": "Unrealm LLC"
   },
-  "description": "Jade Note gives ChatGPT secure access to your personal notes as a persistent memory layer. Through MCP, ChatGPT can search notes by keyword or meaning, read category context, create and append notes, suggest links, and keep knowledge organized. OAuth authentication, per-category access controls, change previews, version history, and rollback make AI-assisted memory safe and transparent while keeping the same Markdown notes editable in the Jade Note web app.",
+  "description": "Jade Note is an MCP-native notes and knowledge management tool built from the ground up for humans and multiple AI agents to work with the same information. ChatGPT and other agents can securely search your notes, documents, journals, tasks, and kanban workflows by keyword or meaning, read shared context, create and append notes, and connect related ideas, notions, and knowledge. Use Jade Note as a persistent AI memory layer, personal knowledge management (PKM) system, or second brain across agents and conversations. OAuth authentication, per-category access controls, version history, and rollback keep AI-assisted knowledge management safe and transparent, while the same Markdown notes remain fully editable in the Jade Note web app.",
   "interface": {
     "capabilities": [],
     "category": "Productivity",
-    "defaultPrompt": null,
+    "defaultPrompt": [
+      "Can you pick up some recent notes about space.",
+      "Please display this note. id=e3f445ee-880c-43ef-9fac-3609"
+    ],
     "developerName": "Unrealm LLC",
     "displayName": "Jade Note",
-    "logo": "./assets/logo.png",
-    "longDescription": "Jade Note gives ChatGPT secure access to your personal notes as a persistent memory layer. Through MCP, ChatGPT can search notes by keyword or meaning, read category context, create and append notes, suggest links, and keep knowledge organized. OAuth authentication, per-category access controls, change previews, version history, and rollback make AI-assisted memory safe and transparent while keeping the same Markdown notes editable in the Jade Note web app.",
+    "longDescription": "Jade Note is an MCP-native notes and knowledge management tool built from the ground up for humans and multiple AI agents to work with the same information. ChatGPT and other agents can securely search your notes, documents, journals, tasks, and kanban workflows by keyword or meaning, read shared context, create and append notes, and connect related ideas, notions, and knowledge. Use Jade Note as a persistent AI memory layer, personal knowledge management (PKM) system, or second brain across agents and conversations. OAuth authentication, per-category access controls, version history, and rollback keep AI-assisted knowledge management safe and transparent, while the same Markdown notes remain fully editable in the Jade Note web app.",
     "privacyPolicyURL": "https://jadenote.app/privacy",
-    "shortDescription": "Editable memory layer",
+    "shortDescription": "Notes, tasks, kanban & memory",
+    "supportURL": "https://jadenote.app/support",
     "termsOfServiceURL": "https://jadenote.app/terms",
-    "websiteURL": "https://jadenote.app"
+    "websiteURL": "https://jadenote.app",
+    "composerIcon": "./assets/icon.png",
+    "logo": "./assets/icon.png"
   },
   "name": "app-6a2a7f2cbb948191a603f3b9dea8e0f0",
-  "version": "1.0.0"
-}
\ No newline at end of file
+  "version": "1.1.3",
+  "skills": "./skills/",
+  "mcpServers": "./.mcp.json",
+  "extensions": {
+    "com.openai": {
+      "review": {
+        "test_cases": {
+          "positive": [
+            {
+              "description": "Find a known note by keyword. Prerequisite: The reviewer account has exactly one active, unarchived, MCP-visible note titled \"ChatGPT keyword search fixture\" whose body contains \"JADE_REVIEW_SEARCH_4827\"; no other note contains that marker.",
+              "prompt": "Search my Jade Note notes using keyword search for the exact text \"JADE_REVIEW_SEARCH_4827\". Show the matching note's title and a short excerpt. Do not modify anything.",
+              "expected_behavior": "ChatGPT: Identifies \"ChatGPT keyword search fixture\" and shows a short excerpt containing JADE_REVIEW_SEARCH_4827; surrounding wording and layout may vary. Tool response: search_notes uses mode=keyword with the requested marker and returns the fixture's note ID and title; a follow-up get_note to obtain the excerpt is allowed. Saved state: No notes or categories are created or changed.",
+              "tools_triggered": "search_notes"
+            },
+            {
+              "description": "Create a new private note. Prerequisite: Remove notes created by previous runs of this case before each run.",
+              "prompt": "Create a Jade Note note titled \"Submission review\" with the body \"Review the ChatGPT app submission checklist.\"",
+              "expected_behavior": "ChatGPT: Confirms that the note titled \"Submission review\" was saved. Tool response: create_note succeeds and identifies the created note. Saved state: Exactly one new note contains the requested title and body for this test run; no existing note is overwritten.",
+              "tools_triggered": "create_note"
+            },
+            {
+              "description": "Create a fresh note and apply an ordinary exact line replacement to that note only. Each run creates its own target, so earlier Web or mobile runs do not require a reset. The reviewer account must be able to create and edit notes.",
+              "prompt": "Create a new Jade Note note titled \"ChatGPT edit test\" with exactly this Markdown body: \"Editing target: OLD_TEXT\n\nKeep this sentence unchanged.\" Then, in that newly created note only, replace the exact text \"Editing target: OLD_TEXT\" with \"Editing target: NEW_TEXT\". Create it with OLD_TEXT first, then edit it; do not reuse or change any existing note with the same title.",
+              "expected_behavior": "ChatGPT: Confirms that a new test note was created and its target text was changed to NEW_TEXT; raw Undo arguments need not be displayed. Tool response: create_note first saves the requested body containing OLD_TEXT; edit_note then uses that returned note ID and reports an applied edit, changed fields, a diff summary, and guarded Undo data without a separate Jade Note preview/apply step. Creating a note with NEW_TEXT already in its initial body does not pass. Saved state: Exactly one new note is created for this run; its final body is \"Editing target: NEW_TEXT\n\nKeep this sentence unchanged.\", and all pre-existing notes remain unchanged.",
+              "tools_triggered": "edit_note"
+            },
+            {
+              "description": "List existing categories without changing them. Prerequisite: The reviewer account has active MCP-visible categories named \"ChatGPT App Review\" and \"ChatGPT App Review Destination\"; other visible categories may also exist.",
+              "prompt": "List my existing Jade Note categories and tell me whether \"ChatGPT App Review\" and \"ChatGPT App Review Destination\" are present. Do not create or change any categories.",
+              "expected_behavior": "ChatGPT: Lists existing visible category names and confirms that both \"ChatGPT App Review\" and \"ChatGPT App Review Destination\" are present; order and layout may vary, and additional existing categories are valid. Tool response: list_categories returns both categories with their IDs and names. Saved state: No category or note is created or changed; no category proposal or apply tool is called.",
+              "tools_triggered": "list_categories"
+            },
+            {
+              "description": "Preview a category change without changing the note. Prerequisite: The unique writable fixture is in \"ChatGPT App Review\"; \"ChatGPT App Review Destination\" exists and is writable, and both categories have no custom fields or instructions.",
+              "prompt": "For my Jade Note note titled \"ChatGPT app review fixture\", preview moving it to the existing category \"ChatGPT App Review Destination\", but do not apply the change.",
+              "expected_behavior": "ChatGPT: Shows the proposed move to \"ChatGPT App Review Destination\" and makes clear that it is awaiting confirmation. Tool response: preview_note_update returns a valid category-change proposal for later confirmation; a signed token and expiry details need not be displayed to the user. Saved state: The note remains in \"ChatGPT App Review\" with its content and properties unchanged; a temporary private proposal may be stored, but no apply tool is called.",
+              "tools_triggered": "preview_note_update"
+            }
+          ],
+          "negative": [
+            {
+              "description": "Do not trigger for calendar requests.",
+              "prompt": "What meetings do I have tomorrow?",
+              "expected_behavior": "ChatGPT: Does not claim to have retrieved calendar events through Jade Note and may explain that a calendar connection is needed. Tool calls: No Jade Note tools are invoked; another appropriate calendar integration is outside this test. Saved state: Jade Note data is unchanged."
+            },
+            {
+              "description": "Do not trigger for sending email.",
+              "prompt": "Send an email to my team announcing the launch.",
+              "expected_behavior": "ChatGPT: Does not claim that Jade Note sent the announcement and may offer to draft it or use an email integration. Tool calls: No Jade Note tools are invoked; no flags or notes are created to induce an automated notification. Saved state: Jade Note data and notification settings are unchanged."
+            },
+            {
+              "description": "Do not collect or configure webhook credentials in ChatGPT.",
+              "prompt": "Configure a Grok Bot webhook for my Jade Note flag. Ask me for the webhook URL and API key.",
+              "expected_behavior": "ChatGPT: Directs the user to the Jade Note Flags screen without requesting or echoing webhook credentials and without claiming that configuration succeeded. Tool calls: No Jade Note tools are invoked. Saved state: Flag definitions, assignments, and connection settings are unchanged."
+            }
+          ]
+        }
+      },
+      "publication": {
+        "release_notes": "Adds seven bundled skills for saving reusable memory, answering from existing notes, weekly reviews, meeting minutes, task or Kanban management, flag monitoring through MCP Events, and category Catch Up with receipt-based Undo. Uses the shared MCP endpoint https://api.jadenote.app/mcp."
+      }
+    }
+  }
+}
Full technical diff · 23 changed fields

changed /files/.app.json/sha256

BEFORE
"cd4cff5a16cdd49d9c230c9fb4d40b62c22ef371a02fde5b79cc39495c3dfeae"
AFTER
"7b22ecdd07298451bc032e68d4bb4d9b1e893c9113ebe7161167af6c84dd2571"

changed /files/.app.json/size

BEFORE
127
AFTER
101

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

BEFORE
"17abeb99977623bebbc9025278ab650659c0d52f64b5173d4851d3361f155e43"
AFTER
"6bfaaffe7e4286ec878e76c2cd965e88d1b7531950a5ca87caad6652e50d697e"

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

BEFORE
1521
AFTER
9517

added /files/.mcp.json

BEFORE
Field was absent
AFTER
{
  "sha256": "3e910dc8f73742b65f9bea1ee96c8a3956dc9896e297b81a0b26fd236a496d1d",
  "size": 95
}

added /files/assets~1icon.png

BEFORE
Field was absent
AFTER
{
  "sha256": "02b239bb7dda3ab47557d91f340126f930ca1e5ba868986dc75c3129eccd38e9",
  "size": 90837
}

removed /files/assets~1logo.png

BEFORE
{
  "sha256": "f5c482f80fccd8c1ee6e0857e55f00281c6cd070c421f270eb0837cb3e44870e",
  "size": 60995
}
AFTER
Field is absent

added /files/mcp.json

BEFORE
Field was absent
AFTER
{
  "sha256": "d5268b2dea8b38e1207d4a21019fa637f346a40a8c1748cabcec6e75e45fbb95",
  "size": 200
}

added /files/plugin.json

BEFORE
Field was absent
AFTER
{
  "sha256": "b320625e7db6a082d20db98db36c462cb586a66392fed74f3fcf1c2888b41425",
  "size": 9637
}

added /files/skills~1jade-note-answer-from-notes~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "bbdec1a200c493862bf8e8124322f7e69e0d7c311d5b558b5912292bf2037ba7",
  "size": 2957
}

added /files/skills~1jade-note-answer-from-notes~1agents~1openai.yaml

BEFORE
Field was absent
AFTER
{
  "sha256": "eb9631695f7118fe11985b3a76cc58b2960874f2d1f9e2242c4616fb28d38ab6",
  "size": 448
}

added /files/skills~1jade-note-catch-up~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "78367372007f04705f36c924b10ff855cbc58aa7d9c6c48c79f51c10397a9357",
  "size": 4705
}

added /files/skills~1jade-note-catch-up~1agents~1openai.yaml

BEFORE
Field was absent
AFTER
{
  "sha256": "ea341f5e780fb8103b2ce6931082f730748201bad4d3c62f18f4d93c86e428c9",
  "size": 433
}

added /files/skills~1jade-note-manage-tasks~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "a8e1d1549e3987e0476d4b65cd4026402ec0b54984c25bd4f22365c1886d89bb",
  "size": 3337
}

added /files/skills~1jade-note-manage-tasks~1agents~1openai.yaml

BEFORE
Field was absent
AFTER
{
  "sha256": "4127a083cc2202f3de727df704c97a45b35c90770d83971ee9398649bbed41c8",
  "size": 442
}

added /files/skills~1jade-note-meeting-notes~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "e9bfa409885fd20a09beeb5af120969d657bd7ed696606af837499718b80a6f1",
  "size": 2930
}

added /files/skills~1jade-note-meeting-notes~1agents~1openai.yaml

BEFORE
Field was absent
AFTER
{
  "sha256": "eefa7606d44af0d61f6c9b6566ed7381c4a94fe981d80b3a55b06c05b351654a",
  "size": 436
}

added /files/skills~1jade-note-monitor-flag~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "5bd4b5e2addd9ed75781cf3d297e3a216d33a8da8ff73f1e6b06c9cd4a2c0d21",
  "size": 4790
}

added /files/skills~1jade-note-monitor-flag~1agents~1openai.yaml

BEFORE
Field was absent
AFTER
{
  "sha256": "c850ee1d10f97c553cac022e0fe650eba0022354dc99a14873d4c96c70086954",
  "size": 441
}

added /files/skills~1jade-note-save-memory~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "f130684d60f3ab3e267743c30fe743b44c3d9b874dfa5c8c51a1d02843c6c449",
  "size": 3133
}

added /files/skills~1jade-note-save-memory~1agents~1openai.yaml

BEFORE
Field was absent
AFTER
{
  "sha256": "5aeabac95502741699e412bb8a4d921fb05bf2f1b1756dae88f1f328a35e1207",
  "size": 436
}

added /files/skills~1jade-note-weekly-review~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "8a61e5b9ad055dd6c9facdf95c5e3ddbc7d93599a9889b5e38fbaca409f195dd",
  "size": 2955
}

added /files/skills~1jade-note-weekly-review~1agents~1openai.yaml

BEFORE
Field was absent
AFTER
{
  "sha256": "3224a167e300a860f22c99daa5c7ec89d7a97b37861f49779aa586a269c3de47",
  "size": 441
}
Full snapshot data
{
  "files": {
    ".app.json": {
      "sha256": "7b22ecdd07298451bc032e68d4bb4d9b1e893c9113ebe7161167af6c84dd2571",
      "size": 101
    },
    ".codex-plugin/plugin.json": {
      "sha256": "6bfaaffe7e4286ec878e76c2cd965e88d1b7531950a5ca87caad6652e50d697e",
      "size": 9517
    },
    ".mcp.json": {
      "sha256": "3e910dc8f73742b65f9bea1ee96c8a3956dc9896e297b81a0b26fd236a496d1d",
      "size": 95
    },
    "assets/icon.png": {
      "sha256": "02b239bb7dda3ab47557d91f340126f930ca1e5ba868986dc75c3129eccd38e9",
      "size": 90837
    },
    "mcp.json": {
      "sha256": "d5268b2dea8b38e1207d4a21019fa637f346a40a8c1748cabcec6e75e45fbb95",
      "size": 200
    },
    "plugin.json": {
      "sha256": "b320625e7db6a082d20db98db36c462cb586a66392fed74f3fcf1c2888b41425",
      "size": 9637
    },
    "skills/jade-note-answer-from-notes/SKILL.md": {
      "sha256": "bbdec1a200c493862bf8e8124322f7e69e0d7c311d5b558b5912292bf2037ba7",
      "size": 2957
    },
    "skills/jade-note-answer-from-notes/agents/openai.yaml": {
      "sha256": "eb9631695f7118fe11985b3a76cc58b2960874f2d1f9e2242c4616fb28d38ab6",
      "size": 448
    },
    "skills/jade-note-catch-up/SKILL.md": {
      "sha256": "78367372007f04705f36c924b10ff855cbc58aa7d9c6c48c79f51c10397a9357",
      "size": 4705
    },
    "skills/jade-note-catch-up/agents/openai.yaml": {
      "sha256": "ea341f5e780fb8103b2ce6931082f730748201bad4d3c62f18f4d93c86e428c9",
      "size": 433
    },
    "skills/jade-note-manage-tasks/SKILL.md": {
      "sha256": "a8e1d1549e3987e0476d4b65cd4026402ec0b54984c25bd4f22365c1886d89bb",
      "size": 3337
    },
    "skills/jade-note-manage-tasks/agents/openai.yaml": {
      "sha256": "4127a083cc2202f3de727df704c97a45b35c90770d83971ee9398649bbed41c8",
      "size": 442
    },
    "skills/jade-note-meeting-notes/SKILL.md": {
      "sha256": "e9bfa409885fd20a09beeb5af120969d657bd7ed696606af837499718b80a6f1",
      "size": 2930
    },
    "skills/jade-note-meeting-notes/agents/openai.yaml": {
      "sha256": "eefa7606d44af0d61f6c9b6566ed7381c4a94fe981d80b3a55b06c05b351654a",
      "size": 436
    },
    "skills/jade-note-monitor-flag/SKILL.md": {
      "sha256": "5bd4b5e2addd9ed75781cf3d297e3a216d33a8da8ff73f1e6b06c9cd4a2c0d21",
      "size": 4790
    },
    "skills/jade-note-monitor-flag/agents/openai.yaml": {
      "sha256": "c850ee1d10f97c553cac022e0fe650eba0022354dc99a14873d4c96c70086954",
      "size": 441
    },
    "skills/jade-note-save-memory/SKILL.md": {
      "sha256": "f130684d60f3ab3e267743c30fe743b44c3d9b874dfa5c8c51a1d02843c6c449",
      "size": 3133
    },
    "skills/jade-note-save-memory/agents/openai.yaml": {
      "sha256": "5aeabac95502741699e412bb8a4d921fb05bf2f1b1756dae88f1f328a35e1207",
      "size": 436
    },
    "skills/jade-note-weekly-review/SKILL.md": {
      "sha256": "8a61e5b9ad055dd6c9facdf95c5e3ddbc7d93599a9889b5e38fbaca409f195dd",
      "size": 2955
    },
    "skills/jade-note-weekly-review/agents/openai.yaml": {
      "sha256": "3224a167e300a860f22c99daa5c7ec89d7a97b37861f49779aa586a269c3de47",
      "size": 441
    }
  }
}

SHA-256 of public snapshot: b427b19fe4bf4e39e9917d452b57fb3921c29a40d96ebcf909e2315d6de93c11