Repository navigation
fix: Ada no longer reports to upstream T3 services - #245
Merged
Merged
Conversation
Delete the server's PostHog analytics (ingest.t3.codes, embedded key, identity read from Codex and Claude logins), the client device-hash reporting, the mobile expo-observe SDK and the app.t3.codes hosted-app default. Point the model manifest, npm launcher and native-client dispatch at jayleaton/ada, and extend check-removed-connect so upstream syncs cannot bring any of it back. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hone-home-20261114 # Conflicts: # apps/server/src/mcp/toolkits/core.test.ts # apps/server/src/provider/CodexChatGptAuth.test.ts # apps/server/src/telemetry/AnalyticsService.test.ts # apps/server/src/telemetry/AnalyticsService.ts # apps/server/src/ws.test.ts # apps/web/src/components/onboarding/WelcomePage.tsx # apps/web/src/components/settings/SettingsPanels.tsx # apps/web/src/state/managedPolicy.ts
…hone-home-20261114
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Ada still shipped code that could report to upstream (T3 Tools) or depend on upstream-controlled hosts. That included the server's PostHog analytics (
ingest.t3.codesand an embedded key) with identity built from Codex and Claude logins, a per-device hash that clients sent for analytics, and pairing links that put the pairing token onapp.t3.codes. It also fetched the model manifest live frompingdotgg/t3code, and the npm launcher downloaded upstream's binaries. Analytics being "off by default" left the sender, key and identity code in the binary.Change
Docs:
docs/user/telemetry.mdnow says Ada collects no usage data and keeps the OTLP export section.docs/internals/product-analytics.mdis deleted. Docs that described app.t3.codes as the default are updated.Audit
ingest.t3.codes→ PostHog, keyphc_XOW…apps/server/src/telemetry/*clientDevice=<sha256>socket paramclient-runtime/authorization/remote.ts, web and mobileplatform.tsapp.t3.codes(+ latest/nightly/preview)shared/hostedApp.ts,hostedPairing.ts,threadLinks.ts,promptLinks.ts,hostedAppUrl.ts,McpOAuth.tsVITE_HOSTED_APP_URL/T3CODE_HOSTED_APP_URLapp.t3.codesOAuth return originshared/providerAuthReturnUrl.tsapp.t3.codes/threadsapps/mobile/app.config.ts,App.tsxraw.githubusercontent.com/pingdotgg/t3code/.../model-manifest.jsonModelManifest.tsgithub.com/pingdotgg/t3code/releases/downloadscripts/npm-launcher/t3.mjsghworkflow dispatch onpingdotgg/t3codescripts/mobile-native-client.tsapps/mobileobserve.invalid)263247b1-…, ownerjayleaton,u.expo.devupdatesapps/mobile/app.config.tsbuild-desktop-artifact.tsjayleaton/ada)$schema: https://t3.codes/schema/t3.jsoncontracts/t3ProjectFile.ts,t3.jsont3-thread://checkpackaging/aurvercel.tsroutersapps/marketing,apps/web/vercel.tsinfra/task-cacheConnectTeardown, Connect-only notice)Surviving upstream syncs
Deleted paths are listed in
scripts/removed-connect-paths.json, so a sync that restores one failscheck-removed-connect(CI andcheck:changed). New code that names an upstream analytics host, key or the hosted app also fails it. Removing thetelemetry/directory makes any upstream call site that imports it a typecheck error instead of a silent sender.Merged with main (#229–#231, #241–#244)
telemetryEnabledso the usage notice could be honest. The field stays, and this server always reportsfalse. The web notice still warns when an older server reportstrueor omits the field. The managed-policy branch of the notice is gone along with the policy key.hashTelemetryId, which no longer exists.Scope and approval
Requested directly by the fork owner (JJ): remove analytics and everything that reports to or can be monitored by the upstream T3 project.
Verification
vp run check:changed(TMPDIR=/private/tmp, Node 26): all green. Format, lint, knip, typecheck of 41 packages, 51 test files and the React compiler pass.apps/server/src/telemetry/AnalyticsService.tsfrommainandnode scripts/check-removed-connect.tsexited 1 with four problems (removed path is back, PostHog key,T3CODE_POSTHOG_,ingest.t3.codes). After deleting it again, it exits 0.mainand after is this branch, both in dev:Merge Danger
Door: two-way. It's a revert away, and nothing migrates persisted data. Old managed policy files with
telemetrystill load.Blast Radius: cross-surface. Copied thread links are now
t3-thread://instead of https links that opened from anywhere. Pairing links always point at the server itself. The "Copy prompt link" action is hidden unless a hosted app is configured. Hosted https thread links pasted into a composer no longer become chips.Claude Opus 5.5 via Claude Code (Ada), with Opus helper subagents.
🤖 Generated with Claude Code