Skip to content

Send meta.type and meta.version with wide events - #9359

Draft
lmac012 wants to merge 3 commits into
developfrom
feature/lukasz/wide-event-params
Draft

Send meta.type and meta.version with wide events#9359
lmac012 wants to merge 3 commits into
developfrom
feature/lukasz/wide-event-params

Conversation

@lmac012

@lmac012 lmac012 commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Task/Issue URL: https://app.asana.com/1/137249556945/task/1213817723602340
Tech Design URL (if applicable):
API Proposals URL(s) (if applicable): https://app.asana.com/1/137249556945/task/1217024679030254

Description

Wide events now send the two required common parameters that identify the event definition they validate against: meta.type (derived from the flow name as android-<name>) and meta.version (initially 1.0.0). Both are persisted per event, sent by both transports, declared in the pixel definitions, and settable per event through a new optional definition parameter on flowStart.

Reviewable in three commits: the wire format and storage, the pixel definitions, then the public API.

Steps to test this PR

Wide events carry the meta parameters

  • Install an internal build and tap the fire button to complete a data-clearing flow
  • Confirm the wide_data-clearing_c pixel carries meta.type=android-data-clearing and meta.version=1.0.0, and that the POST body has a top-level meta object

Events in flight survive the DB migration

  • Install a build from develop, start a flow (e.g. begin a subscription purchase) and background the app without finishing it
  • Install this build over it, finish the flow, and confirm the event is sent with the derived type and 1.0.0

UI changes

Before After
No UI changes No UI changes

lmac012 and others added 3 commits July 31, 2026 11:34
The wide event format requires two common parameters identifying the event
definition an event validates against. Both are now persisted per event and
sent by both transports: meta.type derived from the flow name as
android-<name> with underscores normalized to hyphens, and meta.version at
the initial 1.0.0. A Room migration adds the columns, leaving events that
are still in flight with a derived type and the initial version.

https://app.asana.com/1/137249556945/task/1213817723602340

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Adds meta.type and meta.version to the params dictionary and references them
from all 12 wide event pixel definitions, so the parameters the client now
sends are documented and validated. Folds the two inline declarations that
wide_post_idle_session already carried into the shared dictionary entries.

https://app.asana.com/1/137249556945/task/1213817723602340

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Adds an optional definition parameter to flowStart so a feature can declare
the event definition its flow conforms to. Both fields default to what the
client already sent: the type to android-<name> derived from the flow name,
and the version to the initial 1.0.0, so no call site has to change.

Callers declare only the MINOR and PATCH components, matching what an event
definition itself declares. MAJOR tracks the base template shared by every
wide event and stays owned by the client.

API proposal: https://app.asana.com/1/137249556945/task/1217024679030254
https://app.asana.com/1/137249556945/task/1213817723602340

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

lmac012 commented Jul 31, 2026

Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant