feat: fetch project remote config at startup and periodically - #972
Draft
marandaneto wants to merge 4 commits into
Draft
marandaneto wants to merge 4 commits into
marandaneto wants to merge 4 commits into
Conversation
Contributor
posthog-python Compliance ReportDate: 2026-09-21 12:09:04 UTC ✅ All Tests Passed!111/111 tests passed Capture_V1 Tests✅ 94/94 tests passed View Details
Feature_Flags Tests✅ 17/17 tests passed View Details
|
Contributor
|
The PR should not merge until clients re-enabled after disabled construction can start remote-config polling; the sync-mode exit cleanup gap should also be addressed. Reviews (1) · Last reviewed commit: "feat: fetch project remote config at sta..." |
1 task
This branch has not been deployed
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.
💡 Motivation and Context
Add project remote-config fetching based on the HTTP contract in PostHog/sdk-specs#70. Also read
sdkDiagnosticsEnabledfrom PostHog/posthog#103683. The new localsdk_diagnostics_enabledoption defaults toTrue. Effective diagnostics permission requires both the local option and the remote value to be true. Missing or invalid remote values mean false. This is experimental and does not collect or report diagnostics yet. Other fetched settings do not change SDK behavior.Clients fetch asynchronously at startup and refresh after each configured interval.
remote_config_poll_interval_secondsdefaults to 300 seconds.Nonedisables both startup and periodic fetches. Disabled clients keep an idle poller without making requests and resume fetching on the next interval after re-enabling.send=Falseand empty project tokens do not start a poller.Requests use the public project token, map US/EU ingestion hosts to their asset hosts, and preserve custom proxy paths. Failed fetches keep the last successful response in memory. Shutdown stops the worker, and forked clients recreate it unless already shut down. Sync-mode clients also register non-blocking poller cleanup at interpreter exit. A private subclass reuses the existing
Pollerloop and cleanup, adding only the immediate startup fetch and remote-config response handling.💚 How did you test it?
git diff --checkpassed.origin/mainpassed at06332f2with no actionable findings.📝 Checklist
If releasing new changes
sampo addto generate a changeset file🤖 Agent context
Autonomy: Human-driven (agent-assisted)
Implemented with Pi using file editing, shell, GitHub CLI, and the isolated autoreview helper. The human-directed scope includes startup and periodic fetching, with a five-minute default and
Noneas the opt-out, plus experimental diagnostics permission. The local permission defaults to enabled but cannot override a remote disable. Code comments explicitly state that no diagnostics are collected yet. Human review is required.