Repository navigation
Conversation
… usage report The daily heartbeat now carries ai_providers, the kinds of AI provider set up while AI is on (never a name, model, endpoint or key), and ai_chat_sent_at, when the user last sent an AI chat message. Together they say how many active Macs use AI, which a hosted AI add-on depends on. The first-query timestamp had no caller since DatabaseManager.execute(query:) was removed, so it stayed nil on every Mac. A successful editor run marks it again, where its history is recorded.
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.
Summary
ai_providers: the kinds of AI provider set up while AI is on, for example["claude", "ollama"]. Kinds only, never a name, model, endpoint or key. Omitted when AI is off or has no provider.ai_chat_sent_at: when the user last sent an AI chat message on this Mac, set inAIChatViewModel.startStreaming()once the connection's AI policy has let the message through. Overwritten on every message, unlike the write-once activation timestamps.first_query_executed_atlost its only caller whenDatabaseManager.execute(query:)was removed in fix(structure): save schema changes on the editing tab's own connection (#2015) #2016, so it has stayed nil on every Mac since that change (2026-08-04): 11 of 22,387 heartbeats in the last 7 days carried it, against 21,101 withconnection_succeeded_at. A successful editor run marks it again inMainContentCoordinator.recordHistory.Test plan
verify.sh package TableProCoreforTableProAnalyticsTests: 11 passed, including the newAnalyticsAIUsageFieldTests(snake_case keys, omitted when nil, protocol defaults)verify.sh test MacAnalyticsProviderTests FirstQueryAnalyticsTests: 9 passed.FirstQueryAnalyticsTestsfails on main: a successful editor run leavesfirstQueryExecutedAtnilverify.sh linton every changed Swift file: 0 violations