mirror of
https://github.com/hanzoai/insights.git
synced 2026-11-03 00:52:32 +00:00
The tree was a debranded snapshot of upstream taken around 2026-02-20, and upstream has moved about five months since. This replaces it with upstream master, mechanically re-derived: bin/debrand does the rename, and the pipeline and squashed migrations are restored from the shipped tree. Not a merge. The previous import replaced the tree wholesale in a single commit, so there is no shared content history to merge against. Reproducing the rename on the new tree is what actually converges. What survives: .hanzo/workflows, the Dockerfiles and bin/docker* entrypoints, compose files, LLM.md, and insights/migrations. The squashed initial migration is load-bearing — the live database records it by name, so upstream's ~918 individual migrations cannot come back. Nine products are dropped as unreferenced. Twenty-one more that we do not run are kept anyway because the core app still imports them; unpicking those is a refactor and does not belong in a rebase. This base does not build yet, and the reasons are not in the rename: upstream now wants Python 3.13.13 against our 3.12.12 and Django 5.2 against our 4.2, and the dependency manifests still name upstream packages that we republish under our own names. Those are decisions, not renames.
1.8 KiB
1.8 KiB
List the persons in a specific bucket of a lifecycle insight. Use this to answer "who are the new / returning / resurrecting / dormant users on day Y?".
source is the lifecycle query that defines the population (event, date range, filters). Build it directly when the user's request already names a bucket-day, or reuse one you previously ran via query-lifecycle when drilling in from a chart.
Selectors:
day(required): the bucket date as an ISO date string (YYYY-MM-DD), e.g."2024-01-15". Must align with the source's interval (a day boundary forinterval=day, the start of the week forinterval=week, etc.).status(required): which lifecycle bucket to drill into. One ofnew,returning,resurrecting,dormant.new— users seen for the first time (person profile created) during the period.returning— users active in the previous period and active in this one.resurrecting— users inactive for one or more periods and active again now.dormant— users active in the previous period but inactive now.
Response:
Each returned row contains distinct_id, email, and name. Results are limited to the top 100 actors. Matched session recordings are not returned — the lifecycle runner does not project per-actor matching events.
Guidance:
- Lifecycle excludes anonymous users (events with
$process_person_profile: false), so actor lists only contain identified users — anonymous visitors never appear in any bucket. - Lifecycle insights only support a single series and do not expose
compareFilter, so there is noseriesorcompareselector here. - Keep the
sourcelifecycle query minimal — only include the filters needed to define the same lifecycle population the user is asking about. - For large buckets, tighten the source query (filters, date range) rather than expecting more rows.