← Performance SignalCONTENT HISTORY

Update to Performance Signal

Snapshot Nov 3, 2026 · 00:12 UTC · version 1.1.0

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 Performance Signal 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 24, 2026 · 13:26 UTC

9a3114cccdb1c74cf52b44ff9952297e288c7322e50dea34d15af00ef73cddd2

After

Nov 3, 2026 · 00:12 UTC

2eebc8c27f1543ab404ce2652dabb69465a9e5c9bc4369e80e841fff7ad6dc2c

Package file

Before

Oct 24, 2026 · 13:26 UTC

127

After

Nov 3, 2026 · 00:12 UTC

110

Package file

Before

Oct 24, 2026 · 13:26 UTC

edf356aea854a1a700b37be2e38336aa0e3e89ffee831847b96921145f688128

After

Nov 3, 2026 · 00:12 UTC

12c8eb4a6075780531b36c9956c53707fa86bd9cf7284cdd3eb9034a342a26b5

Package file

Before

Oct 24, 2026 · 13:26 UTC

1366

After

Nov 3, 2026 · 00:12 UTC

1385

Compare saved observations

Download comparison JSON

.codex-plugin/plugin.json

− removed · + added

--- before
+++ after
@@ -1,12 +1,12 @@
 {
-  "apps": "./.app.json",
   "author": {
     "name": "Performance Signal"
   },
-  "description": "Performance Signal helps runners use ChatGPT to inspect their connected Strava training history, find specific activities, analyze run details and streams, compare mileage trends, and sync missing activity data into the app's private local store.",
+  "description": "Connect your Strava and Garmin running data to ChatGPT for personalised running analysis, training insights, goals and plans.",
   "interface": {
     "capabilities": [],
     "category": "Healthcare",
+    "composerIcon": "./assets/logo-on-white-500.png",
     "defaultPrompt": [
       "Analyse my latest run and tell me what stands out.",
       "Which year did I run the most kilometres?",
@@ -14,13 +14,24 @@
     ],
     "developerName": "Performance Signal",
     "displayName": "Performance Signal",
-    "longDescription": "Performance Signal helps runners use ChatGPT to inspect their connected Strava training history, find specific activities, analyze run details and streams, compare mileage trends, and sync missing activity data into the app's private local store.",
+    "logo": "./assets/logo-on-white-500.png",
+    "longDescription": "Connect your Strava and Garmin running data to ChatGPT for personalised running analysis, training insights, goals and plans.",
     "privacyPolicyURL": "https://www.performancesignal.ai/privacy",
-    "shortDescription": "Analyze Strava data",
+    "shortDescription": "Strava & Garmin run analysis",
     "supportURL": "https://www.performancesignal.ai/support",
     "termsOfServiceURL": "https://www.performancesignal.ai/terms",
     "websiteURL": "https://performancesignal.ai"
   },
   "name": "app-6a4eda49a1c08191b662a0adb444785a",
-  "version": "1.0.0"
-}
\ No newline at end of file
+  "version": "1.1.0",
+  "keywords": [
+    "running",
+    "Strava",
+    "Garmin",
+    "training",
+    "coaching"
+  ],
+  "skills": "./skills/",
+  "mcpServers": "./.mcp.json",
+  "apps": "./.app.json"
+}
Full technical diff · 16 changed fields

changed /files/.app.json/sha256

BEFORE
"9a3114cccdb1c74cf52b44ff9952297e288c7322e50dea34d15af00ef73cddd2"
AFTER
"2eebc8c27f1543ab404ce2652dabb69465a9e5c9bc4369e80e841fff7ad6dc2c"

changed /files/.app.json/size

BEFORE
127
AFTER
110

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

BEFORE
"edf356aea854a1a700b37be2e38336aa0e3e89ffee831847b96921145f688128"
AFTER
"12c8eb4a6075780531b36c9956c53707fa86bd9cf7284cdd3eb9034a342a26b5"

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

BEFORE
1366
AFTER
1385

added /files/.mcp.json

BEFORE
Field was absent
AFTER
{
  "sha256": "0b57dbe4db1bf12b01c519222c2a247c44f3e0a731f161cb050e94841d050c32",
  "size": 112
}

added /files/assets~1logo-on-white-500.png

BEFORE
Field was absent
AFTER
{
  "sha256": "e2cf06978db2dc2e8ccdf4eff3ad714baa976c26dc2ad8a533fcd4871cab62da",
  "size": 187236
}

added /files/skills~1account-onboarding~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "414a1a9d26e45c47701c7e67e1544603f28335780abc2307e952495357704f22",
  "size": 8440
}

added /files/skills~1account-onboarding~1references~1evidence-and-uncertainty.md

BEFORE
Field was absent
AFTER
{
  "sha256": "9e380e9d5b3023465608b759b21a018238cf697082d8d655171b51def259ad6c",
  "size": 4256
}

added /files/skills~1account-onboarding~1references~1onboarding-states.md

