{
  "product": "SignalSpore",
  "mission": "SignalSpore — public rollout decision support for AI coding agents.",
  "mode": "agent-rollout-decision",
  "commit": "668d4fedee39b08480fb255214d4871e4416f2f7",
  "deployedCommit": "668d4fedee39b08480fb255214d4871e4416f2f7",
  "dataCommit": "668d4fedee39b08480fb255214d4871e4416f2f7",
  "generatedAt": "2026-07-15T05:34:48.576Z",
  "lastSuccessfulSourceCheck": "2026-07-15T05:34:48.576Z",
  "nextExpectedSourceCheck": "2026-07-16T05:34:48.576Z",
  "sourceCheckCadence": "daily",
  "freshnessState": "Fresh",
  "sourceFreshnessAgeHours": 0,
  "productionAlertAfterHours": 30,
  "buildId": "668d4fedee39-20260715T053448",
  "rawChanges": 32,
  "reviewCandidates": [
    {
      "changeId": "7d6814ec8fbf",
      "agent": "Claude Code",
      "org": "Anthropic",
      "changeType": "changelog-changed",
      "previousHash": "5db99e54d5f5357514b87e5f339c1276bb227fa8970ecb8bcd0e1adbc8d46542",
      "currentHash": "65a493466cddc8dc75eedb908a4d9fd18ef46b3535b8d016a40c930cb6a7a2e1",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://docs.anthropic.com/en/release-notes/overview",
      "humanSummary": "Claude Code changelog hash changed since the previous SignalSpore run.",
      "materialityCandidate": true,
      "whyItMightMatter": "Changelog movement is a candidate launch or behavior-change signal that needs review.",
      "suggestedTeamAction": "Review the normalized diff source before promoting this candidate to a verified material change.",
      "rawHashChanged": true,
      "normalizedHashChanged": true,
      "normalizedChangeType": "meaningful-text-change",
      "diffNoiseScore": 30,
      "diffConfidence": 72,
      "reviewCandidate": true,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://platform.claude.com/docs/en/release-notes/overview",
      "redirectAfter": "https://platform.claude.com/docs/en/release-notes/overview",
      "previousCanonicalUrl": "https://platform.claude.com/docs/en/release-notes/overview",
      "currentCanonicalUrl": "https://platform.claude.com/docs/en/release-notes/overview",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Claude Platform - Claude Platform Docs Claude Platform Docs Messages        Search... ⌘K Release notes Overview System prompts Migration guides Migrating to   Release notes  Overview ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... Claude Platform Docs Solutions AI agents Code modernization Coding Customer support Education Financial",
      "changedTextExcerptAfter": "Claude Platform release notes - Claude Platform Docs Claude Platform Docs Messages        Search... ⌘K Release notes Overview System prompts Migration guides Migrating to   Release notes  Overview ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... Claude Platform Docs Solutions AI agents Code modernization Coding Customer support Educa",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "Normalized visible/main text changed and needs human review.",
      "noiseReason": "",
      "evidenceRegion": "release-note-body",
      "bodyLevelEvidence": true
    },
    {
      "changeId": "c805ad48bd06",
      "agent": "OpenAI Codex",
      "org": "OpenAI",
      "changeType": "docs-changed",
      "previousHash": "14819b27889b15f7881808310431229a5dbbec4353b0fe87493edc73fcbccaf1",
      "currentHash": "be90bbd52a9e01224f8bc542c758bdc4c25257d3b3b2b66cba44efba23149d2b",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://platform.openai.com/docs/codex",
      "humanSummary": "OpenAI Codex docs hash changed since the previous SignalSpore run.",
      "materialityCandidate": true,
      "whyItMightMatter": "Docs changes may alter setup, controls, integration behavior, or availability assumptions.",
      "suggestedTeamAction": "Review the normalized diff source before promoting this candidate to a verified material change.",
      "rawHashChanged": true,
      "normalizedHashChanged": true,
      "normalizedChangeType": "meaningful-text-change",
      "diffNoiseScore": 30,
      "diffConfidence": 72,
      "reviewCandidate": true,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://learn.chatgpt.com/docs/cloud",
      "redirectAfter": "https://learn.chatgpt.com/docs/cloud",
      "previousCanonicalUrl": "https://learn.chatgpt.com/docs/cloud",
      "currentCanonicalUrl": "https://learn.chatgpt.com/docs/cloud",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Codex cloud | ChatGPT Learn ChatGPT Home API Docs Guides and concepts for the OpenAI API Endpoints, parameters, and responses Codex Docs Guides, concepts, and product docs for Codex Use cases Example workflows and tasks teams can take on with ChatGPT or Codex Docs Use cases ChatGPT Apps SDK Build apps to extend ChatGPT Workspace Agents Trigger published Chat",
      "changedTextExcerptAfter": "Codex cloud | ChatGPT Learn ChatGPT Home API Codex Docs Guides, concepts, and product docs for Codex Use cases Example workflows and tasks teams can take on with ChatGPT or Codex Docs Use cases ChatGPT Apps SDK Build apps to extend ChatGPT Workspace Agents Trigger published ChatGPT workspace agents Commerce Build commerce flows in ChatGPT Ads Publish and mea",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "Normalized visible/main text changed and needs human review.",
      "noiseReason": "",
      "evidenceRegion": "docs-body",
      "bodyLevelEvidence": true
    }
  ],
  "verifiedMaterialChanges": 0,
  "noiseChanges": 30,
  "sourceSpecificSignals": 2,
  "counts": {
    "rawChanges": 32,
    "reviewCandidates": 2,
    "verifiedMaterialChanges": 0,
    "noiseChanges": 30,
    "sourceSpecificSignals": 2,
    "materialityCandidates": 2,
    "unknownChanges": 0
  },
  "materialityRule": "A detected raw/source/docs/repo hash change is only a raw observation. It becomes a review candidate after normalization/noise filtering and becomes verified material only with evidence affecting launch, availability, pricing, docs, repo, security/governance, rename, shutdown, status, or integration behavior.",
  "aliases": {
    "materialityCandidate": "reviewCandidate"
  },
  "changes": [
    {
      "changeId": "82080ab456a1",
      "agent": "Anthropic Computer Use",
      "org": "Anthropic",
      "changeType": "changelog-changed",
      "previousHash": "6b4c4bc5504c26bc97267ca0db514eaca4949cb885496608da407715310693e5",
      "currentHash": "20d898d281d4cbce673e394f1c8dbace3ee51b6952647787ddba1898c17e85d3",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://docs.anthropic.com/en/release-notes/overview",
      "humanSummary": "Anthropic Computer Use changelog hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://platform.claude.com/docs/en/release-notes/overview",
      "redirectAfter": "https://platform.claude.com/docs/en/release-notes/overview",
      "previousCanonicalUrl": "https://platform.claude.com/docs/en/release-notes/overview",
      "currentCanonicalUrl": "https://platform.claude.com/docs/en/release-notes/overview",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Claude Platform release notes - Claude Platform Docs Claude Platform Docs Messages        Search... ⌘K Release notes Overview System prompts Migration guides Migrating to   Release notes  Overview ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... Claude Platform Docs Solutions AI agents Code modernization Coding Customer support Educa",
      "changedTextExcerptAfter": "Claude Platform release notes - Claude Platform Docs Claude Platform Docs Messages        Search... ⌘K Release notes Overview System prompts Migration guides Migrating to   Release notes  Overview ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... Claude Platform Docs Solutions AI agents Code modernization Coding Customer support Educa",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "6444aaf6c4d9",
      "agent": "Asana AI Teammates",
      "org": "Asana",
      "changeType": "source-changed",
      "previousHash": "8c48782ddb523f9f6d49ac305d28777927c6b9c65f5b849959aafbd412c50542",
      "currentHash": "b452dcafd171e6dd4cac5eb335063327d637bd3c92d086b787329ca0134a3cc3",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://asana.com/product/ai",
      "humanSummary": "Asana AI Teammates source hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 94,
      "diffConfidence": 88,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://asana.com/product/ai",
      "redirectAfter": "https://asana.com/product/ai",
      "previousCanonicalUrl": "https://asana.com/product/ai",
      "currentCanonicalUrl": "https://asana.com/product/ai",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Asana AI Agentic Work Management • Asana Products Solutions Learning support Pricing Choose your preferred language Bahasa Indonesia Deutsch Español Français Italiano 日本語 한국어 Nederlands Polski Português Русский Svenska 繁體中文 Contact sales Get started Launch Asana Upgrade Contact sales My tasks Inbox My organization Help Center Language Add another account Log",
      "changedTextExcerptAfter": "Asana AI Agentic Work Management • Asana Products Solutions Learning support Pricing Choose your preferred language Bahasa Indonesia Deutsch Español Français Italiano 日本語 한국어 Nederlands Polski Português Русский Svenska 繁體中文 Contact sales Get started Launch Asana Upgrade Contact sales My tasks Inbox My organization Help Center Language Add another account Log",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Navigation or locale shell changed; release-note body did not change.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "69129100677b",
      "agent": "Asana AI Teammates",
      "org": "Asana",
      "changeType": "pricing-changed",
      "previousHash": "b0c786fa01ea1fb21ed6cf41d347c058f2901d2ec4e44bc6d0ecaff3f2c9f02a",
      "currentHash": "6cff75aad5cb539e329531d1849fdd53eb3ef079a1ee49d3217cfb17d9354cb5",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://asana.com/pricing",
      "humanSummary": "Asana AI Teammates pricing hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 94,
      "diffConfidence": 88,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://asana.com/pricing",
      "redirectAfter": "https://asana.com/pricing",
      "previousCanonicalUrl": "https://asana.com/pricing",
      "currentCanonicalUrl": "https://asana.com/pricing",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Asana Pricing | Personal, Starter, Advanced, Enterprise plans • Asana Products Solutions Learning support Pricing Choose your preferred language Bahasa Indonesia Deutsch Español Français Italiano 日本語 한국어 Nederlands Polski Português Русский Svenska 繁體中文 Contact sales Get started Upgrade Contact sales Products Agentic Work Management For cross-functional teams",
      "changedTextExcerptAfter": "Asana Pricing | Personal, Starter, Advanced, Enterprise plans • Asana Products Solutions Learning support Pricing Choose your preferred language Bahasa Indonesia Deutsch Español Français Italiano 日本語 한국어 Nederlands Polski Português Русский Svenska 繁體中文 Contact sales Get started Upgrade Contact sales Products Agentic Work Management For cross-functional teams",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Navigation or locale shell changed; release-note body did not change.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "ca489806ce6f",
      "agent": "Asana AI Teammates",
      "org": "Asana",
      "changeType": "changelog-changed",
      "previousHash": "132cc6221c2de90406bca62163bb069a948e428fe30a622e2b195a310eeb60e7",
      "currentHash": "b0efd762f674fe2638e6c12f1c1f972aa48d59bd1cac3cd912abb9f5b1ffec45",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://forum.asana.com/c/announcements/67",
      "humanSummary": "Asana AI Teammates changelog hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://forum.asana.com/c/forum-de/hilfe-und-tipps/67",
      "redirectAfter": "https://forum.asana.com/c/forum-de/hilfe-und-tipps/67",
      "previousCanonicalUrl": "https://forum.asana.com/c/forum-de/hilfe-und-tipps/67",
      "currentCanonicalUrl": "https://forum.asana.com/c/forum-de/hilfe-und-tipps/67",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Latest Hilfe und Tipps topics - Asana Forum = 40rem)\" rel=\"stylesheet\" /> = 40rem)\" rel=\"stylesheet\" /> = 40rem)\" rel=\"stylesheet\" /> = 40rem)\" rel=\"stylesheet\" /> = 40rem)\" rel=\"stylesheet\" /> = 40rem)\" rel=\"stylesheet\" /> = 40rem)\" rel=\"stylesheet\" /> = 40rem)\" rel=\"stylesheet\" /> Asana Forum German Forum Hilfe und Tipps Tipps von Forum Leaders Forum Leade",
      "changedTextExcerptAfter": "Latest Hilfe und Tipps topics - Asana Forum = 40rem)\" rel=\"stylesheet\" /> = 40rem)\" rel=\"stylesheet\" /> = 40rem)\" rel=\"stylesheet\" /> = 40rem)\" rel=\"stylesheet\" /> = 40rem)\" rel=\"stylesheet\" /> = 40rem)\" rel=\"stylesheet\" /> = 40rem)\" rel=\"stylesheet\" /> = 40rem)\" rel=\"stylesheet\" /> Asana Forum German Forum Hilfe und Tipps Tipps von Forum Leaders Forum Leade",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "a13a4f07ade5",
      "agent": "AutoGen",
      "org": "Microsoft",
      "changeType": "changelog-changed",
      "previousHash": "21e956bb748372d4de836c338aa5c681cbcef99ddec74f952b480ebb6f37dfa5",
      "currentHash": "557f5dc5f055553a35013d5c7119bfe320181135bd70805b2eea3b9437dc87df",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://github.com/microsoft/autogen/releases",
      "humanSummary": "AutoGen changelog hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://github.com/microsoft/autogen/releases",
      "redirectAfter": "https://github.com/microsoft/autogen/releases",
      "previousCanonicalUrl": "https://github.com/microsoft/autogen/releases",
      "currentCanonicalUrl": "https://github.com/microsoft/autogen/releases",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Releases · microsoft/autogen · GitHub Skip to content Navigation Menu Toggle navigation Sign in Appearance settings Platform AI CODE CREATION GitHub Copilot Write better code with AI GitHub Copilot app Direct agents from issue to merge MCP Registry New Integrate external tools DEVELOPER WORKFLOWS Actions Automate any workflow Codespaces Instant dev environme",
      "changedTextExcerptAfter": "Releases · microsoft/autogen · GitHub Skip to content Navigation Menu Toggle navigation Sign in Appearance settings Platform AI CODE CREATION GitHub Copilot Write better code with AI GitHub Copilot app Direct agents from issue to merge MCP Registry New Integrate external tools DEVELOPER WORKFLOWS Actions Automate any workflow Codespaces Instant dev environme",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "6dd1888a81e1",
      "agent": "Base44",
      "org": "Wix",
      "changeType": "docs-changed",
      "previousHash": "b407437503d712f2470b3a39999abda2b6b572fdd9de340ce21f831c84b8bf93",
      "currentHash": "b3f2e8f27afcba81eee522f27ebf8ee6257649ed9d1586b3cab94e56fd179378",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://docs.base44.com/",
      "humanSummary": "Base44 docs hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://docs.base44.com/",
      "redirectAfter": "https://docs.base44.com/",
      "previousCanonicalUrl": "https://docs.base44.com/",
      "currentCanonicalUrl": "https://docs.base44.com/",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Base44 Docs - Base44 Support Documentation Documentation Index Fetch the complete documentation index at: /llms.txt Use this file to discover all available pages before exploring further. Base44 Support Documentation home page Search... ⌘ K Ask Assistant Support Base44 Base44 Search... Navigation Base44 Docs Documentation Developers Account Billing Enterpris",
      "changedTextExcerptAfter": "Base44 Docs - Base44 Support Documentation Documentation Index Fetch the complete documentation index at: /llms.txt Use this file to discover all available pages before exploring further. Base44 Support Documentation home page Search... ⌘ K Ask Assistant Support Base44 Base44 Search... Navigation Base44 Docs Documentation Developers Account Billing Enterpris",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "fe2d4c7a8dcb",
      "agent": "Browserbase Stagehand",
      "org": "Browserbase",
      "changeType": "source-changed",
      "previousHash": "0de484e869a1c8d6b8ce212292336f165d99d715a8301a20c530c69a22d5c3e7",
      "currentHash": "1ed88ecda4270832cb7a193db0e8228e81ed4c215e50c47bbf44f4adef17938a",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://www.browserbase.com/",
      "humanSummary": "Browserbase Stagehand source hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://www.browserbase.com/",
      "redirectAfter": "https://www.browserbase.com/",
      "previousCanonicalUrl": "https://www.browserbase.com/",
      "currentCanonicalUrl": "https://www.browserbase.com/",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Browserbase Skip to content Browserbase Navigation Platform Primitives Browsers Real browsers for your agent to use the web, without the headaches Agents Scale fully managed browser agents with simple prompts. Web Data APIs Search and fetch APIs to efficiently retrieve web data Runtime Scalable, sandboxed environments for agent deployments Identity Authentic",
      "changedTextExcerptAfter": "Browserbase Skip to content Browserbase Navigation Platform Primitives Browsers Real browsers for your agent to use the web, without the headaches Agents Scale fully managed browser agents with simple prompts. Web Data APIs Search and fetch APIs to efficiently retrieve web data Runtime Scalable, sandboxed environments for agent deployments Identity Authentic",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "693566a3525a",
      "agent": "Claude Code",
      "org": "Anthropic",
      "changeType": "docs-changed",
      "previousHash": "0fe2b5acfb0f301d480fa23ebb1b7f831e77214baa3e03cfb57c71f067b44cae",
      "currentHash": "2533298524a6d2627ef0e24757660c81537d306e8a3c712de8ffb2f06dd790f5",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://docs.anthropic.com/en/docs/claude-code/overview",
      "humanSummary": "Claude Code docs hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://code.claude.com/docs/en/overview",
      "redirectAfter": "https://code.claude.com/docs/en/overview",
      "previousCanonicalUrl": "https://code.claude.com/docs/en/overview",
      "currentCanonicalUrl": "https://code.claude.com/docs/en/overview",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Overview - Claude Code Docs Documentation Index Fetch the complete documentation index at: /docs/llms.txt Use this file to discover all available pages before exploring further. Claude Code Docs home page Search... ⌘ K Ask Assistant Claude Developer Platform Claude Code on the Web Claude Code on the Web Search... Navigation Getting started Overview Getting s",
      "changedTextExcerptAfter": "Overview - Claude Code Docs Documentation Index Fetch the complete documentation index at: /docs/llms.txt Use this file to discover all available pages before exploring further. Claude Code Docs home page Search... ⌘ K Ask Assistant Claude Developer Platform Claude Code on the Web Claude Code on the Web Search... Navigation Getting started Overview Getting s",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "7d6814ec8fbf",
      "agent": "Claude Code",
      "org": "Anthropic",
      "changeType": "changelog-changed",
      "previousHash": "5db99e54d5f5357514b87e5f339c1276bb227fa8970ecb8bcd0e1adbc8d46542",
      "currentHash": "65a493466cddc8dc75eedb908a4d9fd18ef46b3535b8d016a40c930cb6a7a2e1",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://docs.anthropic.com/en/release-notes/overview",
      "humanSummary": "Claude Code changelog hash changed since the previous SignalSpore run.",
      "materialityCandidate": true,
      "whyItMightMatter": "Changelog movement is a candidate launch or behavior-change signal that needs review.",
      "suggestedTeamAction": "Review the normalized diff source before promoting this candidate to a verified material change.",
      "rawHashChanged": true,
      "normalizedHashChanged": true,
      "normalizedChangeType": "meaningful-text-change",
      "diffNoiseScore": 30,
      "diffConfidence": 72,
      "reviewCandidate": true,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://platform.claude.com/docs/en/release-notes/overview",
      "redirectAfter": "https://platform.claude.com/docs/en/release-notes/overview",
      "previousCanonicalUrl": "https://platform.claude.com/docs/en/release-notes/overview",
      "currentCanonicalUrl": "https://platform.claude.com/docs/en/release-notes/overview",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Claude Platform - Claude Platform Docs Claude Platform Docs Messages        Search... ⌘K Release notes Overview System prompts Migration guides Migrating to   Release notes  Overview ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... Claude Platform Docs Solutions AI agents Code modernization Coding Customer support Education Financial",
      "changedTextExcerptAfter": "Claude Platform release notes - Claude Platform Docs Claude Platform Docs Messages        Search... ⌘K Release notes Overview System prompts Migration guides Migrating to   Release notes  Overview ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... Claude Platform Docs Solutions AI agents Code modernization Coding Customer support Educa",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "Normalized visible/main text changed and needs human review.",
      "noiseReason": "",
      "evidenceRegion": "release-note-body",
      "bodyLevelEvidence": true
    },
    {
      "changeId": "265466a7af7d",
      "agent": "Devin",
      "org": "Cognition",
      "changeType": "docs-changed",
      "previousHash": "5eb8a9187ef534960be44eefcc87c2e8e15d30f0368a903bba42755a67ad1ff5",
      "currentHash": "d9179e6b4e9f91f1f85bf340dbdc84d7a6c25ea06713054af18b1ccc5a48405c",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://docs.devin.ai/",
      "humanSummary": "Devin docs hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://docs.devin.ai/get-started/devin-intro",
      "redirectAfter": "https://docs.devin.ai/get-started/devin-intro",
      "previousCanonicalUrl": "https://docs.devin.ai/get-started/devin-intro",
      "currentCanonicalUrl": "https://docs.devin.ai/get-started/devin-intro",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Introducing Devin - Devin Docs Documentation Index Fetch the complete documentation index at: /llms.txt Use this file to discover all available pages before exploring further. Devin Docs home page Search... ⌘ K Ask Assistant Support Devin Devin Search... Navigation Get Started Introducing Devin Cloud CLI Desktop Enterprise Use Cases API Federal Get Started I",
      "changedTextExcerptAfter": "Introducing Devin - Devin Docs Documentation Index Fetch the complete documentation index at: /llms.txt Use this file to discover all available pages before exploring further. Devin Docs home page Search... ⌘ K Ask Assistant Support Devin Devin Search... Navigation Get Started Introducing Devin Cloud CLI Desktop Enterprise Use Cases API Federal Get Started I",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "73b39988e1de",
      "agent": "Dify",
      "org": "Dify",
      "changeType": "docs-changed",
      "previousHash": "c508e7603331658f3a672ce82b8a0b76d2d75791dcd05fd7fb4d462ec1e3b446",
      "currentHash": "b30cca3dde7cea5f998ef7efb46305cc893be7f40f10eb9f50e5de5be34467ff",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://docs.dify.ai/",
      "humanSummary": "Dify docs hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://docs.dify.ai/en/home",
      "redirectAfter": "https://docs.dify.ai/en/home",
      "previousCanonicalUrl": "https://docs.dify.ai/en/home",
      "currentCanonicalUrl": "https://docs.dify.ai/en/home",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Dify Documentation - Dify Docs Documentation Index Fetch the complete documentation index at: /llms.txt Use this file to discover all available pages before exploring further. Dify Docs home page Cloud Use Learn Developer Search... ⌘ K GitHub Try Dify Dify Docs home page Search or ask... Navigation Dify Documentation Overview Orchestrate Workflow Chatflow Ba",
      "changedTextExcerptAfter": "Dify Documentation - Dify Docs Documentation Index Fetch the complete documentation index at: /llms.txt Use this file to discover all available pages before exploring further. Dify Docs home page Cloud Use Learn Developer Search... ⌘ K GitHub Try Dify Dify Docs home page Search or ask... Navigation Dify Documentation Overview Orchestrate Workflow Chatflow Ba",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "a8278110636a",
      "agent": "Firebase Studio",
      "org": "Google",
      "changeType": "pricing-changed",
      "previousHash": "eb9388caa5c7d1bfb5555581138ac2ccb09118eeb77433698063af3992c4567a",
      "currentHash": "5bf9bca44912e78426b7bc9a66654320a22d24e6982334e507a3917bcfb3283d",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://firebase.google.com/pricing",
      "humanSummary": "Firebase Studio pricing hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": true,
      "normalizedChangeType": "metadata-change",
      "diffNoiseScore": 96,
      "diffConfidence": 92,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://firebase.google.com/pricing",
      "redirectAfter": "https://firebase.google.com/pricing?hl=id",
      "previousCanonicalUrl": "https://firebase.google.com/pricing",
      "currentCanonicalUrl": "https://firebase.google.com/pricing",
      "canonicalUrlChanged": false,
      "localeOnlyChange": true,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Firebase Pricing Build Build Get to market quickly and securely with products that can scale globally Go to Build Build Products App Check App Hosting Authentication Cloud Functions Cloud Storage SQL Connect Extensions Firestore Hosting Phone Number BUILDID Realtime Database Firebase AI Logic Generative AI Run Run Run your app with confidence and deliver the",
      "changedTextExcerptAfter": "Firebase Pricing Langsung ke konten utama Build Build Masuki pasar dengan cepat dan aman menggunakan produk yang dapat diskalakan secara global Buka Membangun Membangun Produk App Check App Hosting Authentication Cloud Functions Cloud Storage SQL Connect Extensions Firestore Hosting BUILDID Nomor Telepon Realtime Database Firebase AI Logic AI Generatif Menja",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Redirect only changed locale/canonical URL parameters, not normalized content.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "7c6995a50ad0",
      "agent": "Firebase Studio",
      "org": "Google",
      "changeType": "changelog-changed",
      "previousHash": "7beaaad4e40f412c5fc6af68701ef0aad91af3d3679e48f91ace0ca94a1f77e6",
      "currentHash": "14756237f85dd02b6d86dbbeb42274e4372a2ac25325b033a4263a6e9e3b8ddc",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://firebase.google.com/support/release-notes",
      "humanSummary": "Firebase Studio changelog hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": true,
      "normalizedChangeType": "metadata-change",
      "diffNoiseScore": 96,
      "diffConfidence": 92,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://firebase.google.com/support",
      "redirectAfter": "https://firebase.google.com/support?hl=es-419",
      "previousCanonicalUrl": "https://firebase.google.com/support",
      "currentCanonicalUrl": "https://firebase.google.com/support",
      "canonicalUrlChanged": false,
      "localeOnlyChange": true,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Firebase Support Build Build Get to market quickly and securely with products that can scale globally Go to Build Build Products App Check App Hosting Authentication Cloud Functions Cloud Storage SQL Connect Extensions Firestore Hosting Phone Number BUILDID Realtime Database Firebase AI Logic Generative AI Run Run Run your app with confidence and deliver the",
      "changedTextExcerptAfter": "Firebase Support Ir al contenido principal Compilación Compilación Acelera la salida al mercado de forma segura con productos que se pueden escalar a nivel global Ir a Creación Productos de creación App Check App Hosting Authentication Cloud Functions Cloud Storage SQL Connect Extensions Firestore Hosting BUILDID ón del número de teléfono Realtime Database F",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Redirect only changed locale/canonical URL parameters, not normalized content.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "a123cf9d871c",
      "agent": "Flowise",
      "org": "Flowise",
      "changeType": "changelog-changed",
      "previousHash": "749e6ef913b4abeaa2d09c50a1b838776377528e26440d3f3c662d65c5f2187f",
      "currentHash": "edc21d8ede44f996721815a6aee3d1decd0628d8a2206f711dc87bd4ffc3f759",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://github.com/FlowiseAI/Flowise/releases",
      "humanSummary": "Flowise changelog hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://github.com/FlowiseAI/Flowise/releases",
      "redirectAfter": "https://github.com/FlowiseAI/Flowise/releases",
      "previousCanonicalUrl": "https://github.com/FlowiseAI/Flowise/releases",
      "currentCanonicalUrl": "https://github.com/FlowiseAI/Flowise/releases",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Releases · FlowiseAI/Flowise · GitHub Skip to content Navigation Menu Toggle navigation Sign in Appearance settings Platform AI CODE CREATION GitHub Copilot Write better code with AI GitHub Copilot app Direct agents from issue to merge MCP Registry New Integrate external tools DEVELOPER WORKFLOWS Actions Automate any workflow Codespaces Instant dev environme",
      "changedTextExcerptAfter": "Releases · FlowiseAI/Flowise · GitHub Skip to content Navigation Menu Toggle navigation Sign in Appearance settings Platform AI CODE CREATION GitHub Copilot Write better code with AI GitHub Copilot app Direct agents from issue to merge MCP Registry New Integrate external tools DEVELOPER WORKFLOWS Actions Automate any workflow Codespaces Instant dev environme",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "da580ec93487",
      "agent": "Gemini CLI",
      "org": "Google",
      "changeType": "pricing-changed",
      "previousHash": "205632c7fa99b3b2f48da907b599c1536e46fcb4fd2771be0814b9e647f16bac",
      "currentHash": "97ea34e2690863cb347eddea6e97c9df2196adef2805cacee36664978ae5a9eb",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://ai.google.dev/gemini-api/docs/pricing",
      "humanSummary": "Gemini CLI pricing hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": true,
      "normalizedChangeType": "metadata-change",
      "diffNoiseScore": 96,
      "diffConfidence": 92,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://ai.google.dev/gemini-api/docs/pricing",
      "redirectAfter": "https://ai.google.dev/gemini-api/docs/pricing?hl=sq",
      "previousCanonicalUrl": "https://ai.google.dev/gemini-api/docs/pricing",
      "currentCanonicalUrl": "https://ai.google.dev/gemini-api/docs/pricing",
      "canonicalUrlChanged": false,
      "localeOnlyChange": true,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Gemini Developer API pricing | Gemini API | Google AI for Developers / Deutsch Español – América Latina Français Indonesia Italiano Polski Português – Brasil Shqip Tiếng Việt Türkçe Русский עברית العربيّة فارسی हिंदी বাংলা ภาษาไทย 中文 – 简体 中文 – 繁體 日本語 한국어 Get API key Cookbook Community Sign in Docs Gemini API Docs Get API key Cookbook Community Get started ",
      "changedTextExcerptAfter": "Çmimet e API-t të Zhvilluesit Gemini | Gemini API | Google AI for Developers Kapërce te përmbajtja kryesore / Deutsch Español – América Latina Français Indonesia Italiano Polski Português – Brasil Shqip Tiếng Việt Türkçe Русский עברית العربيّة فارسی हिंदी বাংলা ภาษาไทย 中文 – 简体 中文 – 繁體 日本語 한국어 Merr çelësin API Libër gatimi Komuniteti Identifikohu Dokumentet",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Redirect only changed locale/canonical URL parameters, not normalized content.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "d456c6de33d6",
      "agent": "GitHub Copilot coding agent",
      "org": "GitHub",
      "changeType": "pricing-changed",
      "previousHash": "9efbc147c04ec22d687878bc260bcf4882f40eff0a54ebf7bfaabead114ce8db",
      "currentHash": "6ecc6896deb2d53277ddc51c5c25afb6fa245f0a96575f5e4fc62435a771cc5e",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://github.com/features/copilot/plans",
      "humanSummary": "GitHub Copilot coding agent pricing hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://github.com/features/copilot/plans",
      "redirectAfter": "https://github.com/features/copilot/plans",
      "previousCanonicalUrl": "https://github.com/features/copilot/plans",
      "currentCanonicalUrl": "https://github.com/features/copilot/plans",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "GitHub Copilot · Plans pricing · GitHub Skip to content Navigation Menu Toggle navigation Sign in Platform AI CODE CREATION GitHub Copilot Write better code with AI GitHub Copilot app Direct agents from issue to merge MCP Registry New Integrate external tools DEVELOPER WORKFLOWS Actions Automate any workflow Codespaces Instant dev environments Issues Plan an",
      "changedTextExcerptAfter": "GitHub Copilot · Plans pricing · GitHub Skip to content Navigation Menu Toggle navigation Sign in Platform AI CODE CREATION GitHub Copilot Write better code with AI GitHub Copilot app Direct agents from issue to merge MCP Registry New Integrate external tools DEVELOPER WORKFLOWS Actions Automate any workflow Codespaces Instant dev environments Issues Plan an",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "ffa9aca21034",
      "agent": "Google Vertex AI Agent Builder",
      "org": "Google",
      "changeType": "changelog-changed",
      "previousHash": "74864e93f17f7284fc80df1d32c081ea8533b746d8b91f5c006fe75984988a1b",
      "currentHash": "432116b12bf891482733c6dbfc40032a3c3fc143e65866e0cb8af89131d7dba6",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://cloud.google.com/release-notes",
      "humanSummary": "Google Vertex AI Agent Builder changelog hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 94,
      "diffConfidence": 88,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://docs.cloud.google.com/release-notes",
      "redirectAfter": "https://docs.cloud.google.com/release-notes",
      "previousCanonicalUrl": "https://docs.cloud.google.com/release-notes",
      "currentCanonicalUrl": "https://docs.cloud.google.com/release-notes",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Google Cloud release notes | Google Cloud Documentation 技术领域 close AI 和机器学习 应用开发 应用托管 计算 数据分析和流水线 数据库 分布式云、混合云和多云 行业解决方案 迁移 网络 可观测性和监控 安全 Storage 跨产品工具 close 访问权限和资源管理 费用和用量管理 基础设施即代码 SDK、语言、框架和工具 / Deutsch Español – América Latina Français Português – Brasil 中文 – 简体 日本語 한국어 Sign in Documentation 免费开始使用吧 技术领域 More 跨产品工具 More 文档首页 版本说明 近期产品更改 版本说明索引 Google Cl",
      "changedTextExcerptAfter": "Google Cloud release notes | Google Cloud Documentation Technology areas close AI and ML Application development Application hosting Compute Data analytics and pipelines Databases Distributed, hybrid, and multicloud Industry solutions Migration Networking Observability and monitoring Security Storage Cross-product tools close Access and management Costs and ",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Navigation or locale shell changed; release-note body did not change.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "ed5b07fa791c",
      "agent": "IBM watsonx Orchestrate",
      "org": "IBM",
      "changeType": "changelog-changed",
      "previousHash": "8813b2cc86860fe51511feffd2d58e815ccb6596aea67499726151241e56aa9a",
      "currentHash": "94f6eb8e6de768cfc4c83c02bb0e332b691fc4819a93ca2ffde05d9938757bb4",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://www.ibm.com/docs/en/watsonx/watson-orchestrate?topic=release-notes",
      "humanSummary": "IBM watsonx Orchestrate changelog hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 94,
      "diffConfidence": 88,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://www.ibm.com/docs/en/watsonx/watson-orchestrate/base",
      "redirectAfter": "https://www.ibm.com/docs/en/watsonx/watson-orchestrate/base",
      "previousCanonicalUrl": "https://www.ibm.com/docs/en/watsonx/watson-orchestrate/base",
      "currentCanonicalUrl": "https://www.ibm.com/docs/en/watsonx/watson-orchestrate/base",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "SSAVQO - Bot Index SSAVQO - Documentation Index Feedback Shape the future of Watson Orchestrate by sharing your ideas. Community Share and discover information in this forum for like-minded users. Support Access your existing support cases. Table of Contents Release notes What's new Previous releases Release notes for May 2026 Release notes for April 2026 Re",
      "changedTextExcerptAfter": "SSAVQO - Bot Index SSAVQO - Documentation Index Feedback Shape the future of Watson Orchestrate by sharing your ideas. Community Share and discover information in this forum for like-minded users. Support Access your existing support cases. Table of Contents Release notes What's new Previous releases Release notes for June 2026 Release notes for May 2026 Rel",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Navigation or locale shell changed; release-note body did not change.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "04ae1c37242e",
      "agent": "Linear Agents",
      "org": "Linear",
      "changeType": "changelog-changed",
      "previousHash": "0c79be27b1e27f9fd1644c00e67fdaff1dc2fd7e009841205cbb79d462c7e903",
      "currentHash": "99b28c62384fc1cd7eb82e27c774d77d697ee69c9c17cb270c02b2080f6ad300",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://linear.app/changelog",
      "humanSummary": "Linear Agents changelog hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://linear.app/changelog",
      "redirectAfter": "https://linear.app/changelog",
      "previousCanonicalUrl": "https://linear.app/changelog",
      "currentCanonicalUrl": "https://linear.app/changelog",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Skip to content → Product Customers Pricing Now Contact Docs Open app Sign up Now All Changelog Community News Craft AI Practices Press Search… July 2, 2026 Initiative properties Initiatives define your company’s high-level goals and organize the projects that contribute to them. To help you manage initiatives as your roadmap grows, we’ve added a new set of ",
      "changedTextExcerptAfter": "Skip to content → Product Customers Pricing Now Contact Docs Open app Sign up Now All Changelog Community News Craft AI Practices Press Search… July 2, 2026 Initiative properties Initiatives define your company’s high-level goals and organize the projects that contribute to them. To help you manage initiatives as your roadmap grows, we’ve added a new set of ",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "1ad9f4c3c0a2",
      "agent": "MCP Registry",
      "org": "Model Context Protocol",
      "changeType": "changelog-changed",
      "previousHash": "d806f35ce28b56ef8c8e6686a4c45ac4cb48b941f25dbc2b34adf97e84f32d43",
      "currentHash": "9a3353e4250be0d59a8acd92e72fe22a89c5a4967056a65bbe166d7bf916a164",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://github.com/modelcontextprotocol/registry/releases",
      "humanSummary": "MCP Registry changelog hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://github.com/modelcontextprotocol/registry/releases",
      "redirectAfter": "https://github.com/modelcontextprotocol/registry/releases",
      "previousCanonicalUrl": "https://github.com/modelcontextprotocol/registry/releases",
      "currentCanonicalUrl": "https://github.com/modelcontextprotocol/registry/releases",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Releases · modelcontextprotocol/registry · GitHub Skip to content Navigation Menu Toggle navigation Sign in Appearance settings Platform AI CODE CREATION GitHub Copilot Write better code with AI GitHub Copilot app Direct agents from issue to merge MCP Registry New Integrate external tools DEVELOPER WORKFLOWS Actions Automate any workflow Codespaces Instant d",
      "changedTextExcerptAfter": "Releases · modelcontextprotocol/registry · GitHub Skip to content Navigation Menu Toggle navigation Sign in Appearance settings Platform AI CODE CREATION GitHub Copilot Write better code with AI GitHub Copilot app Direct agents from issue to merge MCP Registry New Integrate external tools DEVELOPER WORKFLOWS Actions Automate any workflow Codespaces Instant d",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "840ddcb12095",
      "agent": "n8n AI Agent",
      "org": "n8n",
      "changeType": "docs-changed",
      "previousHash": "755be491d4e79fad858369fdfe4034993794e4746a7539072fb84e126356e2cf",
      "currentHash": "a309dd11b283061a055afa3a253471db0b423385a9240076564434e4862faaf6",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://docs.n8n.io/advanced-ai/",
      "humanSummary": "n8n AI Agent docs hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://docs.n8n.io/build/integrate-ai",
      "redirectAfter": "https://docs.n8n.io/build/integrate-ai",
      "previousCanonicalUrl": "https://docs.n8n.io/build/integrate-ai",
      "currentCanonicalUrl": "https://docs.n8n.io/build/integrate-ai",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Integrate AI | Build | n8n Docs n8n Docs ⌘ Ctrl k Forum Changelog More Get started Deploy Build Nodes Connect Administer Contribute n8n Docs Build Understand workflows Ways of building workflows Manage workflows Flow logic Work with data Code in n8n Integrate AI Understand AI components Test and improve AI workflows AI examples Keyboard shortcuts On this pag",
      "changedTextExcerptAfter": "Integrate AI | Build | n8n Docs n8n Docs ⌘ Ctrl k Forum Changelog More Get started Deploy Build Nodes Connect Administer Contribute n8n Docs Build Understand workflows Ways of building workflows Manage workflows Flow logic Work with data Code in n8n Integrate AI Understand AI components Test and improve AI workflows AI examples Keyboard shortcuts On this pag",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "4da6860251ea",
      "agent": "OpenAI Agents SDK",
      "org": "OpenAI",
      "changeType": "changelog-changed",
      "previousHash": "dc1498c8c0c8794f257888cf62fb328f1de7ad502726802e3a7879a12762cb84",
      "currentHash": "5494b3d53b6a57e3efe88c41bd032b3a7b84c0ab33b0120dac0a378464b811c3",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://github.com/openai/openai-agents-python/releases",
      "humanSummary": "OpenAI Agents SDK changelog hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://github.com/openai/openai-agents-python/releases",
      "redirectAfter": "https://github.com/openai/openai-agents-python/releases",
      "previousCanonicalUrl": "https://github.com/openai/openai-agents-python/releases",
      "currentCanonicalUrl": "https://github.com/openai/openai-agents-python/releases",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Releases · openai/openai-agents-python · GitHub Skip to content Navigation Menu Toggle navigation Sign in Appearance settings Platform AI CODE CREATION GitHub Copilot Write better code with AI GitHub Copilot app Direct agents from issue to merge MCP Registry New Integrate external tools DEVELOPER WORKFLOWS Actions Automate any workflow Codespaces Instant dev",
      "changedTextExcerptAfter": "Releases · openai/openai-agents-python · GitHub Skip to content Navigation Menu Toggle navigation Sign in Appearance settings Platform AI CODE CREATION GitHub Copilot Write better code with AI GitHub Copilot app Direct agents from issue to merge MCP Registry New Integrate external tools DEVELOPER WORKFLOWS Actions Automate any workflow Codespaces Instant dev",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "c805ad48bd06",
      "agent": "OpenAI Codex",
      "org": "OpenAI",
      "changeType": "docs-changed",
      "previousHash": "14819b27889b15f7881808310431229a5dbbec4353b0fe87493edc73fcbccaf1",
      "currentHash": "be90bbd52a9e01224f8bc542c758bdc4c25257d3b3b2b66cba44efba23149d2b",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://platform.openai.com/docs/codex",
      "humanSummary": "OpenAI Codex docs hash changed since the previous SignalSpore run.",
      "materialityCandidate": true,
      "whyItMightMatter": "Docs changes may alter setup, controls, integration behavior, or availability assumptions.",
      "suggestedTeamAction": "Review the normalized diff source before promoting this candidate to a verified material change.",
      "rawHashChanged": true,
      "normalizedHashChanged": true,
      "normalizedChangeType": "meaningful-text-change",
      "diffNoiseScore": 30,
      "diffConfidence": 72,
      "reviewCandidate": true,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://learn.chatgpt.com/docs/cloud",
      "redirectAfter": "https://learn.chatgpt.com/docs/cloud",
      "previousCanonicalUrl": "https://learn.chatgpt.com/docs/cloud",
      "currentCanonicalUrl": "https://learn.chatgpt.com/docs/cloud",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Codex cloud | ChatGPT Learn ChatGPT Home API Docs Guides and concepts for the OpenAI API Endpoints, parameters, and responses Codex Docs Guides, concepts, and product docs for Codex Use cases Example workflows and tasks teams can take on with ChatGPT or Codex Docs Use cases ChatGPT Apps SDK Build apps to extend ChatGPT Workspace Agents Trigger published Chat",
      "changedTextExcerptAfter": "Codex cloud | ChatGPT Learn ChatGPT Home API Codex Docs Guides, concepts, and product docs for Codex Use cases Example workflows and tasks teams can take on with ChatGPT or Codex Docs Use cases ChatGPT Apps SDK Build apps to extend ChatGPT Workspace Agents Trigger published ChatGPT workspace agents Commerce Build commerce flows in ChatGPT Ads Publish and mea",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "Normalized visible/main text changed and needs human review.",
      "noiseReason": "",
      "evidenceRegion": "docs-body",
      "bodyLevelEvidence": true
    },
    {
      "changeId": "c92e55934a31",
      "agent": "OpenCode",
      "org": "SST",
      "changeType": "source-changed",
      "previousHash": "1834c4bace8b7a09c12ce64dafd596ac59077ed56b20bfdb30648d465ac8044b",
      "currentHash": "fe0a600d0257f3adfade7b17f04ec9ff5cf06a6f944b821298ee19dfd48f994e",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://opencode.ai/",
      "humanSummary": "OpenCode source hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://opencode.ai/",
      "redirectAfter": "https://opencode.ai/",
      "previousCanonicalUrl": "https://opencode.ai/",
      "currentCanonicalUrl": "https://opencode.ai/",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "OpenCode | The open source AI coding agent GitHub Docs Data Zen Go Enterprise Download Open menu New Introducing tabs for desktop. Available on macOS, Windows, and Linux . Download now Download the desktop beta now The open source AI coding agent Free models included or connect any model from any provider, including Claude, GPT, Gemini and more. curl npm bun",
      "changedTextExcerptAfter": "OpenCode | The open source AI coding agent GitHub Docs Data Zen Go Enterprise Download Open menu New Introducing tabs for desktop. Available on macOS, Windows, and Linux . Download now Download the desktop beta now The open source AI coding agent Free models included or connect any model from any provider, including Claude, GPT, Gemini and more. curl npm bun",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "f71bde5832d9",
      "agent": "OpenCode",
      "org": "SST",
      "changeType": "changelog-changed",
      "previousHash": "3901358225bfb79d89d11dc97b0c5d9f9225d78b74a1cfe25fea4ba4aa5f4df5",
      "currentHash": "7ff926b7d7bc9197d1fab22da07a6015646fb0be6eb18c04bbb1ad2d61b98f8e",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://github.com/sst/opencode/releases",
      "humanSummary": "OpenCode changelog hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://github.com/anomalyco/opencode/releases",
      "redirectAfter": "https://github.com/anomalyco/opencode/releases",
      "previousCanonicalUrl": "https://github.com/anomalyco/opencode/releases",
      "currentCanonicalUrl": "https://github.com/anomalyco/opencode/releases",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Releases · anomalyco/opencode · GitHub Skip to content Navigation Menu Toggle navigation Sign in Appearance settings Platform AI CODE CREATION GitHub Copilot Write better code with AI GitHub Copilot app Direct agents from issue to merge MCP Registry New Integrate external tools DEVELOPER WORKFLOWS Actions Automate any workflow Codespaces Instant dev environm",
      "changedTextExcerptAfter": "Releases · anomalyco/opencode · GitHub Skip to content Navigation Menu Toggle navigation Sign in Appearance settings Platform AI CODE CREATION GitHub Copilot Write better code with AI GitHub Copilot app Direct agents from issue to merge MCP Registry New Integrate external tools DEVELOPER WORKFLOWS Actions Automate any workflow Codespaces Instant dev environm",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "626af31c9386",
      "agent": "Qodo Merge",
      "org": "Qodo",
      "changeType": "changelog-changed",
      "previousHash": "d60b9592c154efe28f63a45b6ee229fe4f8c4cdeb1e6ebdad1b9916bac2ee3a7",
      "currentHash": "d68f01a5c2d3c448bdb9ca3f978d29278b294c3d29901642ef6208868fe765a0",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://github.com/qodo-ai/pr-agent/releases",
      "humanSummary": "Qodo Merge changelog hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://github.com/The-PR-Agent/pr-agent/releases",
      "redirectAfter": "https://github.com/The-PR-Agent/pr-agent/releases",
      "previousCanonicalUrl": "https://github.com/The-PR-Agent/pr-agent/releases",
      "currentCanonicalUrl": "https://github.com/The-PR-Agent/pr-agent/releases",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Releases · The-PR-Agent/pr-agent · GitHub Skip to content Navigation Menu Toggle navigation Sign in Appearance settings Platform AI CODE CREATION GitHub Copilot Write better code with AI GitHub Copilot app Direct agents from issue to merge MCP Registry New Integrate external tools DEVELOPER WORKFLOWS Actions Automate any workflow Codespaces Instant dev envir",
      "changedTextExcerptAfter": "Releases · The-PR-Agent/pr-agent · GitHub Skip to content Navigation Menu Toggle navigation Sign in Appearance settings Platform AI CODE CREATION GitHub Copilot Write better code with AI GitHub Copilot app Direct agents from issue to merge MCP Registry New Integrate external tools DEVELOPER WORKFLOWS Actions Automate any workflow Codespaces Instant dev envir",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "804657962dcd",
      "agent": "Replit Agent",
      "org": "Replit",
      "changeType": "source-changed",
      "previousHash": "fa9275131ac32c6ae4f66537710dfd27ab07095722a26d1f2f4731e399a1d145",
      "currentHash": "68dc80bba576d21e3c6540fc9e285f88e2653368a8cb5e511a045562c232bfd8",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://docs.replit.com/replitai/agent",
      "humanSummary": "Replit Agent source hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://docs.replit.com/features/agent/overview",
      "redirectAfter": "https://docs.replit.com/features/agent/overview",
      "previousCanonicalUrl": "https://docs.replit.com/features/agent/overview",
      "currentCanonicalUrl": "https://docs.replit.com/features/agent/overview",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Replit Docs Documentation Index Fetch the complete documentation index at: /llms.txt Use this file to discover all available pages before exploring further. Replit home page Search... ⌘ K Ask Assistant Start Building Start Building Search... Navigation Agent Replit Agent Build Learn Features Trust Billing Enterprise Changelog Help Projects artifacts Projects",
      "changedTextExcerptAfter": "Replit Docs Documentation Index Fetch the complete documentation index at: /llms.txt Use this file to discover all available pages before exploring further. Replit home page Search... ⌘ K Ask Assistant Start Building Start Building Search... Navigation Agent Replit Agent Build Learn Features Trust Billing Enterprise Changelog Help Projects artifacts Projects",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "0072abec5f20",
      "agent": "Replit Agent",
      "org": "Replit",
      "changeType": "docs-changed",
      "previousHash": "fa9275131ac32c6ae4f66537710dfd27ab07095722a26d1f2f4731e399a1d145",
      "currentHash": "68dc80bba576d21e3c6540fc9e285f88e2653368a8cb5e511a045562c232bfd8",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://docs.replit.com/replitai/agent",
      "humanSummary": "Replit Agent docs hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://docs.replit.com/features/agent/overview",
      "redirectAfter": "https://docs.replit.com/features/agent/overview",
      "previousCanonicalUrl": "https://docs.replit.com/features/agent/overview",
      "currentCanonicalUrl": "https://docs.replit.com/features/agent/overview",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Replit Docs Documentation Index Fetch the complete documentation index at: /llms.txt Use this file to discover all available pages before exploring further. Replit home page Search... ⌘ K Ask Assistant Start Building Start Building Search... Navigation Agent Replit Agent Build Learn Features Trust Billing Enterprise Changelog Help Projects artifacts Projects",
      "changedTextExcerptAfter": "Replit Docs Documentation Index Fetch the complete documentation index at: /llms.txt Use this file to discover all available pages before exploring further. Replit home page Search... ⌘ K Ask Assistant Start Building Start Building Search... Navigation Agent Replit Agent Build Learn Features Trust Billing Enterprise Changelog Help Projects artifacts Projects",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "74b29305d056",
      "agent": "Salesforce Agentforce",
      "org": "Salesforce",
      "changeType": "source-changed",
      "previousHash": "94de92aa8a9b02c0fcc68aaff25a848c54d7d884afd676b3a71cb3a1936260fd",
      "currentHash": "7aea75d1d34a34e8d523790978836460d10b0b3ce6943113f81f848d9d742a6b",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://www.salesforce.com/agentforce/",
      "humanSummary": "Salesforce Agentforce source hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://www.salesforce.com/agentforce/?bc=DB",
      "redirectAfter": "https://www.salesforce.com/agentforce/?bc=DB",
      "previousCanonicalUrl": "https://www.salesforce.com/agentforce?bc=DB",
      "currentCanonicalUrl": "https://www.salesforce.com/agentforce?bc=DB",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Agentforce: The AI Agent Platform | Salesforce Skip to content Products Back Products All Products Agentforce Back Agentforce Humans with Agents drive customer success together. Explore Agentforce How Agentforce works Why Agentforce? Agentforce Builder Agentforce Voice Agentforce Dev Tools AgentExchange Agentforce Operations Customer Stories Use Cases Agentf",
      "changedTextExcerptAfter": "Agentforce: The AI Agent Platform | Salesforce Skip to content Products Back Products All Products Agentforce Back Agentforce Humans with Agents drive customer success together. Explore Agentforce How Agentforce works Why Agentforce? Agentforce Builder Agentforce Voice Agentforce Dev Tools AgentExchange Agentforce Operations Customer Stories Use Cases Agentf",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "cbcf1ca3876f",
      "agent": "Slack Agentforce",
      "org": "Salesforce",
      "changeType": "changelog-changed",
      "previousHash": "c6e9d32ddd735431f8089981a9227d09cb7af86ab35597ef5f141a190b4d9816",
      "currentHash": "ebd851d00d3cd47db89956ce868c346c17b575631e4038778c3d54a797e93b3a",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://slack.com/intl/en-gb/release-notes",
      "humanSummary": "Slack Agentforce changelog hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 94,
      "diffConfidence": 88,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://slack.com/intl/en-gb/release-notes/mac?geocode=en-gb",
      "redirectAfter": "https://slack.com/intl/en-gb/release-notes/mac?geocode=en-gb",
      "previousCanonicalUrl": "https://slack.com/intl/en-gb/release-notes/mac?geocode=en-gb",
      "currentCanonicalUrl": "https://slack.com/intl/en-gb/release-notes/mac?geocode=en-gb",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Slack for Mac - Release Notes | Slack Features COLLABORATION Channels Organise teams and work Slack Connect Work with external partners Messaging Chat with your team Huddles Meet using audio and video Clips Record and share updates CRM Salesforce in Slack Bring Salesforce into the flow of work PROJECT MANAGEMENT Templates Start any task, fast Canvas Create r",
      "changedTextExcerptAfter": "Slack for Mac - Release Notes | Slack See what’s new in Slack App Marketplace Download Slack Sign in Features COLLABORATION Channels Organise teams and work Slack Connect Work with external partners Messaging Chat with your team Huddles Meet using audio and video Clips Record and share updates CRM Salesforce in Slack Bring Salesforce into the flow of work PR",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Navigation or locale shell changed; release-note body did not change.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "14fd3aed8b30",
      "agent": "Tabnine AI agents",
      "org": "Tabnine",
      "changeType": "docs-changed",
      "previousHash": "d5634b6de9a36d3ae474ef3faec6a7ceefa5fcf945d4d967f9b22fe00a001c7d",
      "currentHash": "1cc68cd6ac56a2f8e0144999cf474cb075f287f69308ca1ebea3e4b4c30ad3a9",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://docs.tabnine.com/",
      "humanSummary": "Tabnine AI agents docs hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://docs.tabnine.com/main",
      "redirectAfter": "https://docs.tabnine.com/main",
      "previousCanonicalUrl": "https://docs.tabnine.com/main",
      "currentCanonicalUrl": "https://docs.tabnine.com/main",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Overview | Tabnine Docs ⌘ Ctrl k Tabnine website Contact Sales More Welcome Overview Architecture Security Privacy Protection Personalization AI Models Integrations System Hardware Requirements Supported Languages Supported IDEs Tabnine Subscription Plans Support Feedback Getting started Install Quickstart Guide Context Engine Tabnine Agent Tabnine Chat Tabn",
      "changedTextExcerptAfter": "Overview | Tabnine Docs ⌘ Ctrl k Tabnine website Contact Sales More Welcome Overview Architecture Security Privacy Protection Personalization AI Models Integrations System Hardware Requirements Supported Languages Supported IDEs Tabnine Subscription Plans Support Feedback Getting started Install Quickstart Guide Context Engine Tabnine Agent Tabnine Chat Tabn",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    },
    {
      "changeId": "4f1ace32ed9c",
      "agent": "Windsurf Cascade",
      "org": "Windsurf",
      "changeType": "docs-changed",
      "previousHash": "c0c24e39cf89069303de7120270faac259f4288f55e3f58634a066467f8ff177",
      "currentHash": "8ec6a34dac2b1e97d7e8b0843eed61ee42664913437ea1c05703cb5c460a0385",
      "detectedAt": "2026-07-15T05:34:48.576Z",
      "evidenceUrl": "https://docs.windsurf.com/windsurf/cascade",
      "humanSummary": "Windsurf Cascade docs hash changed since the previous SignalSpore run.",
      "materialityCandidate": false,
      "whyItMightMatter": "Raw observation only: normalization did not produce enough evidence for review.",
      "suggestedTeamAction": "Do not review unless repeated runs show normalized text, status, redirect, or repo-metadata movement.",
      "rawHashChanged": true,
      "normalizedHashChanged": false,
      "normalizedChangeType": "boilerplate-change",
      "diffNoiseScore": 86,
      "diffConfidence": 76,
      "reviewCandidate": false,
      "verifiedMaterialChange": false,
      "statusCodeBefore": 200,
      "statusCodeAfter": 200,
      "redirectBefore": "https://docs.devin.ai/desktop/cascade/cascade",
      "redirectAfter": "https://docs.devin.ai/desktop/cascade/cascade",
      "previousCanonicalUrl": "https://docs.devin.ai/desktop/cascade/cascade",
      "currentCanonicalUrl": "https://docs.devin.ai/desktop/cascade/cascade",
      "canonicalUrlChanged": false,
      "localeOnlyChange": false,
      "trackingOnlyChange": false,
      "finalPathChanged": false,
      "finalHostChanged": false,
      "changedTextExcerptBefore": "Devin Desktop - Cascade Documentation Index Fetch the complete documentation index at: /llms.txt Use this file to discover all available pages before exploring further. Devin Docs home page Search... ⌘ K Ask Assistant Support Devin Devin Search... Navigation Cascade Cascade Overview Cloud CLI Desktop Enterprise Use Cases API Federal Devin Desktop Editor Devi",
      "changedTextExcerptAfter": "Devin Desktop - Cascade Documentation Index Fetch the complete documentation index at: /llms.txt Use this file to discover all available pages before exploring further. Devin Docs home page Search... ⌘ K Ask Assistant Support Devin Devin Search... Navigation Cascade Cascade Overview Cloud CLI Desktop Enterprise Use Cases API Federal Devin Desktop Editor Devi",
      "repoMetadataBefore": "",
      "repoMetadataAfter": "",
      "materialityCandidateReason": "",
      "noiseReason": "Normalized candidate moved, but excerpts indicate repeated title/hydration/navigation boilerplate rather than meaningful main-text movement.",
      "evidenceRegion": "locale-shell",
      "bodyLevelEvidence": false
    }
  ]
}