Repository navigation
docs: remove server and anti-abuse details from public docs #1244
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -18,7 +18,7 @@ Owns analytics event capture and non-fatal error reporting for Boxlore. The modu | |
|
|
||
| - `trackCustomThemeEditorOpened` emits once per editor visit. `trackCustomThemeSaved` is called after custom theme preference persistence succeeds. Both use glossary-backed events with only entry point or background style; no color values are captured. Facade and inventory tests cover both emissions. | ||
|
|
||
| - `trackApiSessionStatus(ApiSessionStatus)` emits `api_session_status` for API sessions (`ApiSessionAnalyticsTracks`); null properties are left out. One event per `/auth/session` exchange (`kind=exchange`: `trigger`, `success`, `duration_ms`, `attestation`, `limited`, `app_check_attempted`, `failure_reason`, `server_reason`), per first renewal of a token or renewal problem (`kind=renew`, `renew_outcome`) and per Turnstile step-up (`kind=step_up`, `step_up_outcome`). Properties are categories only, never tokens, ids or keys. `trackAppCheckStatus` takes an optional `reason` (a short failure category such as `play_integrity_-9`); App Check now runs only inside a session exchange, so `app_check_status` arrives once per attempt rather than once per launch. | ||
| - `trackApiSessionStatus(ApiSessionStatus)` emits `api_session_status` for API sessions (`ApiSessionAnalyticsTracks`); null properties are left out. One event per `/auth/session` exchange (`kind=exchange`: `trigger`, `success`, `duration_ms`, `attestation`, `limited`, `app_check_attempted`, `failure_reason`, `server_reason`), per first renewal of a token or renewal problem (`kind=renew`, `renew_outcome`) and per Turnstile step-up (`kind=step_up`, `step_up_outcome`). Properties are categories only, never tokens, ids or keys. `trackAppCheckStatus` takes an optional `reason` (a short failure category); App Check now runs only inside a session exchange, so `app_check_status` arrives once per attempt rather than once per launch. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Remove the session endpoint from the public README. This line still names
|
||
|
|
||
| - `trackFeedFetchResult(FeedFetchReport)` emits `feed_fetch_result`: once per show-page read (`context=show_page`, `show_id`, `source`, `result`, `completeness` on successful reads, `http_status` only on `http_error` and `gone`) and once per background pass and source as a summary (`context=background_pass`, `result` `ok`/`mixed`/`failed`, `shows_count`, `ok_count`, `not_modified_count`, `failed_count`, and `namespace_mismatch_count` only when the server reported another episode namespace for shows read in the pass; a pass that read nothing sends nothing). `trackFeedUrlCorrected(FeedUrlCorrection)` emits `feed_url_corrected` once per saved-address swap (`show_id`, `reason`, `step`). Neither carries an address: a show ID that looks like one is left out, and `feed_url_corrected` is then dropped (`FeedAnalyticsTracks`, `FeedAnalyticsTracksTest`). Catalog code reaches them through `:core:domain`'s `FeedTelemetryPort`, which `:app` wires. | ||
| - `recipe_id` beside `episode_id` (P4 PR 18, D11): `AnalyticsEmit` fills `recipe_id` on every event in `AnalyticsGlossary.EPISODE_ID_EVENTS` and `recipe_ids` on episode surfaces of `home_surface_impression` (`EpisodeRecipeIds`). The value is the episode ID itself when it is in the recipe range, else one already known (`rememberEpisodeRecipeIds`, or found earlier); unknown IDs are looked up in the background through the lookup `:app` installs (`installEpisodeRecipeIdLookup`, trusted keyed aliases only), so an event is never held back and the next event of that episode carries it. A miss isn't asked again for 10 minutes; caches are bounded. `trackOwnIdsUpgradeCompleted(UpgradeRepairReport)` emits `own_ids_upgrade_completed` once per upgraded install: `outcome` (`done` / `gave_up`), `shows_count`, `shows_gave_up_count`, `addresses_swapped_count`, `notifications_reregistered_count`, `runs_count`, `elapsed_hours` (tenths); counts only, no show IDs or addresses. Tests: `EpisodeRecipeIdsTest`, `GlossaryAllEventsEmissionTest`. | ||
|
|
@@ -96,7 +96,6 @@ src/main/java/cx/aswin/boxlore/core/analytics/ | |
| - Playback events take only `EntryPointContext.ALLOWED_KEYS` from a play's context, and none replaces a field the event set; media item extras (artwork links, Android Auto keys, the stream address) never reach analytics. | ||
| - Echo's chat sends what the listener typed capped at 500 characters, and never the reply text. | ||
| - Deep links: custom `deep_link_opened` (`captureDeepLinks = false`). | ||
| - Weekly Pulse KPIs stay on **Application Opened** / **Application Installed**. | ||
| - Coverage inventory: [`docs/analytics/glossary_emission_coverage.csv`](../../docs/analytics/glossary_emission_coverage.csv) (`emission` | `sdk_backed` | `person_props_only`). | ||
| - Events whose callers are gone leave the glossary with their façades: `library_history_tracking_notice` (the History notice was removed) and `auto_chapters_lifecycle` / `auto_transcript_lifecycle` (the on-device chapters and transcript calls were removed). The unused launch enrichment façade (`subscription_count_bucket`) went with them. `RecordingAnalyticsTest` checks the retired names stay out of the allowlist. | ||
|
|
||
|
|
||
Large diffs are not rendered by default.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Link the debug App Check setup.
An unregistered debug token can leave AI onboarding unavailable. The local setup guide no longer explains how to register one. Link to the debug-token instructions in
app/README.mdso developers can complete API-backed testing. (github.com)Script executed:
Repository: boxcreate/boxlore
Length of output: 2275
Remove the session endpoint from the public guidance.
The paragraph still names the session exchange endpoint, contrary to the PR’s redaction scope. It can retain the contributor-facing contract without the route.
Suggested fix
Committable suggestion