{"name":"tengu_grove_policy_viewed","slug":"tengu-grove-policy-viewed","family":"flag","title":"Feature flags","noun":"feature flag","description":"An analytics event, not a feature flag. Claude Code logs it when the Grove policy dialog decides to show the Consumer Terms and Privacy Policy update notice. It carries `location` and `dismissable` (the notice's `notice_is_grace_period` value).","description_source":"code","described_by":{"bundle":"2.1.286","author":"claude-opus-5-5"},"presence":{"first_seen":null,"removed_in":null,"in_current_build":false,"newest_mined":"2.1.309","builds":0,"mined_builds":150,"first_cited":null},"aliases":[],"entries":[{"version":"1.0.96","anchor":"new-telemetry-events","heading":"New Telemetry Events","line":null,"released_at":"2025-08-28 15:04:37","reason":"gate cited by this entry, found in this entry's text"}],"entries_total":1,"docs":[],"docs_total":0,"gates":[],"related":[{"name":"tengu_grove_policy_dismissed","slug":"tengu-grove-policy-dismissed","description":"An analytics event, not a feature flag. Claude Code logs it with `state: true` when the user defers the consumer terms notice during its grace period, either by choosing `Not now` or by pressing Escape."},{"name":"tengu_grove_policy_escaped","slug":"tengu-grove-policy-escaped","description":"An analytics event, not a feature flag. Claude Code logs it when the user presses escape in the Consumer Terms and Privacy Policy update dialog (the Grove dialog). It carries no fields."},{"name":"tengu_grove_policy_exited","slug":"tengu-grove-policy-exited","description":"An analytics event, not a feature flag. Claude Code logs it during the startup sequence when the Grove policy dialog (location `onboarding` or `policy_update_modal`) closes with `escape`, just before that startup step returns `stop`. It carries no fields."},{"name":"tengu_grove_policy_submitted","slug":"tengu-grove-policy-submitted","description":"An analytics event, not a feature flag. Claude Code logs it when the user answers the Grove policy dialog by opting in or out of model training, after saving the choice. It carries `state` (`true` for opt-in, `false` for opt-out) and `dismissable` (the notice's `notice_is_grace_period` value)."},{"name":"tengu_grove_policy_toggled","slug":"tengu-grove-policy-toggled","description":"An analytics event, not a feature flag. Claude Code logs it from the privacy settings command when the \"Help improve our AI models\" setting, re-fetched after the dialog closes, differs from the non-null value it had before. It carries `state` (the new value) and `location` `settings`."}],"url":"https:\/\/changelogs.core-directive.com\/reference\/flag\/tengu-grove-policy-viewed","family_url":"https:\/\/changelogs.core-directive.com\/reference\/flag.json"}