← uNotesCONTENT HISTORY

Update to uNotes

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 uNotes 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

Oct 10, 2026 · 06:12 UTC

6fc54f130ad73a7b85e480db603b42a7eac2279bfd39cde409b3321536483997

After

Oct 27, 2026 · 06:07 UTC

5cd5a279676fdb35c61c985b42cac96f037ff8fcdf9817a0d4ba6d4645c3adc6

Package file

Before

Oct 10, 2026 · 06:12 UTC

127

After

Oct 27, 2026 · 06:07 UTC

98

Package file

Before

Oct 10, 2026 · 06:12 UTC

c47a1e249239c53b80d0808b598400a8ea03f78744a72d22efdca64980a3aa30

After

Oct 27, 2026 · 06:07 UTC

fbc4791abc780a7fb4b52c5b144e963bc4ebd8cfd27a17ad38e76d8f65a44373

Package file

Before

Oct 10, 2026 · 06:12 UTC

3924

After

Oct 27, 2026 · 06:07 UTC

8540

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": "Search your study library",
     "supportURL": "https://unotes.net/support",
     "termsOfServiceURL": "https://unotes.net/terms",
-    "websiteURL": "https://unotes.net/"
+    "websiteURL": "https://unotes.net/",
+    "logo": "./assets/logo.png",
+    "logoDark": "./assets/logo-dark.png",
+    "composerIcon": "./assets/icon.png",
+    "composerIconDark": "./assets/icon-dark.png"
   },
   "name": "app-6a7ae3809a148191ac2fa410c17f26c7",
-  "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": "Connect and inspect the tool list",
+              "prompt": "What tools do you have from uNotes?",
+              "tools_triggered": "tools/list",
+              "expected_behavior": "Exactly eight tools: search_library, get_document, get_document_content, list_my_flashcards, list_my_quizzes, get_study_streak, get_quota_status, list_schools_courses. Every one is annotated readOnlyHint true, destructiveHint false, idempotentHint true. A shorter list means a narrower consent grant, not a broken server, because tools are registered per request against the scopes the token carries."
+            },
+            {
+              "description": "Search the study library",
+              "prompt": "Search uNotes for documents about operating systems and show me the top three.",
+              "tools_triggered": "search_library",
+              "expected_behavior": "A count plus a documents array; each row carries id, name, type, a course and school label, and an absolute unotes.net URL the reviewer can open in a browser to confirm the document is real. Note that search_library queries the shared public library of completed documents across the whole platform, not this account's private notes, so results are real public course material rather than Talia's own uploads."
+            },
+            {
+              "description": "Open a seeded document by id",
+              "prompt": "Open uNotes document 9963b4ee-a5af-4c0f-86f8-07dc81fc6170 and tell me its course, year and professor.",
+              "tools_triggered": "get_document",
+              "expected_behavior": "Metadata for the document CSI 3131 \u2014 Virtual Memory and Page Replacement: name, type, year, season, language, professor, course and school objects, view and like counts, postedAt, and the public URL. No user ids and no internal fields are returned."
+            },
+            {
+              "description": "Read the document text",
+              "prompt": "Now read that same document and summarize its main points.",
+              "tools_triggered": "get_document_content",
+              "expected_behavior": "A title, sourceLabel and content payload carrying the extracted study text about demand paging and page faults, plus a prose summary from the assistant. Content is capped at 12,000 characters, so a long document ending mid-sentence is the intended limit rather than data loss."
+            },
+            {
+              "description": "Study streak and quota",
+              "prompt": "How long is my study streak, and how much of my monthly quota is left?",
+              "tools_triggered": "get_study_streak, get_quota_status",
+              "expected_behavior": "A live non-zero streak: currentStreakDays 12, longestStreakDays 31, studiedToday true, with the 7-day and 30-day badges earned. Then tier PRO plus one quota row per feature with used, limit, remaining and resetsAt, where a null limit means unlimited on this plan and real used counts appear, for example AI chat 18 of 250. Reading the quota consumes none of it, because every tool on this surface is a read."
+            }
+          ],
+          "negative": [
+            {
+              "description": "Study material stored outside uNotes",
+              "prompt": "Summarize the lecture slides in my Google Drive folder and turn them into study notes.",
+              "expected_behavior": ""
+            },
+            {
+              "description": "Running and grading a quiz",
+              "prompt": "Quiz me on chapter 4 of my operating systems notes and grade my answers as I go.",
+              "expected_behavior": ""
+            },
+            {
+              "description": "Billing and plan changes",
+              "prompt": "What does the uNotes Pro plan cost, and can you upgrade my subscription for me?",
+              "expected_behavior": ""
+            }
+          ]
+        },
+        "demo_recording_url": "https://drive.google.com/file/d/16DrELROO7wra5uJYlrPgOwE27qxvO50Z/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
"6fc54f130ad73a7b85e480db603b42a7eac2279bfd39cde409b3321536483997"
AFTER
"5cd5a279676fdb35c61c985b42cac96f037ff8fcdf9817a0d4ba6d4645c3adc6"

