Tags: PostHog/posthog
Tags
feat(data-modeling): filter full schedule sweep by PostHogScheduleType ( #67345) > Claude-written: Stacked on #67343. **Do not deploy before the backfill (#67343) has run in prod** — see below. ## Problem The full-namespace sweep in `get_v2_scheduled_dag_ids` (called with `candidate_dag_ids=None`) lists **every** schedule in the Temporal namespace and filters client-side on the target workflow, because Temporal can't filter schedules by the workflow they launch. That's the rate-limit risk the function's own docstring warns about. With #67336 stamping the schedules and #67343 backfilling the rest, we can finally scope this server-side. ## Changes The full sweep now passes `PostHogScheduleType = "data-modeling-execute-dag"` as a server-side query, so Temporal only returns data modeling's own schedules instead of the whole namespace. The client-side workflow check stays as a cheap belt-and-suspenders. The scoped path (`PostHogDagId IN (...)`) is **unchanged** — it's already bounded and already correct (its client-side workflow filter excludes v1 `n` schedules), and it's the hot production path, so I kept the tag-dependency off it entirely. ## Deploy order This must ship **after** `backfill_dag_schedule_type` (#67343) has run in prod and coverage is confirmed. A tag-scoped sweep skips any migrated-but-untagged DAG, which would let v1 schedule commands revive its v1 schedule. Today nothing in production calls the full-sweep path, so the blast radius is limited to the future namespace-wide audit/reconciler this stack enables — but the ordering rule still holds. ## How did you test this code? Updated the existing full-sweep unit test to assert the server-side query string (`PostHogScheduleType = "data-modeling-execute-dag"`); the scoped-path and empty-candidate tests are unchanged and still pass. `ruff` and `ty check` pass via lint-staged. I (Claude) ran the `TestGetV2ScheduledDagIds` class locally — green. No prod testing. ## 🤖 Agent context **Autonomy:** Human-driven (agent-assisted) Directed by @sakce, written by Claude (Claude Code). Phase 3 of 3 (stamp → backfill → flip). Design note: I deliberately flipped **only** the full-sweep path, not the scoped path, even though the original plan flipped both. The scoped path is already server-side-bounded by `PostHogDagId` and correct, so adding the tag filter there would only push the backfill-timing hazard onto the hot production path for no real gain.
refactor(brand): migrate hedgehog illustrations to `@posthog/brand/ho… …ggies` (#66238) Swap every UI usage that has a brand equivalent from the hand-rolled `lib/components/hedgehogs` registry over to `@posthog/brand/hoggies`, and add `@posthog/brand` to the peer deps of the products that now import it. Legacy components and PNG assets that are no longer referenced anywhere are deleted. Hogs with no brand equivalent yet stay in the registry but are now marked `@deprecated` behind a banner linking the tracking issues, so we stop adding new usages and can remove them one by one.
PreviousNext