Skip to content

chore(data-modeling): remove data-modeling-semantic-enrichment flag - #69772

Merged
thiagosalvatore merged 3 commits into
masterfrom
delete-semantic-enrichment-flag
Jul 9, 2026
Merged

chore(data-modeling): remove data-modeling-semantic-enrichment flag#69772
thiagosalvatore merged 3 commits into
masterfrom
delete-semantic-enrichment-flag

Conversation

@thiagosalvatore

Copy link
Copy Markdown
Contributor

Problem

Semantic enrichment for data-modeling views (AI-generated descriptions for saved-query views and their columns, used so the AI agent picks the right view and columns in NL-to-HogQL) is rolled out to 100% of clients. The data-modeling-semantic-enrichment feature flag now just adds noise and a needless per-run flag evaluation.

Changes

Deleted the flag and made view enrichment always-on. The org-level is_ai_data_processing_approved consent gate stays, so enrichment_gates_pass now checks only consent. The separate tables flag data-warehouse-semantic-enrichment (warehouse_sources) is untouched.

  • enrich_view_semantics.py: dropped the VIEW_ENRICHMENT_FEATURE_FLAG constant, the unused enrichment_enabled import, the flag_disabled skip, and the flag conjunct in enrichment_gates_pass.
  • succeed_materialization.py: reworded the now-inaccurate gate comment.
  • constants.tsx: removed the DATA_MODELING_SEMANTIC_ENRICHMENT enum entry (it had no other frontend references, the flag was backend-only).
  • Tests: removed the now-impossible "flag disabled" cases and dead flag mocks across the three affected test files.

Note

Deleting the flag record in the PostHog flag-management UI is a separate operational step, not part of this PR.

How did you test this code?

Automated tests I (Claude) ran locally, all green:

  • test_enrich_view_semantics.py + test_backfill_view_semantic_enrichment.py: 38 passed
  • test_materialize_view_activities.py: 31 passed

The pruned tests catch no regression a remaining test doesn't. Org is_ai_data_processing_approved defaults to True, so the always-on paths stay covered by the existing happy-path tests, and the explicit "AI not approved" cases still exercise the one remaining gate. I did not do manual testing.

Automatic notifications

  • Publish to changelog?
  • Alert Sales and Marketing teams?

🤖 Agent context

Autonomy: Human-driven (agent-assisted)

I (Claude, via Claude Code) removed the flag end-to-end. The key call was scoping: there are two similarly named flags, and I confirmed with the author that only the views flag (data-modeling-semantic-enrichment) should go, leaving the tables flag (data-warehouse-semantic-enrichment) alone. The shared enrichment_enabled(team, flag_key) helper is used by both surfaces, so it stays put, only the view-side call sites were removed.

Skills invoked: /writing-tests (before touching test files, the test changes are deletions of now-impossible cases rather than new coverage).

Semantic enrichment for views is rolled out to 100%, so drop the
data-modeling-semantic-enrichment gate and make it always-on. The
AI-data-processing-consent gate stays. The separate tables flag
(data-warehouse-semantic-enrichment) is untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@thiagosalvatore thiagosalvatore added the skip-agent-review Save $$$, skip auto agent reviews (Greptile) — use for trivial or chore PRs label Jul 9, 2026
@thiagosalvatore thiagosalvatore self-assigned this Jul 9, 2026
@thiagosalvatore
thiagosalvatore marked this pull request as ready for review July 9, 2026 17:40
@thiagosalvatore
thiagosalvatore requested a review from a team July 9, 2026 17:40
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

🦔 Hogbox preview · ✅ ready

▶ Open the preview

🔑 Login test@posthog.com / 12345678 (demo data)
🧩 Running this PR's backend and frontend, on the PostHog :master base
🔗 Link stable across rebuilds — a re-push swaps the box underneath, the URL stays
🔒 Access tailnet only (PostHog VPN)
💤 Idle sleeps after ~30 min idle (snapshot to S3, zero node cost) and wakes on your next visit in ~30s, behind a brief "waking up" screen

commit 1535150 · box box-8c9b17105a92 · ready in 466s (push → usable) · build log · rebuilds on every push, torn down on close

@greptile-apps

greptile-apps Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Reviews (1): Last reviewed commit: "chore(data-modeling): remove data-modeli..." | Re-trigger Greptile

@trunk-io

trunk-io Bot commented Jul 9, 2026

Copy link
Copy Markdown

Static BadgeStatic BadgeStatic BadgeStatic Badge

View Full Report ↗︎Docs

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

🤖 CI report

Bundle size — 🟢 -140 B (-0.0%)

Uncompressed size of every built .js bundle, compared against the base branch.

Total: 69.86 MiB · 🟢 -140 B (-0.0%)

No file changed by more than 1000 B.

