docs(prediction): add day2 verification record#3
Conversation
|
Update: documentation now distinguishes the target single-prediction endpoint from the current production fallback.
|
|
Updated Day2 acceptance record for the latest review state: added services PR #30 market endpoint, refreshed SDK PR head to 1886bd2, captured event+market OpenAPI SDK methods, and kept the reviewer-before-merge/tag/deploy gate explicit.\n\nVerification in this docs update: git diff --check; Lark CI/CD Notification passed. |
|
Updated the Day2 target/acceptance record after the latest SDK PR update:\n\n- SDK PR #10 head is now |
|
Finalized the SDK CI snapshot in the Day2 record after the Rust checks completed: Rust build/format/format-examples/lint/lint-examples/lockfile/stable+beta tests are now recorded as passing.\n\nNo merge/tag/deploy was performed. |
|
Updated the Day2 verification record in Changes:
No merge/tag/deploy action taken. |
|
Updated the Day2 verification record in Changes:
No merge/tag/deploy action taken. |
|
Update at
|
|
Update at
|
|
Update at
|
|
Update at
|
|
Updated Day2 verification record after SDK PR #10 commit 32e7416.\n\nChanges recorded:\n- SDK PR is now 0 behind / 23 ahead at 32e7416, merge state CLEAN.\n- Python REST OpenAPI client coverage is complete: PredictionApi, PredictionActivitiesResponse, PredictionActivity, PredictionActivityOrder, PredictionActivityType.\n- Local Python focused tests: 7 passed; ruff format/check and import smoke passed.\n- GitHub Actions for SDK PR #10 are all green across TypeScript, Rust, Go, and Python.\n- Removed the previous pending item for Python REST generated-client coverage.\n\nNo merge/tag/deploy/publish action taken. |
|
Docs PR final check at 6ffe929:\n\n- PR state: OPEN / CLEAN.\n- Lark CI/CD Notification: green.\n- Day2 verification record now reflects SDK PR #10 head 32e7416 and completed Python REST OpenAPI client coverage.\n\nNo merge action taken; keeping this ready for review. |
|
Added fresh public API verification at docs commit f6e0fc6.\n\nNew evidence recorded:\n- Public event endpoint with condition_id returned 200 for world-cup-winner France condition.\n- Page 1 and page 2 returned 20 activities each; duplicate activityId count was 0 within page 1 and 0 across pages.\n- Activity item field count was 27; Future.news 23-field mapping had no missing fields.\n- token_id filter returned only the requested token.\n- activity_type probes for buy/sell/redeem/inventory_adjust returned matching samples.\n- Latest activity lag in that probe was about 195s.\n- Fresh kubectl log recheck was attempted but did not complete because read-only kubectl list calls did not return within 30s; kept that as a final-verification item instead of marking it passed.\n\nNo merge/tag/deploy action taken. |
|
Added fresh production log/deployment verification at docs commit f550dea.\n\nNew evidence recorded:\n- Worked around local Homebrew aws CLI hang by generating EKS bearer token via local SigV4 presigned STS URL; Kubernetes /version returned 200, v1.35.4-eks-40737a8.\n- pol-prediction-trades-to-clickhouse-pipeline and pol-prediction-settlements-to-clickhouse-pipeline are 1/1 ready, restart 0, running deploy-prediction-activities-20260605-3e55e724.\n- chainstream/services is 2/2 ready, restart 0, running v1.20260605-prediction-activities.\n- PREDICTION_FIRSTSCREEN_CACHE_ENABLED is not set in services deployment and no chainstream ConfigMap override was found; code default remains false.\n- Last-hour log scan (tail 1500 lines per pod) found 0 decode/cache/prediction activity/panic/fatal/generic error matches across trades sink, settlements sink, and both services pods.\n- CH_INSERT_OK is present in prediction sink logs.\n\nNo merge/tag/deploy action taken. |
|
Added code-level evidence at docs commit e29224b.\n\nNew verification details recorded:\n- Aggregation deployment YAML explicitly sets PREDICTION_FIRSTSCREEN_CACHE_ENABLED=false and TTL 86400 for both Polygon prediction trades and settlements sinks.\n- prediction-to-clickhouse-pipeline/src/activity.rs only calls write_firstscreen_cache when prediction_firstscreen_cache_enabled() is true; no firstscreen queue write path was found.\n- prediction-to-clickhouse-pipeline/src/model.rs maps buy/sell taker from trade_buyer/trade_seller and maps redemption/split/merge to redeem/inventory_adjust, with settlement mapping tests named in the record.\n- services firstscreen read gate defaults to false and only allows first unfiltered desc page when enabled; test name recorded.\n- SDK channel-builder and parser file evidence recorded across TypeScript/Rust/Go/Python.\n\nNo merge/tag/deploy action taken. |
|
Added a Day2 completion matrix at docs commit 1945371.\n\nThe matrix now separates:\n- Verified items: activity data chain, topic retention, ClickHouse TTL, event REST field parity, firstscreen default-off gate, production logs.\n- PR-ready items not yet deployed/published: services #29, services #30, SDK #10.\n- Explicit remaining gates: reviewer confirmation, merge from latest main, tag/deploy or tag/publish, PR #29 deep-pagination retest, PR #30 market endpoint public retest, realtime pred namespace/live receive, SDK live receive.\n\nNo merge/tag/deploy action taken. |
|
Added a fresh public API probe at 2026-06-05 07:44 CST. Result: event+condition activities endpoint returned 200 for page 1 and page 2, 20+20 rows, no duplicate activityId within page 1 or across pages, 27 fields, Future.news 23-field mapping missing [], required missing [], type counts buy=16/sell=16/inventory_adjust=8, latest lag about 38s. No deploy/merge/tag performed. |
|
Added a post-review release runbook to the DAY2 acceptance doc. It now spells out the exact gated order: merge #29 -> pull services main -> create/push v* services tag -> wait CD image -> deploy and deep-pagination retest -> refresh #30 on latest main and resolve the known query-file conflict -> rerun focused tests -> merge/tag/deploy market endpoint -> merge SDK #10 -> pull SDK main -> publish js-v*/rust-v*/py-v*/go-v* tags. Also recorded the 2026-06-05 07:48 CST public API probe: 20+20 rows, duplicate activityId 0/0, 27 fields, Future.news mapping missing [], latest lag about 146s. No merge/tag/deploy performed. |
|
Recorded the 2026-06-05 07:54 CST public API probe. Result: single-prediction event+condition endpoint returned 200 for page 1 and page 2, 20+20 rows, duplicate activityId 0/0, 27 fields, Future.news mapped missing [], required missing [], latest lag about 31s. Token filter returned 5/5 matching token rows. buy/sell/inventory_adjust filters returned 3 rows each with matching types. For redeem, the selected condition currently has 0 rows but event-level redeem without condition returns 5/5 redeem rows, so the filter path is live and current absence is market-specific. No merge/tag/deploy performed. |
|
Recorded latest services PR validation from 2026-06-05 07:56 CST. PR #29 head |
|
Added an explicit services #29/#30 conflict-resolution note to the DAY2 runbook. Merge-tree confirms the conflict is in |
|
Fresh public API probe at 2026-06-05 08:02 CST: event+condition endpoint returned 200 for page 1 and page 2, 20+20 rows, duplicate activityId 0/0, field count 27, Future.news mapped missing [], required missing [], latest lag about 75s, type counts buy=17/sell=17/inventory_adjust=6. Standard local kubectl read-only checks still timed out at 20s, so no new kube log/deploy evidence was added in this probe. No merge/tag/deploy/realtime action performed. |
Review gate: documentation only; do not use this PR as approval to merge, tag, deploy, publish SDK, or deploy realtime.
Summary
v*tag from main, deploy tag image, retest deep paginationcrates/infrastructure/src/database/prediction.rsconflict, rerun focused tests, then merge/tag/deploy market endpointjs-v*,rust-v*,py-v*, andgo-v*tagsLIMIT 1 BY activity_idbetween ClickHouseORDER BYand pageLIMIT, and keep both #30 event/market SQL tests plus #29 dedup SQL test.realtime 先不部署remains in force.Latest verification recorded
63829d57869b6e441f2ec64607f82d1d47c54a92activityId0/0, 27 fields, Future.news mapped missing[], required missing[], latest lag about 31s.activity_type=buy/sell/inventory_adjustreturned 3 matching rows each for the selected condition.activity_type=redeemreturned 0 rows for the selected condition but event-level redeem withoutcondition_idreturned 5 matching redeem rows, so the redeem filter path is live and the absence is market-specific.b7151a1: infra prediction tests 4/4, API schema tests,git diff --check.1beaca3: infra prediction tests 5/5, API schema tests,git diff --check, OpenAPI smoke.crates/infrastructure/src/database/prediction.rs.Validation
git diff --check63829d5Not done here