docs: accuracy review + release prep for 3.2.0#421
Conversation
Multi-agent accuracy review of all SDK docs against current code; fixed every confirmed inaccuracy (one "6 vs 8 WS channels" finding was a false positive — 6 user-facing channels is correct). Corrections: - retries.md: complete the retryable status-code set (408/425/429/500/502/503/ 504/520-524, not just 5); drop PATCH (the SDK never issues it). - environment-variables.md: KALSHI_DEMO accepts only the exact string `true` (not 1/yes/on); add the KALSHI_PRIVATE_KEY_PASSPHRASE row and full KALSHI_PERPS_* and KALSHI_KLEAR_* sections. - resources/markets.md: candlesticks/bulk return plain lists (iterate directly, not `.candlesticks`); remove the nonexistent `series_ticker` from bulk_candlesticks; correct the list() `*_ts` filter names (min_created_ts/ min_close_ts/min_settled_ts ...). - resources/series.md: forecast_percentile_history returns a list. - resources/subaccounts.md: list_balances() returns `.subaccount_balances`; `balance` is DollarDecimal (dollars), no `portfolio_value` field. - resources/multivariate.md: lookup_tickers requires auth; flag create_market/ lookup_tickers/lookup_history as deprecated. - websockets.md: user_orders uses DROP_OLDEST (not ERROR); clarify the v3.20.0 spec sync shipped in SDK v3.1.0. - perps.md: add KALSHI_PERPS_PRIVATE_KEY_PASSPHRASE + KALSHI_PERPS_WS_BASE_URL. - authentication.md: note KalshiClient.from_env has no password= kwarg. - dataframes.md: describe the column-oriented (#264) build accurately. Release prep: - CHANGELOG 3.2.0: document the ws_base_url/password kwargs + new env vars, expand the list-envelope note to cover both surfaces, add a Fixed section for the KalshiWebSocket._stop exception-retrieval fix. - pyproject description now mentions the Perps API; ROADMAP adds the shipped v3.0.1/v3.1.0/v3.2.0 entries; RELEASING notes the CHANGELOG-header version match. Docs-only (no code change); mkdocs --strict builds clean.
Code Review — docs: accuracy review + release prep for 3.2.0Summary: Docs-only PR correcting factual errors against the current codebase and finalising the 3.2.0 release metadata. I spot-checked every material claim against the live code. Verified accurate ✅All of the following are confirmed correct against the source:
Bug introduced —
|
…nv passphrase note Address PR #421 bot review: order_group_updates uses OverflowStrategy.ERROR (ws/client.py:832) and is in SEQUENCED_CHANNELS (sequence.py:11) — it was wrongly dropped from the ERROR row when user_orders moved to DROP_OLDEST. Also reword the authentication.md password= sentence so it reads cleanly after the new from_env note.
Code Review — PR #421: docs: accuracy review + release prep for 3.2.0Scope: Docs-only (14 files, +99/-28). No runtime code changed. Verification passI cross-checked every factual claim in the diff against the live SDK source. All changes are accurate:
ObservationsAll accurate — nothing blocking. A few minor notes:
SummaryThis is a well-executed docs accuracy pass. Every correction traces directly to the source code, the false-positive reviewer finding ( |
Prepares the repo for the 3.2.0 release: a full multi-agent documentation accuracy review (12 agents, each verifying a doc slice against the current code) plus the CHANGELOG/metadata finalization the release workflow needs.
Documentation corrections (verified against code)
retries.md408/425/429/500/502/503/504/520-524); dropPATCH(never issued)environment-variables.mdKALSHI_DEMOis exacttrueonly (not1/yes/on); addKALSHI_PRIVATE_KEY_PASSPHRASE+ fullKALSHI_PERPS_*/KALSHI_KLEAR_*sectionsresources/markets.mdcandlesticks/bulk_candlesticksreturn lists (iterate directly); remove nonexistentseries_ticker; correct the*_tsfilter namesresources/series.mdforecast_percentile_historyreturns a listresources/subaccounts.mdlist_balances().subaccount_balances;balanceisDollarDecimal, noportfolio_valueresources/multivariate.mdlookup_tickersrequires auth; deprecation admonition for the 3 legacy methodswebsockets.mduser_ordersusesDROP_OLDEST; clarify v3.20.0 spec sync = SDK v3.1.0perps.mdKALSHI_PERPS_PRIVATE_KEY_PASSPHRASE+KALSHI_PERPS_WS_BASE_URLauthentication.mdKalshiClient.from_env()has nopassword=kwargdataframes.md(One reviewer finding — "6 vs 8 perps WS channels" — was a false positive: 6 user-facing
subscribe_*channels is correct; the agent counted the 2 meta-channels.)Release prep
ws_base_url/passwordkwargs + new env vars, the unified list-envelope null-handling across both surfaces, and a### Fixedsection for theKalshiWebSocket._stop()exception-retrieval fix.pyprojectdescription mentions the Perps API;ROADMAPadds shippedv3.0.1/v3.1.0/v3.2.0;RELEASING.mdnotes the CHANGELOG-header version match.Verification
mkdocs build --strictis clean.3.2.0acrosspyproject.toml,kalshi/__init__.py, and the## 3.2.0CHANGELOG heading.After this merges, the repo is a
v3.2.0tag push away from release (perdocs/RELEASING.md).🤖 Generated with Claude Code