changed /files/.app.json/size

BEFORE
127
AFTER
98

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

BEFORE
"c47a1e249239c53b80d0808b598400a8ea03f78744a72d22efdca64980a3aa30"
AFTER
"fbc4791abc780a7fb4b52c5b144e963bc4ebd8cfd27a17ad38e76d8f65a44373"

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

BEFORE
3924
AFTER
8540

added /files/.mcp.json

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

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

BEFORE
Field was absent
AFTER
{
  "sha256": "948329dc83789f4af65af3fc66959e0009cb40c698a3785aca1cebb25d74306e",
  "size": 101446
}

added /files/assets~1icon.png

BEFORE
Field was absent
AFTER
{
  "sha256": "948329dc83789f4af65af3fc66959e0009cb40c698a3785aca1cebb25d74306e",
  "size": 101446
}

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

BEFORE
Field was absent
AFTER
{
  "sha256": "948329dc83789f4af65af3fc66959e0009cb40c698a3785aca1cebb25d74306e",
  "size": 101446
}

added /files/assets~1logo.png

BEFORE
Field was absent
AFTER
{
  "sha256": "948329dc83789f4af65af3fc66959e0009cb40c698a3785aca1cebb25d74306e",
  "size": 101446
}
Full snapshot data
{
  "files": {
    ".app.json": {
      "sha256": "5cd5a279676fdb35c61c985b42cac96f037ff8fcdf9817a0d4ba6d4645c3adc6",
      "size": 98
    },
    ".codex-plugin/plugin.json": {
      "sha256": "fbc4791abc780a7fb4b52c5b144e963bc4ebd8cfd27a17ad38e76d8f65a44373",
      "size": 8540
    },
    ".mcp.json": {
      "sha256": "bfbd2e033ce437951532d53d879d8324eda5e1a91c9a6a9cf2efee8fba6d7866",
      "size": 95
    },
    "assets/icon-dark.png": {
      "sha256": "948329dc83789f4af65af3fc66959e0009cb40c698a3785aca1cebb25d74306e",
      "size": 101446
    },
    "assets/icon.png": {
      "sha256": "948329dc83789f4af65af3fc66959e0009cb40c698a3785aca1cebb25d74306e",
      "size": 101446
    },
    "assets/logo-dark.png": {
      "sha256": "948329dc83789f4af65af3fc66959e0009cb40c698a3785aca1cebb25d74306e",
      "size": 101446
    },
    "assets/logo.png": {
      "sha256": "948329dc83789f4af65af3fc66959e0009cb40c698a3785aca1cebb25d74306e",
      "size": 101446
    }
  }
}

SHA-256 of public snapshot: 221a76ee003c8ada6b47a4d54cd7353a2f8f9331e39649bf9d80b075a2e52c8f