Add bot filtering modes to aggregation explorer#4806
Conversation
Adds a third state to the bot toggle in the aggregation explorer, turning it into a select with "Exclude Bots" / "Include Bots" / "Only Bots". The new option filters aggregation inputs to only bot-authored forecasts.
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🚀 Preview EnvironmentYour preview environment is ready!
Details
ℹ️ Preview Environment InfoIsolation:
Limitations:
Cleanup:
|
|
@claude resolve the conflicts. |
|
Claude finished @SylvainChevalier's task in 12m 18s —— View job Resolving merge conflicts
SummaryResolved two conflicting files against
Pushed as commit |
- aggregations.py: keep exclude_blacklisted_users() added in main alongside the new only_bots branch and updated comment. - en.json: pull in openOnMetaculus plus the laborHubJobs/midtermsHub keys that landed in main while keeping the new bot mode keys. Co-authored-by: Sylvain <SylvainChevalier@users.noreply.github.com>
Summary
This PR extends the aggregation explorer's bot filtering capabilities by replacing the binary include/exclude toggle with a three-mode selector that allows users to exclude bots, include bots, or view only bot forecasts.
Key Changes
Frontend UI Updates
Switchcomponent for bot filtering with aStyledSelectdropdown offering three options: "Exclude Bots", "Include Bots", and "Only Bots"includeBotsto aBotModetype with values "exclude", "include", or "only"excludeBots,onlyBots, andbotsAPI & Data Layer
onlyBotsparameter throughout the aggregation data pipeline (frontend and backend)buildConfigId()to distinguish between include and only modes using "bots" and "obots" identifiersbuildDisplayLabel()andbuildChips()to handle the new "only bots" mode in display labelsBackend Logic
get_aggregations_at_time()andget_aggregation_history()to filter for only bot forecasts whenonly_bots=TrueDataGetRequestSerializerto validate the newonly_botsparameterType Updates
onlyBotsfield toSelectedAggregationConfig,AggregationQueryResult, and related typesonlyBotsoptionImplementation Details
The bot filtering now follows a priority order: if
only_botsis true, only bot forecasts are included; otherwise, ifinclude_botsis true, bots are included; otherwise, bots are excluded. This ensures mutually exclusive filtering modes while maintaining backward compatibility.https://claude.ai/code/session_01Ncpz4kH3oett2Wonz1TMaQ