BEFORE
Field was absent
AFTER
{
  "sha256": "5071173134d2fa609bf1189be64bfb5348d54311bdada4ba0354b5447d1655aa",
  "size": 7486
}

added /files/skills~1account-onboarding~1references~1source-attribution.md

BEFORE
Field was absent
AFTER
{
  "sha256": "e0ef6dba6d3618d975d2cb04d8945c1c5ea89d6f2fcc786ee6b3a4b276167164",
  "size": 2541
}

added /files/skills~1account-onboarding~1references~1tool-selection.md

BEFORE
Field was absent
AFTER
{
  "sha256": "761a341e0100789ada4c1496f3c7f30a5ce44cb072da6423f80bc10120c56d96",
  "size": 4095
}

added /files/skills~1running-analysis~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "2a77f0ed6ba39824a06c004ef3ef0f63c238528165623ecc213848c63cd32af7",
  "size": 13076
}

added /files/skills~1running-analysis~1references~1coaching-evidence.md

BEFORE
Field was absent
AFTER
{
  "sha256": "4447ae09f3c77f92f9ebbbc214216449109ec9d79d35ac8b4e800a7ebb812b1c",
  "size": 8756
}

added /files/skills~1running-analysis~1references~1evidence-and-uncertainty.md

BEFORE
Field was absent
AFTER
{
  "sha256": "9e380e9d5b3023465608b759b21a018238cf697082d8d655171b51def259ad6c",
  "size": 4256
}

added /files/skills~1running-analysis~1references~1source-attribution.md

BEFORE
Field was absent
AFTER
{
  "sha256": "e0ef6dba6d3618d975d2cb04d8945c1c5ea89d6f2fcc786ee6b3a4b276167164",
  "size": 2541
}

added /files/skills~1running-analysis~1references~1tool-selection.md

BEFORE
Field was absent
AFTER
{
  "sha256": "761a341e0100789ada4c1496f3c7f30a5ce44cb072da6423f80bc10120c56d96",
  "size": 4095
}
Full snapshot data
{
  "files": {
    ".app.json": {
      "sha256": "2eebc8c27f1543ab404ce2652dabb69465a9e5c9bc4369e80e841fff7ad6dc2c",
      "size": 110
    },
    ".codex-plugin/plugin.json": {
      "sha256": "12c8eb4a6075780531b36c9956c53707fa86bd9cf7284cdd3eb9034a342a26b5",
      "size": 1385
    },
    ".mcp.json": {
      "sha256": "0b57dbe4db1bf12b01c519222c2a247c44f3e0a731f161cb050e94841d050c32",
      "size": 112
    },
    "assets/logo-on-white-500.png": {
      "sha256": "e2cf06978db2dc2e8ccdf4eff3ad714baa976c26dc2ad8a533fcd4871cab62da",
      "size": 187236
    },
    "skills/account-onboarding/SKILL.md": {
      "sha256": "414a1a9d26e45c47701c7e67e1544603f28335780abc2307e952495357704f22",
      "size": 8440
    },
    "skills/account-onboarding/references/evidence-and-uncertainty.md": {
      "sha256": "9e380e9d5b3023465608b759b21a018238cf697082d8d655171b51def259ad6c",
      "size": 4256
    },
    "skills/account-onboarding/references/onboarding-states.md": {
      "sha256": "5071173134d2fa609bf1189be64bfb5348d54311bdada4ba0354b5447d1655aa",
      "size": 7486
    },
    "skills/account-onboarding/references/source-attribution.md": {
      "sha256": "e0ef6dba6d3618d975d2cb04d8945c1c5ea89d6f2fcc786ee6b3a4b276167164",
      "size": 2541
    },
    "skills/account-onboarding/references/tool-selection.md": {
      "sha256": "761a341e0100789ada4c1496f3c7f30a5ce44cb072da6423f80bc10120c56d96",
      "size": 4095
    },
    "skills/running-analysis/SKILL.md": {
      "sha256": "2a77f0ed6ba39824a06c004ef3ef0f63c238528165623ecc213848c63cd32af7",
      "size": 13076
    },
    "skills/running-analysis/references/coaching-evidence.md": {
      "sha256": "4447ae09f3c77f92f9ebbbc214216449109ec9d79d35ac8b4e800a7ebb812b1c",
      "size": 8756
    },
    "skills/running-analysis/references/evidence-and-uncertainty.md": {
      "sha256": "9e380e9d5b3023465608b759b21a018238cf697082d8d655171b51def259ad6c",
      "size": 4256
    },
    "skills/running-analysis/references/source-attribution.md": {
      "sha256": "e0ef6dba6d3618d975d2cb04d8945c1c5ea89d6f2fcc786ee6b3a4b276167164",
      "size": 2541
    },
    "skills/running-analysis/references/tool-selection.md": {
      "sha256": "761a341e0100789ada4c1496f3c7f30a5ce44cb072da6423f80bc10120c56d96",
      "size": 4095
    }
  }
}

SHA-256 of public snapshot: cd0ae5b080a1abbbbe790c2f557d6d13f9be350699f46556bc6514e3989197e9