Posted automatically by build-bundle-size-report · uncompressed bytes from dist-report

Eager graph — within budget

How much code each root ships on the eager path — downloaded and parsed before the surface is interactive. Measured from the esbuild output chunks (post-tree-shake, static imports only); lazy import() / React.lazy chunks are not counted.

Root Eager (shipped) Δ vs base Budget
entry (logged-out pages, app bootstrap)
src/index.tsx
1.20 MiB · 22 files no change ███░░░░░░░ 28.0% of 4.29 MiB
authenticated shell (every logged-in page)
src/scenes/AuthenticatedShell.tsx
8.07 MiB · 2,956 files 🟢 -70 B (-0.0%) █████████░ 87.2% of 9.25 MiB

🟢 node_modules/monaco-editor/ stays out of src/index.tsx
🟢 src/lib/components/ActivityLog/describers stays out of src/index.tsx
🟢 [object Object] stays out of src/index.tsx
🟢 [object Object] stays out of src/index.tsx
🟢 node_modules/monaco-editor/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/lib/components/ActivityLog/describers stays out of src/scenes/AuthenticatedShell.tsx
🟢 [object Object] stays out of src/scenes/AuthenticatedShell.tsx
🟢 [object Object] stays out of src/scenes/AuthenticatedShell.tsx

Largest files eagerly shipped from src/index.tsx
Size File
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
24.6 KiB ../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js
6.3 KiB ../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js
4.5 KiB ../node_modules/.pnpm/@jspm+core@2.1.0/node_modules/@jspm/core/nodelibs/browser/process.js
3.9 KiB ../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js
1.4 KiB ../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js
1.3 KiB src/RootErrorBoundary.tsx
912 B ../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js
789 B src/scenes/ChunkLoadErrorBoundary.tsx
668 B src/index.tsx
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx
Size File
277.1 KiB ../node_modules/.pnpm/posthog-js@1.398.2/node_modules/posthog-js/dist/rrweb.js
266.9 KiB ../node_modules/.pnpm/@posthog+icons@0.37.4_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js
224.6 KiB src/taxonomy/core-filter-definitions-by-group.json
213.6 KiB ../node_modules/.pnpm/posthog-js@1.398.2/node_modules/posthog-js/dist/module.js
164.0 KiB src/queries/validators.js
154.0 KiB ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
105.7 KiB src/lib/api.ts
93.3 KiB ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js
90.5 KiB ../node_modules/.pnpm/@tiptap+core@3.20.1_@tiptap+pm@3.20.1/node_modules/@tiptap/core/dist/index.js

Posted automatically by check-eager-graph · sizes are eager output bytes (shipped, post-tree-shake) from the esbuild metafile · part of #32479

Dist folder size — 🟢 -904 B (-0.0%)

Total size of the built frontend/dist folder (all assets), compared against the base branch.

Total: 1433.69 MiB · 🟢 -904 B (-0.0%)

Playwright — all passed

All tests passed.

View test results →

@thiagosalvatore thiagosalvatore added the stamphog Request AI approval (no full review) label Jul 9, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Straightforward flag-cleanup chore: removes an already-100%-rolled-out feature flag from the view-enrichment gate while leaving the AI-processing consent check and the separate warehouse-tables flag untouched; tests updated to match, author owns this code with strong recent familiarity, and bot reactions are positive.

  • Author wrote 100% of the modified lines and has 5 merged PRs in these paths (familiarity STRONG).
  • 👍 on the PR from greptile-apps[bot], hex-security-app[bot].
Gate mechanics and policy version
Gate Result
prerequisites all clear
deny-list no deny categories matched
size 23L, 3F substantive, 108L/6F incl. docs/generated/snapshots — within ceiling
tier T1-agent / T1d-complex (108L, 6F, cross-cutting, chore)
stamphog 2.0.0b3 .stamphog/policy.yml @ 7963eba · reviewed head 3d1b41c

@thiagosalvatore
thiagosalvatore enabled auto-merge (squash) July 9, 2026 18:11
@thiagosalvatore
thiagosalvatore merged commit 74ffde1 into master Jul 9, 2026
318 of 328 checks passed
@thiagosalvatore
thiagosalvatore deleted the delete-semantic-enrichment-flag branch July 9, 2026 19:52
@deployment-status-posthog

deployment-status-posthog Bot commented Jul 9, 2026

Copy link
Copy Markdown

Deploy status

Environment Status Deployed At Workflow
dev ✅ Deployed 2026-07-09 20:21 UTC Run
prod-us ✅ Deployed 2026-07-09 20:39 UTC Run
prod-eu ✅ Deployed 2026-07-09 20:42 UTC Run

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

Labels

skip-agent-review Save $$$, skip auto agent reviews (Greptile) — use for trivial or chore PRs stamphog Request AI approval (no full review)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant