{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Togo changelog",
  "home_page_url": "https://www.togohq.ai/changelog",
  "feed_url": "https://www.togohq.ai/changelog/feed.json",
  "language": "en",
  "items": [
    {
      "id": "https://www.togohq.ai/changelog/v0.2.28",
      "url": "https://www.togohq.ai/changelog/v0.2.28",
      "title": "Togo v0.2.28 — Improved installation process and feedback options for Togo setup",
      "content_text": "New:\n- Claude Code now allows installation of the Togo plugin directly from the AI agent card and the install screen.\n\nImproved:\n- The install screen now correctly names the project it is setting up, preventing the creation of empty projects elsewhere in the organization.\n- The install screen now instructs users to sign in through `/mcp` first, ensuring access to Togo tools during installation.\n- The `give_feedback` tool now includes options for `install_report` and `feature_request`, allowing users to provide detailed feedback on installation issues and feature wishes.",
      "date_published": "2026-11-06T06:32:29.250Z",
      "tags": [
        "app",
        "mcp"
      ],
      "_togo": {
        "kind": "product",
        "version": "0.2.28",
        "breaking": false,
        "changes": [
          {
            "kind": "improved",
            "text": "The install screen now correctly names the project it is setting up, preventing the creation of empty projects elsewhere in the organization."
          },
          {
            "kind": "improved",
            "text": "The install screen now instructs users to sign in through `/mcp` first, ensuring access to Togo tools during installation."
          },
          {
            "kind": "new",
            "text": "Claude Code now allows installation of the Togo plugin directly from the AI agent card and the install screen."
          },
          {
            "kind": "improved",
            "text": "The `give_feedback` tool now includes options for `install_report` and `feature_request`, allowing users to provide detailed feedback on installation issues and feature wishes."
          }
        ]
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/sdk-node/1.3.1",
      "url": "https://www.togohq.ai/changelog/sdk-node/1.3.1",
      "title": "@togohq/sdk-node 1.3.1 — Version 1.3.1 corrects the 1.3.0 changelog",
      "content_text": "Fixed:\n- The 1.3.0 entry in this changelog now describes the Node SDK's changes: `withFlush()`, `flushIntervalSeconds` replacing `flushIntervalMs`, the `batchSize` range and the `flush()` retry. It had listed browser-only session changes.",
      "date_published": "2026-11-05T20:46:28.364Z",
      "tags": [
        "sdk-node"
      ],
      "_togo": {
        "kind": "package",
        "package": "@togohq/sdk-node",
        "version": "1.3.1",
        "breaking": false,
        "changes": [
          {
            "kind": "fixed",
            "text": "The 1.3.0 entry in this changelog now describes the Node SDK's changes: `withFlush()`, `flushIntervalSeconds` replacing `flushIntervalMs`, the `batchSize` range and the `flush()` retry. It had listed browser-only session changes."
          }
        ]
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/sdk-node/1.3.0",
      "url": "https://www.togohq.ai/changelog/sdk-node/1.3.0",
      "title": "@togohq/sdk-node 1.3.0 — Version 1.3.0 adds withFlush() for serverless handlers and takes the flush interval in seconds",
      "content_text": "Breaking:\n- `flushIntervalSeconds` (10 to 60, default 10) replaces `flushIntervalMs`. A `flushIntervalMs` passed to `init()` is ignored, with a warning naming the replacement.\n\nNew:\n- `withFlush(handler)` wraps a serverless handler so the queue is sent after it returns or throws, with its result passed through unchanged.\n\nImproved:\n- `batchSize` accepts 100 to 500. A value outside that range is moved into it, with a warning.\n- `flush()` retries a network failure or a server error within a 2-second budget before it resolves, and never retries a `429`.\n\nMigration: Replace `flushIntervalMs` with `flushIntervalSeconds`, and wrap serverless handlers in `withFlush()`.",
      "date_published": "2026-11-05T18:38:05.416Z",
      "tags": [
        "sdk-node"
      ],
      "_togo": {
        "kind": "package",
        "package": "@togohq/sdk-node",
        "version": "1.3.0",
        "breaking": true,
        "changes": [
          {
            "kind": "breaking",
            "text": "`flushIntervalSeconds` (10 to 60, default 10) replaces `flushIntervalMs`. A `flushIntervalMs` passed to `init()` is ignored, with a warning naming the replacement."
          },
          {
            "kind": "new",
            "text": "`withFlush(handler)` wraps a serverless handler so the queue is sent after it returns or throws, with its result passed through unchanged."
          },
          {
            "kind": "improved",
            "text": "`batchSize` accepts 100 to 500. A value outside that range is moved into it, with a warning."
          },
          {
            "kind": "improved",
            "text": "`flush()` retries a network failure or a server error within a 2-second budget before it resolves, and never retries a `429`."
          }
        ],
        "migration": {
          "summary": "Replace `flushIntervalMs` with `flushIntervalSeconds`, and wrap serverless handlers in `withFlush()`.",
          "language": "ts",
          "before": "const analytics = init({ writeKey, flushIntervalMs: 10_000 });",
          "after": "const analytics = init({ writeKey, flushIntervalSeconds: 10 });\nexport const handler = analytics.withFlush(async (event) => {\n  analytics.track('order_paid', {}, { userId: event.userId });\n});",
          "removedIn": "1.3.0"
        }
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/sdk-browser/1.3.0",
      "url": "https://www.togohq.ai/changelog/sdk-browser/1.3.0",
      "title": "@togohq/sdk-browser 1.3.0 — Version 1.3.0 introduces session timeout in seconds and fixes session timeout handling",
      "content_text": "Breaking:\n- BREAKING: `DEFAULT_SESSION_TIMEOUT_MS` is now `DEFAULT_SESSION_TIMEOUT_SECONDS`, and `SESSION_HARD_CAP_MS` is no longer exported.\n- BREAKING: `batchSize` and `flushIntervalMs` options are removed; batching is fixed at 50 events or 5 seconds.\n\nDeprecated:\n- `sessionTimeoutMs` is deprecated in favor of `sessionTimeoutSeconds` and will be removed in a future version.\n\nNew:\n- `sessionTimeoutSeconds` is now available to set session idle timeout in seconds, defaulting to 1800.\n\nFixed:\n- A null or NaN session timeout now defaults correctly, preventing sessions from being turned off unintentionally.\n\nMigration: Update session timeout and batching configurations to use new constants and options.",
      "date_published": "2026-11-05T18:27:38.029Z",
      "tags": [
        "sdk-browser"
      ],
      "_togo": {
        "kind": "package",
        "package": "@togohq/sdk-browser",
        "version": "1.3.0",
        "breaking": true,
        "changes": [
          {
            "kind": "new",
            "text": "`sessionTimeoutSeconds` is now available to set session idle timeout in seconds, defaulting to 1800."
          },
          {
            "kind": "deprecated",
            "text": "`sessionTimeoutMs` is deprecated in favor of `sessionTimeoutSeconds` and will be removed in a future version."
          },
          {
            "kind": "breaking",
            "text": "BREAKING: `DEFAULT_SESSION_TIMEOUT_MS` is now `DEFAULT_SESSION_TIMEOUT_SECONDS`, and `SESSION_HARD_CAP_MS` is no longer exported."
          },
          {
            "kind": "breaking",
            "text": "BREAKING: `batchSize` and `flushIntervalMs` options are removed; batching is fixed at 50 events or 5 seconds."
          },
          {
            "kind": "fixed",
            "text": "A null or NaN session timeout now defaults correctly, preventing sessions from being turned off unintentionally."
          }
        ],
        "migration": {
          "summary": "Update session timeout and batching configurations to use new constants and options.",
          "language": "ts",
          "before": "(DEFAULT_SESSION_TIMEOUT_MS, sessionTimeoutMs, batchSize, flushIntervalMs);",
          "after": "(DEFAULT_SESSION_TIMEOUT_SECONDS, sessionTimeoutSeconds);",
          "removedIn": "1.3.0"
        }
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/sdk-node/1.2.0",
      "url": "https://www.togohq.ai/changelog/sdk-node/1.2.0",
      "title": "@togohq/sdk-node 1.2.0 — This version introduces event ID returns and updates terminology for event definitions",
      "content_text": "Breaking:\n- Terminology updated: \"declare\" and \"contract\" are now \"define\" and \"definition\" across the SDK, aligning with internal naming conventions.\n\nNew:\n- `track()`, `identify()`, and `setPersonProperties()` now return the `eventId` of the event they queued, or `undefined` when no event is sent.\n\nMigration: Update code to use the new terminology for event definitions.",
      "date_published": "2026-11-04T06:32:44.072Z",
      "tags": [
        "sdk-node"
      ],
      "_togo": {
        "kind": "package",
        "package": "@togohq/sdk-node",
        "version": "1.2.0",
        "breaking": true,
        "changes": [
          {
            "kind": "new",
            "text": "`track()`, `identify()`, and `setPersonProperties()` now return the `eventId` of the event they queued, or `undefined` when no event is sent."
          },
          {
            "kind": "breaking",
            "text": "Terminology updated: \"declare\" and \"contract\" are now \"define\" and \"definition\" across the SDK, aligning with internal naming conventions."
          }
        ],
        "migration": {
          "summary": "Update code to use the new terminology for event definitions.",
          "language": "js",
          "before": "declareEvent(); // uses 'declare' terminology",
          "after": "defineEvent(); // uses 'define' terminology",
          "removedIn": "1.2.0"
        }
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/sdk-browser/1.2.0",
      "url": "https://www.togohq.ai/changelog/sdk-browser/1.2.0",
      "title": "@togohq/sdk-browser 1.2.0 — Version 1.2.0 introduces event ID returns and updates email handling rules",
      "content_text": "Breaking:\n- The governance wire's `declared` and `contractSha256` are now `defined` and `definitionSha256`; `DeclaredEvent` is now `DefinedEvent`.\n\nNew:\n- `track()`, `identify()`, `setPersonProperties()` now return the `eventId` of the event they queued, or `undefined` when no event is sent.\n\nImproved:\n- Session IDs are no longer rejected for resembling emails; diagnostics attach to TEST events only.\n\nFixed:\n- The scenario driver's Intl stub now survives a fake clock by using a regular function instead of an arrow function.\n\nMigration: Update governance wire and event types to use 'defined' instead of 'declared'.",
      "date_published": "2026-11-04T06:11:31.111Z",
      "tags": [
        "sdk-browser"
      ],
      "_togo": {
        "kind": "package",
        "package": "@togohq/sdk-browser",
        "version": "1.2.0",
        "breaking": true,
        "changes": [
          {
            "kind": "new",
            "text": "`track()`, `identify()`, `setPersonProperties()` now return the `eventId` of the event they queued, or `undefined` when no event is sent."
          },
          {
            "kind": "improved",
            "text": "Session IDs are no longer rejected for resembling emails; diagnostics attach to TEST events only."
          },
          {
            "kind": "breaking",
            "text": "The governance wire's `declared` and `contractSha256` are now `defined` and `definitionSha256`; `DeclaredEvent` is now `DefinedEvent`."
          },
          {
            "kind": "fixed",
            "text": "The scenario driver's Intl stub now survives a fake clock by using a regular function instead of an arrow function."
          }
        ],
        "migration": {
          "summary": "Update governance wire and event types to use 'defined' instead of 'declared'.",
          "language": "ts",
          "before": "(DeclaredEvent, declared, contractSha256);",
          "after": "(DefinedEvent, defined, definitionSha256);",
          "removedIn": "1.2.0"
        }
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/v0.2.19",
      "url": "https://www.togohq.ai/changelog/v0.2.19",
      "title": "Togo v0.2.19 — Enhancements and fixes in profile key management and feedback reporting",
      "content_text": "New:\n- The `list_person_properties` tool now returns dropped profile keys with their diagnostic codes, helping agents identify and fix issues more efficiently.\n- The `give_feedback` tool allows agents to report issues directly to the support inbox, with a limit of 20 reports per member per hour.\n\nImproved:\n- Profile key drops are now named and recorded, making missing definitions visible in production.\n\nFixed:\n- Clearing an undefined profile key is no longer incorrectly recorded as a drop.\n- The `list_person_properties` tool now accurately indicates when the drop list is incomplete, preventing silent errors.",
      "date_published": "2026-11-04T04:39:44.594Z",
      "tags": [
        "api",
        "mcp"
      ],
      "_togo": {
        "kind": "product",
        "version": "0.2.19",
        "breaking": false,
        "changes": [
          {
            "kind": "new",
            "text": "The `list_person_properties` tool now returns dropped profile keys with their diagnostic codes, helping agents identify and fix issues more efficiently."
          },
          {
            "kind": "new",
            "text": "The `give_feedback` tool allows agents to report issues directly to the support inbox, with a limit of 20 reports per member per hour."
          },
          {
            "kind": "improved",
            "text": "Profile key drops are now named and recorded, making missing definitions visible in production."
          },
          {
            "kind": "fixed",
            "text": "Clearing an undefined profile key is no longer incorrectly recorded as a drop."
          },
          {
            "kind": "fixed",
            "text": "The `list_person_properties` tool now accurately indicates when the drop list is incomplete, preventing silent errors."
          }
        ]
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/v0.2.17",
      "url": "https://www.togohq.ai/changelog/v0.2.17",
      "title": "Togo v0.2.17 — Minimum plugin version updated to 1.1.0 for MCP",
      "content_text": "New:\n- A notice is now displayed for plugins below version 1.1.0 when using the MCP surface. This informs users that they need to update their plugin to the latest version to ensure compatibility.",
      "date_published": "2026-11-03T20:02:47.066Z",
      "tags": [
        "mcp"
      ],
      "_togo": {
        "kind": "product",
        "version": "0.2.17",
        "breaking": false,
        "changes": [
          {
            "kind": "new",
            "text": "A notice is now displayed for plugins below version 1.1.0 when using the MCP surface. This informs users that they need to update their plugin to the latest version to ensure compatibility."
          }
        ]
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/v0.2.14",
      "url": "https://www.togohq.ai/changelog/v0.2.14",
      "title": "Togo v0.2.14 — Changes to event definition terminology and email enforcement",
      "content_text": "Breaking:\n- The governance wire's `declared` and `contractSha256` are now `defined` and `definitionSha256`. This affects how controls are read by the CLI and SDKs.\n\nImproved:\n- Session IDs that resemble emails are no longer rejected at the edge. Instead, they are flagged in test events for diagnostics.\n\nMigration: Update code to use 'defined' instead of 'declared' and 'definitionSha256' instead of 'contractSha256'.",
      "date_published": "2026-11-03T19:37:07.593Z",
      "tags": [
        "ingest"
      ],
      "_togo": {
        "kind": "product",
        "version": "0.2.14",
        "breaking": true,
        "changes": [
          {
            "kind": "breaking",
            "text": "The governance wire's `declared` and `contractSha256` are now `defined` and `definitionSha256`. This affects how controls are read by the CLI and SDKs."
          },
          {
            "kind": "improved",
            "text": "Session IDs that resemble emails are no longer rejected at the edge. Instead, they are flagged in test events for diagnostics."
          }
        ],
        "migration": {
          "summary": "Update code to use 'defined' instead of 'declared' and 'definitionSha256' instead of 'contractSha256'.",
          "language": "ts",
          "before": "declared, contractSha256",
          "after": "defined, definitionSha256",
          "removedIn": "0.2.14"
        }
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/v0.2.13",
      "url": "https://www.togohq.ai/changelog/v0.2.13",
      "title": "Togo v0.2.13 — Event governance terminology updated and PII filter enhancements",
      "content_text": "Breaking:\n- The governance wire's `declared` and `contractSha256` are now `defined` and `definitionSha256`. The `@togohq/sdk-browser`'s `DeclaredEvent` type is now `DefinedEvent`. This change affects the governance wire and SDKs.\n\nNew:\n- The PII filter switch has been added to the Event governance card in the dashboard, allowing projects to opt-in to email-shaped property filtering.\n\nImproved:\n- The dashboard now consistently uses the term \"event definition\" instead of \"declaration\" or \"contract\".\n\nFixed:\n- An error message is now displayed when an Event governance switch fails to save, providing better feedback to users.\n\nMigration: Update governance wire and SDKs to use new terminology.",
      "date_published": "2026-11-03T19:31:28.827Z",
      "tags": [
        "app",
        "api",
        "mcp"
      ],
      "_togo": {
        "kind": "product",
        "version": "0.2.13",
        "breaking": true,
        "changes": [
          {
            "kind": "breaking",
            "text": "The governance wire's `declared` and `contractSha256` are now `defined` and `definitionSha256`. The `@togohq/sdk-browser`'s `DeclaredEvent` type is now `DefinedEvent`. This change affects the governance wire and SDKs."
          },
          {
            "kind": "new",
            "text": "The PII filter switch has been added to the Event governance card in the dashboard, allowing projects to opt-in to email-shaped property filtering."
          },
          {
            "kind": "improved",
            "text": "The dashboard now consistently uses the term \"event definition\" instead of \"declaration\" or \"contract\"."
          },
          {
            "kind": "fixed",
            "text": "An error message is now displayed when an Event governance switch fails to save, providing better feedback to users."
          }
        ],
        "migration": {
          "summary": "Update governance wire and SDKs to use new terminology.",
          "language": "ts",
          "before": "declared, contractSha256, DeclaredEvent",
          "after": "defined, definitionSha256, DefinedEvent",
          "removedIn": "0.2.13"
        }
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/v0.2.10",
      "url": "https://www.togohq.ai/changelog/v0.2.10",
      "title": "Togo v0.2.10 — Enhancements and fixes for MCP setup and agent connection",
      "content_text": "New:\n- Introduced a setup prompt in MCP for members to start setup manually, ensuring it remains up-to-date without holding tenant data.\n- Added new tools for agents setting up Togo, including project creation, key creation per system, and access to Live View.\n\nImproved:\n- The `create_project` function now matches project names exactly, aligning with the database's case-sensitive checks.\n\nFixed:\n- Resolved an issue where a signup initiated from an agent's sign-in would not return to the correct approval page after verification.",
      "date_published": "2026-10-30T06:14:19.534Z",
      "tags": [
        "app",
        "mcp"
      ],
      "_togo": {
        "kind": "product",
        "version": "0.2.10",
        "breaking": false,
        "changes": [
          {
            "kind": "new",
            "text": "Introduced a setup prompt in MCP for members to start setup manually, ensuring it remains up-to-date without holding tenant data."
          },
          {
            "kind": "new",
            "text": "Added new tools for agents setting up Togo, including project creation, key creation per system, and access to Live View."
          },
          {
            "kind": "improved",
            "text": "The `create_project` function now matches project names exactly, aligning with the database's case-sensitive checks."
          },
          {
            "kind": "fixed",
            "text": "Resolved an issue where a signup initiated from an agent's sign-in would not return to the correct approval page after verification."
          }
        ]
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/sdk-browser/1.1.1",
      "url": "https://www.togohq.ai/changelog/sdk-browser/1.1.1",
      "title": "@togohq/sdk-browser 1.1.1 — Version 1.1.1 fixes email redaction to use a consistent placeholder",
      "content_text": "Fixed:\n- Email redaction now uses `REDACTED_EMAIL` as the placeholder for email addresses in page fields, ensuring consistency.",
      "date_published": "2026-10-29T20:57:37.336Z",
      "tags": [
        "sdk-browser"
      ],
      "_togo": {
        "kind": "package",
        "package": "@togohq/sdk-browser",
        "version": "1.1.1",
        "breaking": false,
        "changes": [
          {
            "kind": "fixed",
            "text": "Email redaction now uses `REDACTED_EMAIL` as the placeholder for email addresses in page fields, ensuring consistency."
          }
        ]
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/sdk-browser/1.1.0",
      "url": "https://www.togohq.ai/changelog/sdk-browser/1.1.0",
      "title": "@togohq/sdk-browser 1.1.0 — Version 1.1.0 introduces default properties, timezone, and page context features",
      "content_text": "New:\n- `init({ defaultProperties })` now allows setting default properties that are stamped on every `track()` call. The browser SDK reads the device timezone at initialization, and page context includes URL and path per event, with referrer and UTM parameters captured once at init.\n\nFixed:\n- Email redaction now correctly decodes only `%40` in email addresses from page fields, preventing malformed escape errors and ensuring proper redaction.\n- An undefined event value no longer erases a default property, ensuring that undefined values are treated as absent.",
      "date_published": "2026-10-29T20:13:18.789Z",
      "tags": [
        "sdk-browser"
      ],
      "_togo": {
        "kind": "package",
        "package": "@togohq/sdk-browser",
        "version": "1.1.0",
        "breaking": false,
        "changes": [
          {
            "kind": "new",
            "text": "`init({ defaultProperties })` now allows setting default properties that are stamped on every `track()` call. The browser SDK reads the device timezone at initialization, and page context includes URL and path per event, with referrer and UTM parameters captured once at init."
          },
          {
            "kind": "fixed",
            "text": "Email redaction now correctly decodes only `%40` in email addresses from page fields, preventing malformed escape errors and ensuring proper redaction."
          },
          {
            "kind": "fixed",
            "text": "An undefined event value no longer erases a default property, ensuring that undefined values are treated as absent."
          }
        ]
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/sdk-node/1.1.0",
      "url": "https://www.togohq.ai/changelog/sdk-node/1.1.0",
      "title": "@togohq/sdk-node 1.1.0 — This version introduces default properties and fixes an event value handling issue",
      "content_text": "New:\n- `init({ defaultProperties })` now supports default properties, fixed at initialization and stamped on every `track()` call.\n\nFixed:\n- An undefined event value no longer erases a default property, ensuring consistent property handling.",
      "date_published": "2026-10-29T20:08:46.193Z",
      "tags": [
        "sdk-node"
      ],
      "_togo": {
        "kind": "package",
        "package": "@togohq/sdk-node",
        "version": "1.1.0",
        "breaking": false,
        "changes": [
          {
            "kind": "new",
            "text": "`init({ defaultProperties })` now supports default properties, fixed at initialization and stamped on every `track()` call."
          },
          {
            "kind": "fixed",
            "text": "An undefined event value no longer erases a default property, ensuring consistent property handling."
          }
        ]
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/v0.2.3",
      "url": "https://www.togohq.ai/changelog/v0.2.3",
      "title": "Togo v0.2.3 — Introduce per-project rate limiting on event ingestion",
      "content_text": "New:\n- Implemented per-project rate limiting on the `/v1/events` endpoint. Requests exceeding the limit receive a `429` status with a `Retry-After` header, which is now exposed to CORS for better handling by browser SDKs.",
      "date_published": "2026-10-29T19:57:19.940Z",
      "tags": [
        "ingest"
      ],
      "_togo": {
        "kind": "product",
        "version": "0.2.3",
        "breaking": false,
        "changes": [
          {
            "kind": "new",
            "text": "Implemented per-project rate limiting on the `/v1/events` endpoint. Requests exceeding the limit receive a `429` status with a `Retry-After` header, which is now exposed to CORS for better handling by browser SDKs."
          }
        ]
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/v0.2.1",
      "url": "https://www.togohq.ai/changelog/v0.2.1",
      "title": "Togo v0.2.1 — Consent page now defaults to write access for MCP clients",
      "content_text": "Improved:\n- The consent page for MCP clients now defaults to selecting `project:write` access when the member can grant it, making it easier to grant write permissions. `project:read` access is still available with one click.",
      "date_published": "2026-10-29T06:09:37.612Z",
      "tags": [
        "app",
        "api"
      ],
      "_togo": {
        "kind": "product",
        "version": "0.2.1",
        "breaking": false,
        "changes": [
          {
            "kind": "improved",
            "text": "The consent page for MCP clients now defaults to selecting `project:write` access when the member can grant it, making it easier to grant write permissions. `project:read` access is still available with one click."
          }
        ]
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/v0.2.0",
      "url": "https://www.togohq.ai/changelog/v0.2.0",
      "title": "Togo v0.2.0 — Unified MCP endpoint and new identity tools",
      "content_text": "Breaking:\n- The previous MCP URLs `/p/:projectId` have been removed. All connections must now use the new `/mcp` endpoint.\n- The `analytics:read` scope has been retired and replaced with `project:read`. All existing tokens have been updated to reflect this change.\n\nNew:\n- Introduced a unified MCP endpoint `/mcp` that allows access to all projects a member can reach, replacing the previous per-project URLs. This change simplifies the connection process and aligns with practices used by services like Amplitude and GitHub.\n- Added new identity tools for MCP, including `update_person_property` and `update_person`, allowing for the declaration and setting of person properties.\n- Introduced new read tools under `project:read` scope, such as `get_person`, `get_person_events`, and `list_person_properties`, enabling agents to access detailed person and event data.\n\nMigration: Update MCP connections to use the new `/mcp` endpoint and adjust scopes to `project:read`.",
      "date_published": "2026-10-29T05:15:46.816Z",
      "tags": [
        "api",
        "mcp"
      ],
      "_togo": {
        "kind": "product",
        "version": "0.2.0",
        "breaking": true,
        "changes": [
          {
            "kind": "new",
            "text": "Introduced a unified MCP endpoint `/mcp` that allows access to all projects a member can reach, replacing the previous per-project URLs. This change simplifies the connection process and aligns with practices used by services like Amplitude and GitHub."
          },
          {
            "kind": "breaking",
            "text": "The previous MCP URLs `/p/:projectId` have been removed. All connections must now use the new `/mcp` endpoint."
          },
          {
            "kind": "new",
            "text": "Added new identity tools for MCP, including `update_person_property` and `update_person`, allowing for the declaration and setting of person properties."
          },
          {
            "kind": "new",
            "text": "Introduced new read tools under `project:read` scope, such as `get_person`, `get_person_events`, and `list_person_properties`, enabling agents to access detailed person and event data."
          },
          {
            "kind": "breaking",
            "text": "The `analytics:read` scope has been retired and replaced with `project:read`. All existing tokens have been updated to reflect this change."
          }
        ],
        "migration": {
          "summary": "Update MCP connections to use the new `/mcp` endpoint and adjust scopes to `project:read`.",
          "language": "sh",
          "before": "curl https://mcp.togohq.ai/p/:projectId",
          "after": "curl https://mcp.togohq.ai/mcp",
          "removedIn": "0.2.0"
        }
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/v0.1.7",
      "url": "https://www.togohq.ai/changelog/v0.1.7",
      "title": "Togo v0.1.7 — Sign-in for MCP servers",
      "content_text": "New:\n- Sign-in for MCP servers. An AI client can connect to one of your projects by OAuth — you approve it in the browser, and can revoke it from your account page.\n- Added a link to the public changelog in the account menu, allowing users to easily access release notes and updates.",
      "date_published": "2026-10-25T01:26:27.029Z",
      "tags": [
        "app",
        "api",
        "mcp"
      ],
      "_togo": {
        "kind": "product",
        "version": "0.1.7",
        "breaking": false,
        "changes": [
          {
            "kind": "new",
            "text": "Sign-in for MCP servers. An AI client can connect to one of your projects by OAuth — you approve it in the browser, and can revoke it from your account page."
          },
          {
            "kind": "new",
            "text": "Added a link to the public changelog in the account menu, allowing users to easily access release notes and updates."
          }
        ]
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/sdk-browser/1.0.0",
      "url": "https://www.togohq.ai/changelog/sdk-browser/1.0.0",
      "title": "@togohq/sdk-browser 1.0.0 — The first stable release",
      "content_text": "Improved:\n- Semantic versioning. The public API is now stable: from this version on, a breaking change ships only in a new major version.",
      "date_published": "2026-10-24T23:01:32.255Z",
      "tags": [
        "sdk-browser"
      ],
      "_togo": {
        "kind": "package",
        "package": "@togohq/sdk-browser",
        "version": "1.0.0",
        "breaking": false,
        "changes": [
          {
            "kind": "improved",
            "text": "Semantic versioning. The public API is now stable: from this version on, a breaking change ships only in a new major version."
          }
        ]
      }
    },
    {
      "id": "https://www.togohq.ai/changelog/sdk-node/1.0.0",
      "url": "https://www.togohq.ai/changelog/sdk-node/1.0.0",
      "title": "@togohq/sdk-node 1.0.0 — The first stable release",
      "content_text": "Improved:\n- Semantic versioning. The public API is now stable: from this version on, a breaking change ships only in a new major version.",
      "date_published": "2026-10-24T22:02:44.349Z",
      "tags": [
        "sdk-node"
      ],
      "_togo": {
        "kind": "package",
        "package": "@togohq/sdk-node",
        "version": "1.0.0",
        "breaking": false,
        "changes": [
          {
            "kind": "improved",
            "text": "Semantic versioning. The public API is now stable: from this version on, a breaking change ships only in a new major version."
          }
        ]
      }
    }
  ]
}
