docs(python-sdk.wiki): correct the BUCKETING lifecycle-event claim under enable_tracking=False
CodeExamples said bucketing, sticky persistence, audience rules "and the
internal BUCKETING lifecycle event still fire" when enable_tracking=False, with
"only the outbound network enqueue is skipped". The event half is false for
Python: Context._record_experience_result gates the tracker call on
`enable_tracking and self._tracker is not None and self._preview is None`, and
Tracker._emit_bucketing — the only event-bus emit site — lives inside
track_bucketing. So the flag suppresses the enqueue AND the event. The SDK's own
run_experience docstring already says so: "no bucketing event is enqueued and no
LifecycleEvent.BUCKETING is emitted."
The sentence appears to have been ported from the Ruby wiki, where it is
accurate — Ruby fires the event before the tracking gate, so only the enqueue is
suppressed. Verified across all six SDKs: JavaScript, PHP, Ruby and iOS fire the
lifecycle event under a tracking opt-out; Python and Android suppress it,
because in those two the emit sits inside the tracking path.
Now states what actually happens, adds the "both reporting paths suppressed
together" note (matching how the Android wiki frames the same behavior), points
readers at the returned result when they need a decision signal regardless of
consent, and names the cross-SDK split so the sentence stops travelling.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
docs(python-sdk.wiki): cover Full Stack v12 — preview, sticky bucketing, mutual exclusion
Refresh the Python-owned pages against convertcom/python-sdk
ab273ec..1f4bd82 (40 commits, PRs #52-#56). The shared full-stack docs
already carry the cross-SDK narrative for these areas (bucketing-algorithm,
qa-and-preview, mutual-exclusion, persistent-datastore) and were verified
correct against the Python implementation — only the CamelCase pages had
drifted.
- Configuration: SDKConfig.debug_token (config route only, forced
_conv_low_cache=1, repr=False) + its validation rule and a QA section;
replace the dead queue-control.md link
- TypeHints: parse_preview_param export, SupportsPreviewFetch, debug_token,
ContextState.bucketing / with_bucketing
- CodeExamples: new Preview links section (parse_preview_param +
set_preview, eager resolution, inert-on-bad-input, zero trace) and the
enable_storage flag
- Extending: SupportsPreviewFetch as an opt-in transport capability with its
graceful-degradation contract; visitor-state envelope now three maps
- Diagnostics: the preview_* and mutual-exclusion WARNING call sites
- MigrationFromJavascript: enableStorage, setPreview, parsePreviewParam,
debugToken parity rows
- Initialization: debug_token added to the InvalidConfigError triggers
- AI_Index / Home: link the shared pages the sidebar already carried
- CLAUDE.md: drop the stale "not yet in sync-to-wikis.yml" caveat
docs: document per-call enable_tracking (bucketing-event control) for Story 2.5 parity
Mirrors how the PHP/Ruby/JS SDK wikis document the per-call tracking flag. Python's
enable_tracking (keyword-only, default True) on run_experience/run_experiences gates
the bucketing/activation event added in Story 2.5 (release 1.0.1).
- CodeExamples: add an "evaluate without reporting the bucketing event" example,
scoped to Python's per-call-only control (no global tracking switch exists).
- MigrationFromJavascript: map JS enableTracking -> Python enable_tracking and note
JS's global network.tracking has no Python equivalent.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rewrite all Python-specific wiki pages from scratch against shipped SDK
Full from-scratch authoring of the 15 Python-specific pages, sourced from
src/convert_sdk (the __all__ public surface) and the test-verified docs/
(whose samples are executed by tests/test_docs_samples.py), rather than
editing the pre-finalization May-6 text.
Pages: Home, Quickstart, Installation, Initialization, Configuration,
CodeExamples, TypeHints, Diagnostics, Extending, Testing,
AsyncAndFrameworks, MigrationFromJavascript, MigrationFromRest, Roadmap,
ReleaseProcess.
Every import, symbol, method, field, and signature verified against the
SDK source; the MurmurHash3 parity assertion verified by execution.
Async/framework and Phase 3 content is explicitly labelled planned vs
shipped. Shared CI-synced docs left untouched.
Fix Python-specific pages to match shipped SDK public API
The Python-specific pages were authored 2026-05-06, before the SDK's
public API was finalized, and referenced fabricated/stale symbols.
Regenerated against src/convert_sdk (__all__) and the current docs/:
- Remove fabricated TrackingConfig — queue settings are SDKConfig fields
(batch_size, auto_flush_interval_ms).
- Remove fabricated GoalNotFoundError — goals surface via
ConversionResult/ConversionStatus.GOAL_NOT_FOUND and GoalDiagnostic.
- Remove fabricated LifecycleEventPayload — real payloads are
ConversionEventPayload and QueueReleasedPayload.
- Fix top-level imports that aren't exported (TrackingError, EventBus,
Transport) to their real submodule paths.
- Correct method/field drift: config_data=->data=, release_queues()->
flush(), set_default_segments->set_segments, force_multiple_transactions
->force_multiple, snapshot->current_config, diagnose_config_entity->
diagnose_entity, DataStore protocol get/set/has/delete, RefreshConfig
4-field surface, ExperienceResult fields.
Shared lowercase-kebab docs (CI-synced from backend) left untouched.
Initial wiki: shared Fullstack docs + Python-specific pages
Mirrors the JS and PHP SDK wiki structure:
- 15 Python-specific CamelCase pages (Home, Quickstart, Installation,
Initialization, Configuration, CodeExamples, TypeHints, Diagnostics,
Extending, Testing, AsyncAndFrameworks, MigrationFromJavascript,
MigrationFromRest, Roadmap, ReleaseProcess)
- 20 shared lowercase-kebab pages copied verbatim from the backend
full-stack-docs source (concepts/, guides/, integrations/llm-testing).
These will become CI-synced once convertcom/python-sdk is added to
backend/.github/workflows/sync-to-wikis.yml.
- Wiki infra: _Sidebar, _Footer, AI_Index, CLAUDE, sdk-docs-config.json.