Togo
Togo
Apply for the beta

Changelog

Changelog

What changed, and when it reached production.

  1. Togo v0.2.28

    Improved installation process and feedback options for Togo setup

    • Dashboard
    • MCP

    New

    • Claude Code now allows installation of the Togo plugin directly from the AI agent card and the install screen.

    Improved

    • The install screen now correctly names the project it is setting up, preventing the creation of empty projects elsewhere in the organization.
    • The install screen now instructs users to sign in through /mcp first, ensuring access to Togo tools during installation.
    • 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.
  2. @togohq/sdk-node 1.3.1

    Version 1.3.1 corrects the 1.3.0 changelog

    • Node.js SDK

    Fixed

    • 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.
  3. @togohq/sdk-node 1.3.0

    Version 1.3.0 adds withFlush() for serverless handlers and takes the flush interval in seconds

    • Node.js SDK

    Breaking

    • flushIntervalSeconds (10 to 60, default 10) replaces flushIntervalMs. A flushIntervalMs passed to init() is ignored, with a warning naming the replacement.

    New

    • withFlush(handler) wraps a serverless handler so the queue is sent after it returns or throws, with its result passed through unchanged.

    Improved

    • batchSize accepts 100 to 500. A value outside that range is moved into it, with a warning.
    • flush() retries a network failure or a server error within a 2-second budget before it resolves, and never retries a 429.

    Migration

    Replace flushIntervalMs with flushIntervalSeconds, and wrap serverless handlers in withFlush().

    Before
    const analytics = init({ writeKey, flushIntervalMs: 10_000 });
    After
    const analytics = init({ writeKey, flushIntervalSeconds: 10 });
    export const handler = analytics.withFlush(async (event) => {
      analytics.track('order_paid', {}, { userId: event.userId });
    });

    The old form stops working in 1.3.0.

  4. @togohq/sdk-browser 1.3.0

    Version 1.3.0 introduces session timeout in seconds and fixes session timeout handling

    • Browser SDK

    Breaking

    • BREAKING: DEFAULT_SESSION_TIMEOUT_MS is now DEFAULT_SESSION_TIMEOUT_SECONDS, and SESSION_HARD_CAP_MS is no longer exported.
    • BREAKING: batchSize and flushIntervalMs options are removed; batching is fixed at 50 events or 5 seconds.

    Deprecated

    • sessionTimeoutMs is deprecated in favor of sessionTimeoutSeconds and will be removed in a future version.

    New

    • sessionTimeoutSeconds is now available to set session idle timeout in seconds, defaulting to 1800.

    Fixed

    • A null or NaN session timeout now defaults correctly, preventing sessions from being turned off unintentionally.

    Migration

    Update session timeout and batching configurations to use new constants and options.

    Before
    (DEFAULT_SESSION_TIMEOUT_MS, sessionTimeoutMs, batchSize, flushIntervalMs);
    After
    (DEFAULT_SESSION_TIMEOUT_SECONDS, sessionTimeoutSeconds);

    The old form stops working in 1.3.0.

  5. @togohq/sdk-node 1.2.0

    This version introduces event ID returns and updates terminology for event definitions

    • Node.js SDK

    Breaking

    • Terminology updated: "declare" and "contract" are now "define" and "definition" across the SDK, aligning with internal naming conventions.

    New

    • track(), identify(), and setPersonProperties() now return the eventId of the event they queued, or undefined when no event is sent.

    Migration

    Update code to use the new terminology for event definitions.

    Before
    declareEvent(); // uses 'declare' terminology
    After
    defineEvent(); // uses 'define' terminology

    The old form stops working in 1.2.0.

  6. @togohq/sdk-browser 1.2.0

    Version 1.2.0 introduces event ID returns and updates email handling rules

    • Browser SDK

    Breaking

    • The governance wire's declared and contractSha256 are now defined and definitionSha256; DeclaredEvent is now DefinedEvent.

    New

    • track(), identify(), setPersonProperties() now return the eventId of the event they queued, or undefined when no event is sent.

    Improved

    • Session IDs are no longer rejected for resembling emails; diagnostics attach to TEST events only.

    Fixed

    • The scenario driver's Intl stub now survives a fake clock by using a regular function instead of an arrow function.

    Migration

    Update governance wire and event types to use 'defined' instead of 'declared'.

    Before
    (DeclaredEvent, declared, contractSha256);
    After
    (DefinedEvent, defined, definitionSha256);

    The old form stops working in 1.2.0.

  7. Togo v0.2.19

    Enhancements and fixes in profile key management and feedback reporting

    • API
    • MCP

    New

    • The list_person_properties tool now returns dropped profile keys with their diagnostic codes, helping agents identify and fix issues more efficiently.
    • The give_feedback tool allows agents to report issues directly to the support inbox, with a limit of 20 reports per member per hour.

    Improved

    • Profile key drops are now named and recorded, making missing definitions visible in production.

    Fixed

    • Clearing an undefined profile key is no longer incorrectly recorded as a drop.
    • The list_person_properties tool now accurately indicates when the drop list is incomplete, preventing silent errors.
  8. Togo v0.2.17

    Minimum plugin version updated to 1.1.0 for MCP

    • MCP

    New

    • 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.
  9. Togo v0.2.14

    Changes to event definition terminology and email enforcement

    • Ingestion

    Breaking

    • The governance wire's declared and contractSha256 are now defined and definitionSha256. This affects how controls are read by the CLI and SDKs.

    Improved

    • Session IDs that resemble emails are no longer rejected at the edge. Instead, they are flagged in test events for diagnostics.

    Migration

    Update code to use 'defined' instead of 'declared' and 'definitionSha256' instead of 'contractSha256'.

    Before
    declared, contractSha256
    After
    defined, definitionSha256

    The old form stops working in 0.2.14.

  10. Togo v0.2.13

    Event governance terminology updated and PII filter enhancements

    • Dashboard
    • API
    • MCP

    Breaking

    • 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.

    New

    • 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.

    Improved

    • The dashboard now consistently uses the term "event definition" instead of "declaration" or "contract".

    Fixed

    • An error message is now displayed when an Event governance switch fails to save, providing better feedback to users.

    Migration

    Update governance wire and SDKs to use new terminology.

    Before
    declared, contractSha256, DeclaredEvent
    After
    defined, definitionSha256, DefinedEvent

    The old form stops working in 0.2.13.

  11. Togo v0.2.10

    Enhancements and fixes for MCP setup and agent connection

    • Dashboard
    • MCP

    New

    • Introduced a setup prompt in MCP for members to start setup manually, ensuring it remains up-to-date without holding tenant data.
    • Added new tools for agents setting up Togo, including project creation, key creation per system, and access to Live View.

    Improved

    • The create_project function now matches project names exactly, aligning with the database's case-sensitive checks.

    Fixed

    • Resolved an issue where a signup initiated from an agent's sign-in would not return to the correct approval page after verification.
  12. @togohq/sdk-browser 1.1.0

    Version 1.1.0 introduces default properties, timezone, and page context features

    • Browser SDK

    New

    • 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.

    Fixed

    • Email redaction now correctly decodes only %40 in email addresses from page fields, preventing malformed escape errors and ensuring proper redaction.
    • An undefined event value no longer erases a default property, ensuring that undefined values are treated as absent.
  13. Togo v0.2.3

    Introduce per-project rate limiting on event ingestion

    • Ingestion

    New

    • 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.
  14. Togo v0.2.1

    Consent page now defaults to write access for MCP clients

    • Dashboard
    • API

    Improved

    • 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.
  15. Togo v0.2.0

    Unified MCP endpoint and new identity tools

    • API
    • MCP

    Breaking

    • The previous MCP URLs /p/:projectId have been removed. All connections must now use the new /mcp endpoint.
    • The analytics:read scope has been retired and replaced with project:read. All existing tokens have been updated to reflect this change.

    New

    • 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.
    • Added new identity tools for MCP, including update_person_property and update_person, allowing for the declaration and setting of person properties.
    • 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.

    Migration

    Update MCP connections to use the new /mcp endpoint and adjust scopes to project:read.

    Before
    curl https://mcp.togohq.ai/p/:projectId
    After
    curl https://mcp.togohq.ai/mcp

    The old form stops working in 0.2.0.

  16. Togo v0.1.7

    Sign-in for MCP servers

    • Dashboard
    • API
    • MCP

    New

    • 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.
    • Added a link to the public changelog in the account menu, allowing users to easily access release notes and updates.
  17. @togohq/sdk-browser 1.0.0

    The first stable release

    • Browser SDK

    Improved

    • Semantic versioning. The public API is now stable: from this version on, a breaking change ships only in a new major version.
  18. @togohq/sdk-node 1.0.0

    The first stable release

    • Node.js SDK

    Improved

    • Semantic versioning. The public API is now stable: from this version on, a breaking change ships only in a new major version.