feat/discovery
safeviewing older commit7521b17 · incrementalPR #305reviewed 2026-07-17 23:35 UTC0H · 0M · 0L · 1IThe branch
- Purpose
- Contextual feature discovery for existing Batu platform users — ambient spotlights, a Descubre hub, and a first-run linear tour, all flag-gated behind feature-discovery-spotlights.
- Goal
- Ship Feature Discovery v1 with ambient coachmarks, the Descubre hub, and a first-run tour; pure-decision FCIS core with full i18n and PostHog analytics.
- Sub-goals
- SG-1: Ambient spotlights — one contextual coachmark per page, ≤1/rolling-day pacing
- SG-2: Descubre hub — header badge + self-serve pull + tour relaunch
- SG-3: First-run linear tour — 5 steps, dimmed scrim, RPU sub-tour
- SG-4: discovery_state table (migration 0062) + FCIS shell + RLS
- SG-5: Adversarial review + prod blockers fixed (VERCEL_ENV gate, spotlight latch)
- SG-6: docs(discovery) — rolling cooldown design note (this commit)
The changes (whole branch)
- What
- Added a 7-line JSDoc paragraph to shouldHoldAmbientForTour explaining that its 20h cooldown is rolling (lastSeenAt bumped on every report('seen')), not a permanent one-way latch. Contrasts with the old isFirstRunTourPending semantics.
- Why
- The rolling behaviour was non-obvious and risked being changed by a future maintainer who might mistake it for a permanent flag. The note guards that invariant without touching any logic.
- Areas
- apps/platform+2100−36domains/core/src/discovery+261−0domains/cross-domain/src+835−0packages/analytics/src+92−0packages/api/src/schemas+99−0packages/database+137−8packages/secrets+164−0e2e/platform+61−0
- Blast
- 60 files (excl. generated/messages), +5013/−63 lines across 8 areas; flag-gated, nothing reaches users until feature-discovery-spotlights is enabled.
flag-gated: feature-discovery-spotlights (OFF by default) new DB table: discovery_state (migration 0062) deploy precondition: run organizations.segment reclassify script before enabling
➖CI· Check API requires higher token scope➖CodeRabbit· No .coderabbit.yaml in repo
Findings · 1
conventions1
info
Minor hub UI reference in comment
domains/cross-domain/src/feature-discovery.decisions.ts:250
The phrase 'driving discovery from the hub' references a specific UI surface — borderline by CLAUDE.md conventions, but acceptable since it explains a non-obvious design intent.
History · 36 commits
- c1fe7b7needs attentionincremental3H · 4M · 3L2026-07-27 06:02
- 414db56safeincremental0H · 0M · 2L2026-07-23 00:52
- ea68968needs attentionincremental0H · 4M · 7L2026-07-22 23:01
- 4bdb2c9needs attentionincremental1H · 3M · 5L2026-07-21 23:22
- 6e3f255safeincremental0H · 0M · 0L2026-07-20 16:46
- cc41079blockedincremental5H · 5M · 3L2026-07-20 16:25
- 2451ee0needs attentionincremental0H · 5M · 6L2026-07-20 16:09
- ab7c103needs attentionincremental0H · 1M · 6L2026-07-20 15:52
- 7eff611needs attentionincremental0H · 1M · 2L2026-07-18 00:41
- 246c67csafeincremental0H · 0M · 0L2026-07-17 23:58
- 7521b17safeincremental0H · 0M · 0L2026-07-17 23:35current
- 1847ec8needs attentionincremental0H · 2M · 4L2026-07-17 23:28
- 5d3175cneeds attentionincremental3H · 6M · 4L2026-07-17 19:31
- d3f875dneeds attentionincremental1H · 2M · 4L2026-07-17 18:01
- 47d25faneeds attentionincremental1H · 1M · 2L2026-07-17 00:46
- 440d838needs attentionincremental4H · 9M · 9L2026-07-17 00:27
- 7466f97needs attentionincremental0H · 1M · 5L2026-07-16 23:20
- b686d58needs attentionincremental0H · 2M · 2L2026-07-16 14:24
- 9ea1446blockedincremental2H · 7M · 10L2026-07-16 13:44
- 6f39bb9needs attentionincremental0H · 2M · 7L2026-07-14 21:53
- 2eadf2aneeds attentionincremental0H · 1M · 2L2026-07-14 20:12
- 97bd08fneeds attentionincremental0H · 2M · 5L2026-07-14 19:40
- a48e3ffneeds attentionincremental5H · 8M · 6L2026-07-14 18:22
- 69473b7needs attentionincremental2H · 5M · 3L2026-07-14 01:34
- 92e4235needs attentionincremental2H · 1M · 3L2026-07-14 01:04
- 6be8018safeincremental0H · 0M · 3L2026-07-14 00:15
- 090b4daneeds attentionincremental1H · 3M · 5L2026-07-13 23:50
- fa7683bneeds attentionincremental1H · 4M · 3L2026-07-13 18:55
- d64cd72needs attentionincremental2H · 3M · 2L2026-07-13 16:27
- c1f337bneeds attentionincremental3H · 7M · 14L2026-07-13 13:30
- 46e32b2safeincremental0H · 0M · 3L2026-07-11 02:54
- 3b30949needs attentionincremental0H · 2M · 3L2026-07-11 02:39
- 9f8dbdfneeds attentionincremental3H · 5M · 5L2026-07-11 02:32
- 23191eeneeds attentionincremental5H · 12M · 7L2026-07-11 02:18
- fa9b88fneeds attentionincremental0H · 1M · 2L2026-07-11 01:30
- 6a8bf42blockedfull8H · 11M · 8L2026-07-11 01:08