{ "directed": false, "multigraph": false, "graph": {}, "nodes": [ { "label": "env.py", "file_type": "code", "source_file": "backend/alembic/env.py", "source_location": "L1", "community": 66, "norm_label": "env.py", "id": "backend_alembic_env_py" }, { "label": "run_migrations_offline()", "file_type": "code", "source_file": "backend/alembic/env.py", "source_location": "L24", "community": 66, "norm_label": "run_migrations_offline()", "id": "alembic_env_run_migrations_offline" }, { "label": "do_run_migrations()", "file_type": "code", "source_file": "backend/alembic/env.py", "source_location": "L36", "community": 66, "norm_label": "do_run_migrations()", "id": "alembic_env_do_run_migrations" }, { "label": "run_async_migrations()", "file_type": "code", "source_file": "backend/alembic/env.py", "source_location": "L42", "community": 66, "norm_label": "run_async_migrations()", "id": "alembic_env_run_async_migrations" }, { "label": "run_migrations_online()", "file_type": "code", "source_file": "backend/alembic/env.py", "source_location": "L53", "community": 66, "norm_label": "run_migrations_online()", "id": "alembic_env_run_migrations_online" }, { "label": "0001_initial_schema.py", "file_type": "code", "source_file": "backend/alembic/versions/0001_initial_schema.py", "source_location": "L1", "community": 23, "norm_label": "0001_initial_schema.py", "id": "backend_alembic_versions_0001_initial_schema_py" }, { "label": "upgrade()", "file_type": "code", "source_file": "backend/alembic/versions/0001_initial_schema.py", "source_location": "L19", "community": 23, "norm_label": "upgrade()", "id": "versions_0001_initial_schema_upgrade" }, { "label": "downgrade()", "file_type": "code", "source_file": "backend/alembic/versions/0001_initial_schema.py", "source_location": "L273", "community": 23, "norm_label": "downgrade()", "id": "versions_0001_initial_schema_downgrade" }, { "label": "initial schema Revision ID: 0001 Revises: Create Date: 2026-03-16", "file_type": "rationale", "source_file": "backend/alembic/versions/0001_initial_schema.py", "source_location": "L1", "community": 23, "norm_label": "initial schema revision id: 0001 revises: create date: 2026-03-16", "id": "versions_0001_initial_schema_rationale_1" }, { "label": "0002_add_preview_columns.py", "file_type": "code", "source_file": "backend/alembic/versions/0002_add_preview_columns.py", "source_location": "L1", "community": 23, "norm_label": "0002_add_preview_columns.py", "id": "backend_alembic_versions_0002_add_preview_columns_py" }, { "label": "add autofill and attack day preview columns to siege Revision ID: 0002 Revises:", "file_type": "rationale", "source_file": "backend/alembic/versions/0002_add_preview_columns.py", "source_location": "L1", "community": 23, "norm_label": "add autofill and attack day preview columns to siege revision id: 0002 revises:", "id": "versions_0002_add_preview_columns_rationale_1" }, { "label": "0003_make_siege_date_nullable.py", "file_type": "code", "source_file": "backend/alembic/versions/0003_make_siege_date_nullable.py", "source_location": "L1", "community": 23, "norm_label": "0003_make_siege_date_nullable.py", "id": "backend_alembic_versions_0003_make_siege_date_nullable_py" }, { "label": "make siege date nullable Revision ID: 0003 Revises: 0002 Create Date: 2026-03-1", "file_type": "rationale", "source_file": "backend/alembic/versions/0003_make_siege_date_nullable.py", "source_location": "L1", "community": 23, "norm_label": "make siege date nullable revision id: 0003 revises: 0002 create date: 2026-03-1", "id": "versions_0003_make_siege_date_nullable_rationale_1" }, { "label": "0004_add_post_priority_config.py", "file_type": "code", "source_file": "backend/alembic/versions/0004_add_post_priority_config.py", "source_location": "L1", "community": 23, "norm_label": "0004_add_post_priority_config.py", "id": "backend_alembic_versions_0004_add_post_priority_config_py" }, { "label": "Add post_priority_config table", "file_type": "rationale", "source_file": "backend/alembic/versions/0004_add_post_priority_config.py", "source_location": "L1", "community": 23, "norm_label": "add post_priority_config table", "id": "versions_0004_add_post_priority_config_rationale_1" }, { "label": "0005_add_description_to_post_priority_config.py", "file_type": "code", "source_file": "backend/alembic/versions/0005_add_description_to_post_priority_config.py", "source_location": "L1", "community": 23, "norm_label": "0005_add_description_to_post_priority_config.py", "id": "backend_alembic_versions_0005_add_description_to_post_priority_config_py" }, { "label": "Add description to post_priority_config", "file_type": "rationale", "source_file": "backend/alembic/versions/0005_add_description_to_post_priority_config.py", "source_location": "L1", "community": 23, "norm_label": "add description to post_priority_config", "id": "versions_0005_add_description_to_post_priority_config_rationale_1" }, { "label": "0006_power_level_and_drop_sort_value.py", "file_type": "code", "source_file": "backend/alembic/versions/0006_power_level_and_drop_sort_value.py", "source_location": "L1", "community": 23, "norm_label": "0006_power_level_and_drop_sort_value.py", "id": "backend_alembic_versions_0006_power_level_and_drop_sort_value_py" }, { "label": "Replace power with power_level, drop sort_value", "file_type": "rationale", "source_file": "backend/alembic/versions/0006_power_level_and_drop_sort_value.py", "source_location": "L1", "community": 23, "norm_label": "replace power with power_level, drop sort_value", "id": "versions_0006_power_level_and_drop_sort_value_rationale_1" }, { "label": "0007_fix_group_number_max.py", "file_type": "code", "source_file": "backend/alembic/versions/0007_fix_group_number_max.py", "source_location": "L1", "community": 23, "norm_label": "0007_fix_group_number_max.py", "id": "backend_alembic_versions_0007_fix_group_number_max_py" }, { "label": "Raise group_number_range constraint max from 9 to 10 Stronghold at level 6 requ", "file_type": "rationale", "source_file": "backend/alembic/versions/0007_fix_group_number_max.py", "source_location": "L1", "community": 23, "norm_label": "raise group_number_range constraint max from 9 to 10 stronghold at level 6 requ", "id": "versions_0007_fix_group_number_max_rationale_1" }, { "label": "0008_add_matched_condition_id_to_position.py", "file_type": "code", "source_file": "backend/alembic/versions/0008_add_matched_condition_id_to_position.py", "source_location": "L1", "community": 23, "norm_label": "0008_add_matched_condition_id_to_position.py", "id": "backend_alembic_versions_0008_add_matched_condition_id_to_position_py" }, { "label": "Add matched_condition_id to position Tracks which PostCondition a member was ma", "file_type": "rationale", "source_file": "backend/alembic/versions/0008_add_matched_condition_id_to_position.py", "source_location": "L1", "community": 23, "norm_label": "add matched_condition_id to position tracks which postcondition a member was ma", "id": "versions_0008_add_matched_condition_id_to_position_rationale_1" }, { "label": "0009_add_discord_id_to_member.py", "file_type": "code", "source_file": "backend/alembic/versions/0009_add_discord_id_to_member.py", "source_location": "L1", "community": 23, "norm_label": "0009_add_discord_id_to_member.py", "id": "backend_alembic_versions_0009_add_discord_id_to_member_py" }, { "label": "Add discord_id to member Stores the Discord snowflake ID for each clan member,", "file_type": "rationale", "source_file": "backend/alembic/versions/0009_add_discord_id_to_member.py", "source_location": "L1", "community": 23, "norm_label": "add discord_id to member stores the discord snowflake id for each clan member,", "id": "versions_0009_add_discord_id_to_member_rationale_1" }, { "label": "0010_add_last_seen_changelog_at_to_member.py", "file_type": "code", "source_file": "backend/alembic/versions/0010_add_last_seen_changelog_at_to_member.py", "source_location": "L1", "community": 23, "norm_label": "0010_add_last_seen_changelog_at_to_member.py", "id": "backend_alembic_versions_0010_add_last_seen_changelog_at_to_member_py" }, { "label": "Add last_seen_changelog_at to member Tracks the timestamp of the last changelog", "file_type": "rationale", "source_file": "backend/alembic/versions/0010_add_last_seen_changelog_at_to_member.py", "source_location": "L1", "community": 23, "norm_label": "add last_seen_changelog_at to member tracks the timestamp of the last changelog", "id": "versions_0010_add_last_seen_changelog_at_to_member_rationale_1" }, { "label": "Add nullable last_seen_changelog_at column to the member table.", "file_type": "rationale", "source_file": "backend/alembic/versions/0010_add_last_seen_changelog_at_to_member.py", "source_location": "L25", "community": 23, "norm_label": "add nullable last_seen_changelog_at column to the member table.", "id": "versions_0010_add_last_seen_changelog_at_to_member_rationale_25" }, { "label": "Remove last_seen_changelog_at column from the member table.", "file_type": "rationale", "source_file": "backend/alembic/versions/0010_add_last_seen_changelog_at_to_member.py", "source_location": "L33", "community": 23, "norm_label": "remove last_seen_changelog_at column from the member table.", "id": "versions_0010_add_last_seen_changelog_at_to_member_rationale_33" }, { "label": "0011_add_post_suggest_preview.py", "file_type": "code", "source_file": "backend/alembic/versions/0011_add_post_suggest_preview.py", "source_location": "L1", "community": 23, "norm_label": "0011_add_post_suggest_preview.py", "id": "backend_alembic_versions_0011_add_post_suggest_preview_py" }, { "label": "Add post_suggest_preview columns to siege table. Mirrors the autofill_preview /", "file_type": "rationale", "source_file": "backend/alembic/versions/0011_add_post_suggest_preview.py", "source_location": "L1", "community": 23, "norm_label": "add post_suggest_preview columns to siege table. mirrors the autofill_preview /", "id": "versions_0011_add_post_suggest_preview_rationale_1" }, { "label": "Add post_suggest_preview and post_suggest_preview_expires_at columns.", "file_type": "rationale", "source_file": "backend/alembic/versions/0011_add_post_suggest_preview.py", "source_location": "L23", "community": 23, "norm_label": "add post_suggest_preview and post_suggest_preview_expires_at columns.", "id": "versions_0011_add_post_suggest_preview_rationale_23" }, { "label": "Drop post_suggest_preview and post_suggest_preview_expires_at columns.", "file_type": "rationale", "source_file": "backend/alembic/versions/0011_add_post_suggest_preview.py", "source_location": "L34", "community": 23, "norm_label": "drop post_suggest_preview and post_suggest_preview_expires_at columns.", "id": "versions_0011_add_post_suggest_preview_rationale_34" }, { "label": "Settings", "file_type": "code", "source_file": "backend/app/config.py", "source_location": "L4", "community": 10, "norm_label": "settings", "id": "app_config_settings" }, { "label": "BaseSettings", "file_type": "code", "source_file": "", "source_location": "", "community": 10, "norm_label": "basesettings", "id": "basesettings" }, { "label": "lifespan()", "file_type": "code", "source_file": "backend/app/main.py", "source_location": "L47", "community": 5, "norm_label": "lifespan()", "id": "app_main_lifespan" }, { "label": "FastAPI application factory and middleware wiring.", "file_type": "rationale", "source_file": "backend/app/main.py", "source_location": "L1", "community": 5, "norm_label": "fastapi application factory and middleware wiring.", "id": "app_main_rationale_1" }, { "label": "Application lifespan \u2014 runs startup guards before serving requests.", "file_type": "rationale", "source_file": "backend/app/main.py", "source_location": "L48", "community": 5, "norm_label": "application lifespan \u2014 runs startup guards before serving requests.", "id": "app_main_rationale_48" }, { "label": "middleware.py", "file_type": "code", "source_file": "backend/app/middleware.py", "source_location": "L1", "community": 68, "norm_label": "middleware.py", "id": "backend_app_middleware_py" }, { "label": "RequestLoggingMiddleware", "file_type": "code", "source_file": "backend/app/middleware.py", "source_location": "L12", "community": 68, "norm_label": "requestloggingmiddleware", "id": "app_middleware_requestloggingmiddleware" }, { "label": "BaseHTTPMiddleware", "file_type": "code", "source_file": "", "source_location": "", "community": 68, "norm_label": "basehttpmiddleware", "id": "basehttpmiddleware" }, { "label": ".dispatch()", "file_type": "code", "source_file": "backend/app/middleware.py", "source_location": "L13", "community": 68, "norm_label": ".dispatch()", "id": "app_middleware_requestloggingmiddleware_dispatch" }, { "label": "rate_limit.py", "file_type": "code", "source_file": "backend/app/rate_limit.py", "source_location": "L1", "community": 53, "norm_label": "rate_limit.py", "id": "backend_app_rate_limit_py" }, { "label": "_get_client_ip()", "file_type": "code", "source_file": "backend/app/rate_limit.py", "source_location": "L52", "community": 53, "norm_label": "_get_client_ip()", "id": "app_rate_limit_get_client_ip" }, { "label": "_rate_limit_key()", "file_type": "code", "source_file": "backend/app/rate_limit.py", "source_location": "L154", "community": 53, "norm_label": "_rate_limit_key()", "id": "app_rate_limit_rate_limit_key" }, { "label": "_parse_retry_after_seconds()", "file_type": "code", "source_file": "backend/app/rate_limit.py", "source_location": "L179", "community": 53, "norm_label": "_parse_retry_after_seconds()", "id": "app_rate_limit_parse_retry_after_seconds" }, { "label": "rate_limit_exceeded_handler()", "file_type": "code", "source_file": "backend/app/rate_limit.py", "source_location": "L217", "community": 53, "norm_label": "rate_limit_exceeded_handler()", "id": "app_rate_limit_rate_limit_exceeded_handler" }, { "label": "Rate-limiting utilities shared across the application. This module owns the sin", "file_type": "rationale", "source_file": "backend/app/rate_limit.py", "source_location": "L1", "community": 53, "norm_label": "rate-limiting utilities shared across the application. this module owns the sin", "id": "app_rate_limit_rationale_1" }, { "label": "Extract the real client IP from X-Forwarded-For for rate bucketing. Reads t", "file_type": "rationale", "source_file": "backend/app/rate_limit.py", "source_location": "L53", "community": 53, "norm_label": "extract the real client ip from x-forwarded-for for rate bucketing. reads t", "id": "app_rate_limit_rationale_53" }, { "label": "Composite key function that honours the AUTH_DISABLED bypass. When ``AUTH_D", "file_type": "rationale", "source_file": "backend/app/rate_limit.py", "source_location": "L155", "community": 53, "norm_label": "composite key function that honours the auth_disabled bypass. when ``auth_d", "id": "app_rate_limit_rationale_155" }, { "label": "Parse a slowapi rate-limit detail string into a window size in seconds. slo", "file_type": "rationale", "source_file": "backend/app/rate_limit.py", "source_location": "L180", "community": 53, "norm_label": "parse a slowapi rate-limit detail string into a window size in seconds. slo", "id": "app_rate_limit_rationale_180" }, { "label": "Return a JSON 429 response with a ``Retry-After`` header. Replaces slowapi'", "file_type": "rationale", "source_file": "backend/app/rate_limit.py", "source_location": "L218", "community": 53, "norm_label": "return a json 429 response with a ``retry-after`` header. replaces slowapi'", "id": "app_rate_limit_rationale_218" }, { "label": "configure_telemetry()", "file_type": "code", "source_file": "backend/app/telemetry.py", "source_location": "L28", "community": 69, "norm_label": "configure_telemetry()", "id": "app_telemetry_configure_telemetry" }, { "label": "Application Insights / OpenTelemetry initialisation for the backend. Call ``con", "file_type": "rationale", "source_file": "backend/app/telemetry.py", "source_location": "L1", "community": 69, "norm_label": "application insights / opentelemetry initialisation for the backend. call ``con", "id": "app_telemetry_rationale_1" }, { "label": "Initialise Azure Monitor OpenTelemetry and instrument the app. The ``azure-", "file_type": "rationale", "source_file": "backend/app/telemetry.py", "source_location": "L32", "community": 69, "norm_label": "initialise azure monitor opentelemetry and instrument the app. the ``azure-", "id": "app_telemetry_rationale_32" }, { "label": "attack_day.py", "file_type": "code", "source_file": "backend/app/api/attack_day.py", "source_location": "L1", "community": 24, "norm_label": "attack_day.py", "id": "backend_app_api_attack_day_py" }, { "label": "auth.py", "file_type": "code", "source_file": "backend/app/api/auth.py", "source_location": "L1", "community": 26, "norm_label": "auth.py", "id": "backend_app_api_auth_py" }, { "label": "AuthError", "file_type": "code", "source_file": "backend/app/api/auth.py", "source_location": "L27", "community": 26, "norm_label": "autherror", "id": "api_auth_autherror" }, { "label": "_exchange_code_for_token()", "file_type": "code", "source_file": "backend/app/api/auth.py", "source_location": "L41", "community": 26, "norm_label": "_exchange_code_for_token()", "id": "api_auth_exchange_code_for_token" }, { "label": "_get_discord_user()", "file_type": "code", "source_file": "backend/app/api/auth.py", "source_location": "L59", "community": 26, "norm_label": "_get_discord_user()", "id": "api_auth_get_discord_user" }, { "label": "_check_guild_membership()", "file_type": "code", "source_file": "backend/app/api/auth.py", "source_location": "L70", "community": 26, "norm_label": "_check_guild_membership()", "id": "api_auth_check_guild_membership" }, { "label": "login()", "file_type": "code", "source_file": "backend/app/api/auth.py", "source_location": "L77", "community": 26, "norm_label": "login()", "id": "api_auth_login" }, { "label": "callback()", "file_type": "code", "source_file": "backend/app/api/auth.py", "source_location": "L112", "community": 26, "norm_label": "callback()", "id": "api_auth_callback" }, { "label": "logout()", "file_type": "code", "source_file": "backend/app/api/auth.py", "source_location": "L203", "community": 26, "norm_label": "logout()", "id": "api_auth_logout" }, { "label": "me()", "file_type": "code", "source_file": "backend/app/api/auth.py", "source_location": "L210", "community": 26, "norm_label": "me()", "id": "api_auth_me" }, { "label": "_error_redirect()", "file_type": "code", "source_file": "backend/app/api/auth.py", "source_location": "L222", "community": 26, "norm_label": "_error_redirect()", "id": "api_auth_error_redirect" }, { "label": "Discord OAuth2 authentication endpoints.", "file_type": "rationale", "source_file": "backend/app/api/auth.py", "source_location": "L1", "community": 26, "norm_label": "discord oauth2 authentication endpoints.", "id": "api_auth_rationale_1" }, { "label": "Error codes returned in login redirect query parameters.", "file_type": "rationale", "source_file": "backend/app/api/auth.py", "source_location": "L28", "community": 26, "norm_label": "error codes returned in login redirect query parameters.", "id": "api_auth_rationale_28" }, { "label": "Exchange an authorization code for a Discord access token.", "file_type": "rationale", "source_file": "backend/app/api/auth.py", "source_location": "L42", "community": 26, "norm_label": "exchange an authorization code for a discord access token.", "id": "api_auth_rationale_42" }, { "label": "Fetch the authenticated Discord user's profile (identify scope).", "file_type": "rationale", "source_file": "backend/app/api/auth.py", "source_location": "L60", "community": 26, "norm_label": "fetch the authenticated discord user's profile (identify scope).", "id": "api_auth_rationale_60" }, { "label": "Check guild membership via the bot sidecar. Raises on connection failure.", "file_type": "rationale", "source_file": "backend/app/api/auth.py", "source_location": "L71", "community": 26, "norm_label": "check guild membership via the bot sidecar. raises on connection failure.", "id": "api_auth_rationale_71" }, { "label": "Initiate Discord OAuth2 flow. Generates a CSRF state token, stores it in a", "file_type": "rationale", "source_file": "backend/app/api/auth.py", "source_location": "L78", "community": 26, "norm_label": "initiate discord oauth2 flow. generates a csrf state token, stores it in a", "id": "api_auth_rationale_78" }, { "label": "Handle Discord OAuth2 callback. Validates CSRF state, exchanges the authori", "file_type": "rationale", "source_file": "backend/app/api/auth.py", "source_location": "L118", "community": 26, "norm_label": "handle discord oauth2 callback. validates csrf state, exchanges the authori", "id": "api_auth_rationale_118" }, { "label": "Clear the session cookie, ending the user's session.", "file_type": "rationale", "source_file": "backend/app/api/auth.py", "source_location": "L204", "community": 26, "norm_label": "clear the session cookie, ending the user's session.", "id": "api_auth_rationale_204" }, { "label": "Return identity information for the currently authenticated caller.", "file_type": "rationale", "source_file": "backend/app/api/auth.py", "source_location": "L213", "community": 26, "norm_label": "return identity information for the currently authenticated caller.", "id": "api_auth_rationale_213" }, { "label": "Return a redirect to the login page with an error query parameter.", "file_type": "rationale", "source_file": "backend/app/api/auth.py", "source_location": "L223", "community": 26, "norm_label": "return a redirect to the login page with an error query parameter.", "id": "api_auth_rationale_223" }, { "label": "autofill.py", "file_type": "code", "source_file": "backend/app/api/autofill.py", "source_location": "L1", "community": 8, "norm_label": "autofill.py", "id": "backend_app_api_autofill_py" }, { "label": "board.py", "file_type": "code", "source_file": "backend/app/api/board.py", "source_location": "L1", "community": 8, "norm_label": "board.py", "id": "backend_app_api_board_py" }, { "label": "bulk_update_positions()", "file_type": "code", "source_file": "backend/app/api/board.py", "source_location": "L38", "community": 39, "norm_label": "bulk_update_positions()", "id": "api_board_bulk_update_positions" }, { "label": "buildings.py", "file_type": "code", "source_file": "backend/app/api/buildings.py", "source_location": "L1", "community": 45, "norm_label": "buildings.py", "id": "backend_app_api_buildings_py" }, { "label": "list_buildings()", "file_type": "code", "source_file": "backend/app/api/buildings.py", "source_location": "L18", "community": 42, "norm_label": "list_buildings()", "id": "api_buildings_list_buildings" }, { "label": "add_building()", "file_type": "code", "source_file": "backend/app/api/buildings.py", "source_location": "L26", "community": 45, "norm_label": "add_building()", "id": "api_buildings_add_building" }, { "label": "add_group()", "file_type": "code", "source_file": "backend/app/api/buildings.py", "source_location": "L59", "community": 45, "norm_label": "add_group()", "id": "api_buildings_add_group" }, { "label": "delete_group()", "file_type": "code", "source_file": "backend/app/api/buildings.py", "source_location": "L69", "community": 45, "norm_label": "delete_group()", "id": "api_buildings_delete_group" }, { "label": "changelog.py", "file_type": "code", "source_file": "backend/app/api/changelog.py", "source_location": "L1", "community": 49, "norm_label": "changelog.py", "id": "backend_app_api_changelog_py" }, { "label": "_require_member_session()", "file_type": "code", "source_file": "backend/app/api/changelog.py", "source_location": "L24", "community": 49, "norm_label": "_require_member_session()", "id": "api_changelog_require_member_session" }, { "label": "get_changelog_status()", "file_type": "code", "source_file": "backend/app/api/changelog.py", "source_location": "L43", "community": 49, "norm_label": "get_changelog_status()", "id": "api_changelog_get_changelog_status" }, { "label": "Changelog status and mark-seen endpoints. These endpoints let the frontend trac", "file_type": "rationale", "source_file": "backend/app/api/changelog.py", "source_location": "L1", "community": 49, "norm_label": "changelog status and mark-seen endpoints. these endpoints let the frontend trac", "id": "api_changelog_rationale_1" }, { "label": "Raise HTTP 400 if the caller is a service principal. Args: current_", "file_type": "rationale", "source_file": "backend/app/api/changelog.py", "source_location": "L25", "community": 49, "norm_label": "raise http 400 if the caller is a service principal. args: current_", "id": "api_changelog_rationale_25" }, { "label": "Return the authenticated user's last-seen changelog timestamp. Args:", "file_type": "rationale", "source_file": "backend/app/api/changelog.py", "source_location": "L47", "community": 49, "norm_label": "return the authenticated user's last-seen changelog timestamp. args:", "id": "api_changelog_rationale_47" }, { "label": "Set the authenticated user's last-seen changelog timestamp to now. Idempote", "file_type": "rationale", "source_file": "backend/app/api/changelog.py", "source_location": "L73", "community": 49, "norm_label": "set the authenticated user's last-seen changelog timestamp to now. idempote", "id": "api_changelog_rationale_73" }, { "label": "comparison.py", "file_type": "code", "source_file": "backend/app/api/comparison.py", "source_location": "L1", "community": 8, "norm_label": "comparison.py", "id": "backend_app_api_comparison_py" }, { "label": "compare_with_most_recent()", "file_type": "code", "source_file": "backend/app/api/comparison.py", "source_location": "L14", "community": 8, "norm_label": "compare_with_most_recent()", "id": "api_comparison_compare_with_most_recent" }, { "label": "compare_with_specific()", "file_type": "code", "source_file": "backend/app/api/comparison.py", "source_location": "L31", "community": 8, "norm_label": "compare_with_specific()", "id": "api_comparison_compare_with_specific" }, { "label": "get_config()", "file_type": "code", "source_file": "backend/app/api/config.py", "source_location": "L11", "community": 10, "norm_label": "get_config()", "id": "api_config_get_config" }, { "label": "Public config endpoint \u2014 exposes non-sensitive runtime flags to the frontend.", "file_type": "rationale", "source_file": "backend/app/api/config.py", "source_location": "L1", "community": 10, "norm_label": "public config endpoint \u2014 exposes non-sensitive runtime flags to the frontend.", "id": "api_config_rationale_1" }, { "label": "Return public runtime configuration flags. This endpoint is intentionally u", "file_type": "rationale", "source_file": "backend/app/api/config.py", "source_location": "L12", "community": 10, "norm_label": "return public runtime configuration flags. this endpoint is intentionally u", "id": "api_config_rationale_12" }, { "label": "discord_sync.py", "file_type": "code", "source_file": "backend/app/api/discord_sync.py", "source_location": "L1", "community": 13, "norm_label": "discord_sync.py", "id": "backend_app_api_discord_sync_py" }, { "label": "Endpoints for Discord guild member \u2194 clan member sync.", "file_type": "rationale", "source_file": "backend/app/api/discord_sync.py", "source_location": "L1", "community": 13, "norm_label": "endpoints for discord guild member \u2194 clan member sync.", "id": "api_discord_sync_rationale_1" }, { "label": "Return proposed Discord \u2194 clan member matches without writing to the DB.", "file_type": "rationale", "source_file": "backend/app/api/discord_sync.py", "source_location": "L17", "community": 13, "norm_label": "return proposed discord \u2194 clan member matches without writing to the db.", "id": "api_discord_sync_rationale_17" }, { "label": "Apply accepted sync matches, updating discord_username and discord_id.", "file_type": "rationale", "source_file": "backend/app/api/discord_sync.py", "source_location": "L26", "community": 13, "norm_label": "apply accepted sync matches, updating discord_username and discord_id.", "id": "api_discord_sync_rationale_26" }, { "label": "health.py", "file_type": "code", "source_file": "backend/app/api/health.py", "source_location": "L1", "community": 50, "norm_label": "health.py", "id": "backend_app_api_health_py" }, { "label": "health()", "file_type": "code", "source_file": "backend/app/api/health.py", "source_location": "L11", "community": 50, "norm_label": "health()", "id": "api_health_health" }, { "label": "images.py", "file_type": "code", "source_file": "backend/app/api/images.py", "source_location": "L1", "community": 34, "norm_label": "images.py", "id": "backend_app_api_images_py" }, { "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": "", "community": 8, "norm_label": "basemodel", "id": "basemodel" }, { "label": "generate_images()", "file_type": "code", "source_file": "backend/app/api/images.py", "source_location": "L31", "community": 34, "norm_label": "generate_images()", "id": "api_images_generate_images" }, { "label": "Image generation endpoints.", "file_type": "rationale", "source_file": "backend/app/api/images.py", "source_location": "L1", "community": 34, "norm_label": "image generation endpoints.", "id": "api_images_rationale_1" }, { "label": "Generate PNG images for siege assignments and members list.", "file_type": "rationale", "source_file": "backend/app/api/images.py", "source_location": "L35", "community": 34, "norm_label": "generate png images for siege assignments and members list.", "id": "api_images_rationale_35" }, { "label": "lifecycle.py", "file_type": "code", "source_file": "backend/app/api/lifecycle.py", "source_location": "L1", "community": 3, "norm_label": "lifecycle.py", "id": "backend_app_api_lifecycle_py" }, { "label": "members.py", "file_type": "code", "source_file": "backend/app/api/members.py", "source_location": "L1", "community": 57, "norm_label": "members.py", "id": "backend_app_api_members_py" }, { "label": "list_members()", "file_type": "code", "source_file": "backend/app/api/members.py", "source_location": "L18", "community": 42, "norm_label": "list_members()", "id": "api_members_list_members" }, { "label": "get_member()", "file_type": "code", "source_file": "backend/app/api/members.py", "source_location": "L34", "community": 57, "norm_label": "get_member()", "id": "api_members_get_member" }, { "label": "delete_member()", "file_type": "code", "source_file": "backend/app/api/members.py", "source_location": "L51", "community": 57, "norm_label": "delete_member()", "id": "api_members_delete_member" }, { "label": "notifications.py", "file_type": "code", "source_file": "backend/app/api/notifications.py", "source_location": "L1", "community": 34, "norm_label": "notifications.py", "id": "backend_app_api_notifications_py" }, { "label": "_send_dms()", "file_type": "code", "source_file": "backend/app/api/notifications.py", "source_location": "L64", "community": 37, "norm_label": "_send_dms()", "id": "api_notifications_send_dms" }, { "label": "Notification endpoints \u2014 send DMs and post images to Discord.", "file_type": "rationale", "source_file": "backend/app/api/notifications.py", "source_location": "L1", "community": 34, "norm_label": "notification endpoints \u2014 send dms and post images to discord.", "id": "api_notifications_rationale_1" }, { "label": "Send DMs for each member and record results in a fresh DB session.", "file_type": "rationale", "source_file": "backend/app/api/notifications.py", "source_location": "L65", "community": 37, "norm_label": "send dms for each member and record results in a fresh db session.", "id": "api_notifications_rationale_65" }, { "label": "Send DM notifications to all siege members asynchronously.", "file_type": "rationale", "source_file": "backend/app/api/notifications.py", "source_location": "L142", "community": 34, "norm_label": "send dm notifications to all siege members asynchronously.", "id": "api_notifications_rationale_142" }, { "label": "Get the status and results of a notification batch.", "file_type": "rationale", "source_file": "backend/app/api/notifications.py", "source_location": "L310", "community": 34, "norm_label": "get the status and results of a notification batch.", "id": "api_notifications_rationale_310" }, { "label": "Generate images and post them + a summary message to Discord channels.", "file_type": "rationale", "source_file": "backend/app/api/notifications.py", "source_location": "L371", "community": 34, "norm_label": "generate images and post them + a summary message to discord channels.", "id": "api_notifications_rationale_371" }, { "label": "posts.py", "file_type": "code", "source_file": "backend/app/api/posts.py", "source_location": "L1", "community": 39, "norm_label": "posts.py", "id": "backend_app_api_posts_py" }, { "label": "_serialize_post()", "file_type": "code", "source_file": "backend/app/api/posts.py", "source_location": "L12", "community": 39, "norm_label": "_serialize_post()", "id": "api_posts_serialize_post" }, { "label": "list_posts()", "file_type": "code", "source_file": "backend/app/api/posts.py", "source_location": "L29", "community": 39, "norm_label": "list_posts()", "id": "api_posts_list_posts" }, { "label": "Build a PostResponse-compatible dict, denormalizing building_number from the rel", "file_type": "rationale", "source_file": "backend/app/api/posts.py", "source_location": "L13", "community": 39, "norm_label": "build a postresponse-compatible dict, denormalizing building_number from the rel", "id": "api_posts_rationale_13" }, { "label": "PostPriorityResponse", "file_type": "code", "source_file": "backend/app/api/post_priority_config.py", "source_location": "L12", "community": 8, "norm_label": "postpriorityresponse", "id": "api_post_priority_config_postpriorityresponse" }, { "label": "PostPriorityUpdate", "file_type": "code", "source_file": "backend/app/api/post_priority_config.py", "source_location": "L20", "community": 8, "norm_label": "postpriorityupdate", "id": "api_post_priority_config_postpriorityupdate" }, { "label": "list_post_priorities()", "file_type": "code", "source_file": "backend/app/api/post_priority_config.py", "source_location": "L26", "community": 42, "norm_label": "list_post_priorities()", "id": "api_post_priority_config_list_post_priorities" }, { "label": "post_suggestions.py", "file_type": "code", "source_file": "backend/app/api/post_suggestions.py", "source_location": "L1", "community": 24, "norm_label": "post_suggestions.py", "id": "backend_app_api_post_suggestions_py" }, { "label": "API router for the Suggest Post Assignments feature. Routes: POST /sieges/{", "file_type": "rationale", "source_file": "backend/app/api/post_suggestions.py", "source_location": "L1", "community": 24, "norm_label": "api router for the suggest post assignments feature. routes: post /sieges/{", "id": "api_post_suggestions_rationale_1" }, { "label": "Generate a greedy post-assignment suggestion preview. Args: siege_i", "file_type": "rationale", "source_file": "backend/app/api/post_suggestions.py", "source_location": "L37", "community": 24, "norm_label": "generate a greedy post-assignment suggestion preview. args: siege_i", "id": "api_post_suggestions_rationale_37" }, { "label": "Apply a caller-filtered subset of the stored preview atomically. Uses SELEC", "file_type": "rationale", "source_file": "backend/app/api/post_suggestions.py", "source_location": "L62", "community": 24, "norm_label": "apply a caller-filtered subset of the stored preview atomically. uses selec", "id": "api_post_suggestions_rationale_62" }, { "label": "reference.py", "file_type": "code", "source_file": "backend/app/api/reference.py", "source_location": "L1", "community": 15, "norm_label": "reference.py", "id": "backend_app_api_reference_py" }, { "label": "sieges.py", "file_type": "code", "source_file": "backend/app/api/sieges.py", "source_location": "L1", "community": 42, "norm_label": "sieges.py", "id": "backend_app_api_sieges_py" }, { "label": "list_sieges()", "file_type": "code", "source_file": "backend/app/api/sieges.py", "source_location": "L13", "community": 42, "norm_label": "list_sieges()", "id": "api_sieges_list_sieges" }, { "label": "get_siege()", "file_type": "code", "source_file": "backend/app/api/sieges.py", "source_location": "L40", "community": 42, "norm_label": "get_siege()", "id": "api_sieges_get_siege" }, { "label": "delete_siege()", "file_type": "code", "source_file": "backend/app/api/sieges.py", "source_location": "L65", "community": 42, "norm_label": "delete_siege()", "id": "api_sieges_delete_siege" }, { "label": "SiegeMemberCreate", "file_type": "code", "source_file": "backend/app/api/siege_members.py", "source_location": "L12", "community": 8, "norm_label": "siegemembercreate", "id": "api_siege_members_siegemembercreate" }, { "label": "list_siege_members()", "file_type": "code", "source_file": "backend/app/api/siege_members.py", "source_location": "L28", "community": 42, "norm_label": "list_siege_members()", "id": "api_siege_members_list_siege_members" }, { "label": "validation.py", "file_type": "code", "source_file": "backend/app/api/validation.py", "source_location": "L1", "community": 3, "norm_label": "validation.py", "id": "backend_app_api_validation_py" }, { "label": "_read_backend_version()", "file_type": "code", "source_file": "backend/app/api/version.py", "source_location": "L19", "community": 40, "norm_label": "_read_backend_version()", "id": "api_version_read_backend_version" }, { "label": "_fetch_bot_version()", "file_type": "code", "source_file": "backend/app/api/version.py", "source_location": "L42", "community": 40, "norm_label": "_fetch_bot_version()", "id": "api_version_fetch_bot_version" }, { "label": "Return a version string for the backend. When both BUILD_NUMBER and GIT_SHA", "file_type": "rationale", "source_file": "backend/app/api/version.py", "source_location": "L20", "community": 40, "norm_label": "return a version string for the backend. when both build_number and git_sha", "id": "api_version_rationale_20" }, { "label": "Call the bot sidecar's /version endpoint. Returns None if unreachable.", "file_type": "rationale", "source_file": "backend/app/api/version.py", "source_location": "L43", "community": 40, "norm_label": "call the bot sidecar's /version endpoint. returns none if unreachable.", "id": "api_version_rationale_43" }, { "label": "Return version information for all components.", "file_type": "rationale", "source_file": "backend/app/api/version.py", "source_location": "L57", "community": 40, "norm_label": "return version information for all components.", "id": "api_version_rationale_57" }, { "label": "base.py", "file_type": "code", "source_file": "backend/app/db/base.py", "source_location": "L1", "community": 16, "norm_label": "base.py", "id": "backend_app_db_base_py" }, { "label": "DeclarativeBase", "file_type": "code", "source_file": "", "source_location": "", "community": 16, "norm_label": "declarativebase", "id": "declarativebase" }, { "label": "seeds.py", "file_type": "code", "source_file": "backend/app/db/seeds.py", "source_location": "L1", "community": 5, "norm_label": "seeds.py", "id": "backend_app_db_seeds_py" }, { "label": "seed_post_conditions()", "file_type": "code", "source_file": "backend/app/db/seeds.py", "source_location": "L7", "community": 5, "norm_label": "seed_post_conditions()", "id": "db_seeds_seed_post_conditions" }, { "label": "seed_building_type_config()", "file_type": "code", "source_file": "backend/app/db/seeds.py", "source_location": "L63", "community": 5, "norm_label": "seed_building_type_config()", "id": "db_seeds_seed_building_type_config" }, { "label": "seed_post_priority_config()", "file_type": "code", "source_file": "backend/app/db/seeds.py", "source_location": "L91", "community": 5, "norm_label": "seed_post_priority_config()", "id": "db_seeds_seed_post_priority_config" }, { "label": "Seed functions for reference/static data tables.", "file_type": "rationale", "source_file": "backend/app/db/seeds.py", "source_location": "L1", "community": 5, "norm_label": "seed functions for reference/static data tables.", "id": "db_seeds_rationale_1" }, { "label": "Insert all 36 PostCondition rows. Safe to re-run (ON CONFLICT DO NOTHING).", "file_type": "rationale", "source_file": "backend/app/db/seeds.py", "source_location": "L8", "community": 5, "norm_label": "insert all 36 postcondition rows. safe to re-run (on conflict do nothing).", "id": "db_seeds_rationale_8" }, { "label": "Insert all 5 BuildingTypeConfig rows. Safe to re-run (ON CONFLICT DO NOTHING).", "file_type": "rationale", "source_file": "backend/app/db/seeds.py", "source_location": "L64", "community": 5, "norm_label": "insert all 5 buildingtypeconfig rows. safe to re-run (on conflict do nothing).", "id": "db_seeds_rationale_64" }, { "label": "Insert all 18 PostPriorityConfig rows with default priority=2. Safe to re-r", "file_type": "rationale", "source_file": "backend/app/db/seeds.py", "source_location": "L92", "community": 5, "norm_label": "insert all 18 postpriorityconfig rows with default priority=2. safe to re-r", "id": "db_seeds_rationale_92" }, { "label": "session.py", "file_type": "code", "source_file": "backend/app/db/session.py", "source_location": "L1", "community": 74, "norm_label": "session.py", "id": "backend_app_db_session_py" }, { "label": "get_db()", "file_type": "code", "source_file": "backend/app/db/session.py", "source_location": "L12", "community": 74, "norm_label": "get_db()", "id": "db_session_get_db" }, { "label": "AuthenticatedUser", "file_type": "code", "source_file": "backend/app/dependencies/auth.py", "source_location": "L23", "community": 26, "norm_label": "authenticateduser", "id": "dependencies_auth_authenticateduser" }, { "label": "get_current_user()", "file_type": "code", "source_file": "backend/app/dependencies/auth.py", "source_location": "L33", "community": 26, "norm_label": "get_current_user()", "id": "dependencies_auth_get_current_user" }, { "label": "FastAPI dependency for request authentication. Checks three paths in order: 1.", "file_type": "rationale", "source_file": "backend/app/dependencies/auth.py", "source_location": "L1", "community": 26, "norm_label": "fastapi dependency for request authentication. checks three paths in order: 1.", "id": "dependencies_auth_rationale_1" }, { "label": "Represents the currently authenticated user or service principal.", "file_type": "rationale", "source_file": "backend/app/dependencies/auth.py", "source_location": "L24", "community": 26, "norm_label": "represents the currently authenticated user or service principal.", "id": "dependencies_auth_rationale_24" }, { "label": "Resolve the caller's identity from the incoming request. Tries three mechan", "file_type": "rationale", "source_file": "backend/app/dependencies/auth.py", "source_location": "L37", "community": 26, "norm_label": "resolve the caller's identity from the incoming request. tries three mechan", "id": "dependencies_auth_rationale_37" }, { "label": "Base", "file_type": "code", "source_file": "", "source_location": "", "community": 16, "norm_label": "base", "id": "base" }, { "label": "BuildingGroup", "file_type": "code", "source_file": "backend/app/models/building_group.py", "source_location": "L13", "community": 16, "norm_label": "buildinggroup", "id": "models_building_group_buildinggroup" }, { "label": "building_type_config.py", "file_type": "code", "source_file": "backend/app/models/building_type_config.py", "source_location": "L1", "community": 16, "norm_label": "building_type_config.py", "id": "backend_app_models_building_type_config_py" }, { "label": "enums.py", "file_type": "code", "source_file": "backend/app/models/enums.py", "source_location": "L1", "community": 52, "norm_label": "enums.py", "id": "backend_app_models_enums_py" }, { "label": "PowerLevel", "file_type": "code", "source_file": "backend/app/models/enums.py", "source_location": "L25", "community": 52, "norm_label": "powerlevel", "id": "models_enums_powerlevel" }, { "label": "NotificationBatchStatus", "file_type": "code", "source_file": "backend/app/models/enums.py", "source_location": "L33", "community": 34, "norm_label": "notificationbatchstatus", "id": "models_enums_notificationbatchstatus" }, { "label": "member.py", "file_type": "code", "source_file": "backend/app/models/member.py", "source_location": "L1", "community": 52, "norm_label": "member.py", "id": "backend_app_models_member_py" }, { "label": "member_post_preference.py", "file_type": "code", "source_file": "backend/app/models/member_post_preference.py", "source_location": "L1", "community": 99, "norm_label": "member_post_preference.py", "id": "backend_app_models_member_post_preference_py" }, { "label": "notification_batch_result.py", "file_type": "code", "source_file": "backend/app/models/notification_batch_result.py", "source_location": "L1", "community": 34, "norm_label": "notification_batch_result.py", "id": "backend_app_models_notification_batch_result_py" }, { "label": "position.py", "file_type": "code", "source_file": "backend/app/models/position.py", "source_location": "L1", "community": 16, "norm_label": "position.py", "id": "backend_app_models_position_py" }, { "label": "Position", "file_type": "code", "source_file": "backend/app/models/position.py", "source_location": "L14", "community": 16, "norm_label": "position", "id": "models_position_position" }, { "label": "post.py", "file_type": "code", "source_file": "backend/app/models/post.py", "source_location": "L1", "community": 8, "norm_label": "post.py", "id": "backend_app_models_post_py" }, { "label": "post_active_condition.py", "file_type": "code", "source_file": "backend/app/models/post_active_condition.py", "source_location": "L1", "community": 100, "norm_label": "post_active_condition.py", "id": "backend_app_models_post_active_condition_py" }, { "label": "siege.py", "file_type": "code", "source_file": "backend/app/models/siege.py", "source_location": "L1", "community": 16, "norm_label": "siege.py", "id": "backend_app_models_siege_py" }, { "label": "PositionBoardResponse", "file_type": "code", "source_file": "backend/app/schemas/board.py", "source_location": "L6", "community": 8, "norm_label": "positionboardresponse", "id": "schemas_board_positionboardresponse" }, { "label": "GroupBoardResponse", "file_type": "code", "source_file": "backend/app/schemas/board.py", "source_location": "L17", "community": 8, "norm_label": "groupboardresponse", "id": "schemas_board_groupboardresponse" }, { "label": "BuildingBoardResponse", "file_type": "code", "source_file": "backend/app/schemas/board.py", "source_location": "L25", "community": 8, "norm_label": "buildingboardresponse", "id": "schemas_board_buildingboardresponse" }, { "label": "PositionUpdate", "file_type": "code", "source_file": "backend/app/schemas/board.py", "source_location": "L40", "community": 8, "norm_label": "positionupdate", "id": "schemas_board_positionupdate" }, { "label": "BulkPositionUpdate", "file_type": "code", "source_file": "backend/app/schemas/board.py", "source_location": "L47", "community": 8, "norm_label": "bulkpositionupdate", "id": "schemas_board_bulkpositionupdate" }, { "label": "BuildingCreate", "file_type": "code", "source_file": "backend/app/schemas/building.py", "source_location": "L6", "community": 8, "norm_label": "buildingcreate", "id": "schemas_building_buildingcreate" }, { "label": "BuildingUpdate", "file_type": "code", "source_file": "backend/app/schemas/building.py", "source_location": "L12", "community": 0, "norm_label": "buildingupdate", "id": "schemas_building_buildingupdate" }, { "label": "GroupCreate", "file_type": "code", "source_file": "backend/app/schemas/building.py", "source_location": "L43", "community": 8, "norm_label": "groupcreate", "id": "schemas_building_groupcreate" }, { "label": "ChangelogStatusResponse", "file_type": "code", "source_file": "backend/app/schemas/changelog.py", "source_location": "L8", "community": 49, "norm_label": "changelogstatusresponse", "id": "schemas_changelog_changelogstatusresponse" }, { "label": "Response schemas for the changelog endpoints.", "file_type": "rationale", "source_file": "backend/app/schemas/changelog.py", "source_location": "L1", "community": 49, "norm_label": "response schemas for the changelog endpoints.", "id": "schemas_changelog_rationale_1" }, { "label": "Response shape for both GET /changelog/status and POST /changelog/mark-seen.", "file_type": "rationale", "source_file": "backend/app/schemas/changelog.py", "source_location": "L9", "community": 49, "norm_label": "response shape for both get /changelog/status and post /changelog/mark-seen.", "id": "schemas_changelog_rationale_9" }, { "label": "common.py", "file_type": "code", "source_file": "backend/app/schemas/common.py", "source_location": "L1", "community": 8, "norm_label": "common.py", "id": "backend_app_schemas_common_py" }, { "label": "ErrorResponse", "file_type": "code", "source_file": "backend/app/schemas/common.py", "source_location": "L4", "community": 8, "norm_label": "errorresponse", "id": "schemas_common_errorresponse" }, { "label": "MemberBase", "file_type": "code", "source_file": "backend/app/schemas/member.py", "source_location": "L8", "community": 52, "norm_label": "memberbase", "id": "schemas_member_memberbase" }, { "label": "MemberCreate", "file_type": "code", "source_file": "backend/app/schemas/member.py", "source_location": "L15", "community": 52, "norm_label": "membercreate", "id": "schemas_member_membercreate" }, { "label": "MemberUpdate", "file_type": "code", "source_file": "backend/app/schemas/member.py", "source_location": "L19", "community": 52, "norm_label": "memberupdate", "id": "schemas_member_memberupdate" }, { "label": "MemberResponse", "file_type": "code", "source_file": "backend/app/schemas/member.py", "source_location": "L27", "community": 52, "norm_label": "memberresponse", "id": "schemas_member_memberresponse" }, { "label": "MemberPreferencesUpdate", "file_type": "code", "source_file": "backend/app/schemas/member.py", "source_location": "L35", "community": 52, "norm_label": "memberpreferencesupdate", "id": "schemas_member_memberpreferencesupdate" }, { "label": "SyncApply", "file_type": "code", "source_file": "backend/app/schemas/member.py", "source_location": "L59", "community": 13, "norm_label": "syncapply", "id": "schemas_member_syncapply" }, { "label": "SyncApplyResponse", "file_type": "code", "source_file": "backend/app/schemas/member.py", "source_location": "L65", "community": 13, "norm_label": "syncapplyresponse", "id": "schemas_member_syncapplyresponse" }, { "label": "PostResponse", "file_type": "code", "source_file": "backend/app/schemas/post.py", "source_location": "L6", "community": 8, "norm_label": "postresponse", "id": "schemas_post_postresponse" }, { "label": "PostUpdate", "file_type": "code", "source_file": "backend/app/schemas/post.py", "source_location": "L17", "community": 8, "norm_label": "postupdate", "id": "schemas_post_postupdate" }, { "label": "PostConditionsUpdate", "file_type": "code", "source_file": "backend/app/schemas/post.py", "source_location": "L22", "community": 8, "norm_label": "postconditionsupdate", "id": "schemas_post_postconditionsupdate" }, { "label": "PostConditionResponse", "file_type": "code", "source_file": "backend/app/schemas/post_condition.py", "source_location": "L4", "community": 8, "norm_label": "postconditionresponse", "id": "schemas_post_condition_postconditionresponse" }, { "label": "PostSuggestionApplyRequest", "file_type": "code", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L79", "community": 32, "norm_label": "postsuggestionapplyrequest", "id": "schemas_post_suggestions_postsuggestionapplyrequest" }, { "label": "StaleEntry", "file_type": "code", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L91", "community": 24, "norm_label": "staleentry", "id": "schemas_post_suggestions_staleentry" }, { "label": "Pydantic schemas for the Suggest Post Assignments feature. These schemas define", "file_type": "rationale", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L1", "community": 24, "norm_label": "pydantic schemas for the suggest post assignments feature. these schemas define", "id": "schemas_post_suggestions_rationale_1" }, { "label": "A single post assignment suggestion produced by the greedy algorithm. Attri", "file_type": "rationale", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L13", "community": 8, "norm_label": "a single post assignment suggestion produced by the greedy algorithm. attri", "id": "schemas_post_suggestions_rationale_13" }, { "label": "The full preview result returned by POST /post-suggestions. Attributes:", "file_type": "rationale", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L66", "community": 36, "norm_label": "the full preview result returned by post /post-suggestions. attributes:", "id": "schemas_post_suggestions_rationale_66" }, { "label": "Request body for POST /post-suggestions/apply. Attributes: apply_po", "file_type": "rationale", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L80", "community": 32, "norm_label": "request body for post /post-suggestions/apply. attributes: apply_po", "id": "schemas_post_suggestions_rationale_80" }, { "label": "A single stale-state violation detected during apply revalidation. Attribut", "file_type": "rationale", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L92", "community": 24, "norm_label": "a single stale-state violation detected during apply revalidation. attribut", "id": "schemas_post_suggestions_rationale_92" }, { "label": "Response body for a successful POST /post-suggestions/apply. Attributes:", "file_type": "rationale", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L117", "community": 8, "norm_label": "response body for a successful post /post-suggestions/apply. attributes:", "id": "schemas_post_suggestions_rationale_117" }, { "label": "SiegeCreate", "file_type": "code", "source_file": "backend/app/schemas/siege.py", "source_location": "L8", "community": 16, "norm_label": "siegecreate", "id": "schemas_siege_siegecreate" }, { "label": "SiegeUpdate", "file_type": "code", "source_file": "backend/app/schemas/siege.py", "source_location": "L12", "community": 16, "norm_label": "siegeupdate", "id": "schemas_siege_siegeupdate" }, { "label": "SiegeResponse", "file_type": "code", "source_file": "backend/app/schemas/siege.py", "source_location": "L16", "community": 16, "norm_label": "siegeresponse", "id": "schemas_siege_siegeresponse" }, { "label": "SiegeMemberResponse", "file_type": "code", "source_file": "backend/app/schemas/siege_member.py", "source_location": "L6", "community": 8, "norm_label": "siegememberresponse", "id": "schemas_siege_member_siegememberresponse" }, { "label": "resolve_member_fields()", "file_type": "code", "source_file": "backend/app/schemas/siege_member.py", "source_location": "L19", "community": 3, "norm_label": "resolve_member_fields()", "id": "schemas_siege_member_resolve_member_fields" }, { "label": "SiegeMemberUpdate", "file_type": "code", "source_file": "backend/app/schemas/siege_member.py", "source_location": "L27", "community": 8, "norm_label": "siegememberupdate", "id": "schemas_siege_member_siegememberupdate" }, { "label": "VersionResponse", "file_type": "code", "source_file": "backend/app/schemas/version.py", "source_location": "L4", "community": 40, "norm_label": "versionresponse", "id": "schemas_version_versionresponse" }, { "label": "_build_preview()", "file_type": "code", "source_file": "backend/app/services/attack_day.py", "source_location": "L114", "community": 24, "norm_label": "_build_preview()", "id": "services_attack_day_build_preview" }, { "label": "_now_utc()", "file_type": "code", "source_file": "backend/app/services/autofill.py", "source_location": "L23", "community": 24, "norm_label": "_now_utc()", "id": "services_autofill_now_utc" }, { "label": "_get_siege_for_position()", "file_type": "code", "source_file": "backend/app/services/board.py", "source_location": "L89", "community": 8, "norm_label": "_get_siege_for_position()", "id": "services_board_get_siege_for_position" }, { "label": "_validate_position_state()", "file_type": "code", "source_file": "backend/app/services/board.py", "source_location": "L97", "community": 39, "norm_label": "_validate_position_state()", "id": "services_board_validate_position_state" }, { "label": "_validate_member_active()", "file_type": "code", "source_file": "backend/app/services/board.py", "source_location": "L112", "community": 8, "norm_label": "_validate_member_active()", "id": "services_board_validate_member_active" }, { "label": "Return the full nested board structure for a siege. Raises 404 if the siege", "file_type": "rationale", "source_file": "backend/app/services/board.py", "source_location": "L16", "community": 8, "norm_label": "return the full nested board structure for a siege. raises 404 if the siege", "id": "services_board_rationale_16" }, { "label": "Validate the logical consistency of position flag combinations.", "file_type": "rationale", "source_file": "backend/app/services/board.py", "source_location": "L98", "community": 39, "norm_label": "validate the logical consistency of position flag combinations.", "id": "services_board_rationale_98" }, { "label": "Update a single position's assignment. Raises: 404 if position not", "file_type": "rationale", "source_file": "backend/app/services/board.py", "source_location": "L123", "community": 39, "norm_label": "update a single position's assignment. raises: 404 if position not", "id": "services_board_rationale_123" }, { "label": "Apply multiple position updates in a single transaction. Each update dict m", "file_type": "rationale", "source_file": "backend/app/services/board.py", "source_location": "L172", "community": 39, "norm_label": "apply multiple position updates in a single transaction. each update dict m", "id": "services_board_rationale_172" }, { "label": "BotClient", "file_type": "code", "source_file": "backend/app/services/bot_client.py", "source_location": "L8", "community": 61, "norm_label": "botclient", "id": "services_bot_client_botclient" }, { "label": "._make_client()", "file_type": "code", "source_file": "backend/app/services/bot_client.py", "source_location": "L11", "community": 61, "norm_label": "._make_client()", "id": "services_bot_client_botclient_make_client" }, { "label": "HTTP client for the Discord bot sidecar API.", "file_type": "rationale", "source_file": "backend/app/services/bot_client.py", "source_location": "L1", "community": 61, "norm_label": "http client for the discord bot sidecar api.", "id": "services_bot_client_rationale_1" }, { "label": "Send DM via bot. Returns True on success, False on error.", "file_type": "rationale", "source_file": "backend/app/services/bot_client.py", "source_location": "L19", "community": 61, "norm_label": "send dm via bot. returns true on success, false on error.", "id": "services_bot_client_rationale_19" }, { "label": "Post text to channel. Returns True on success, False on error.", "file_type": "rationale", "source_file": "backend/app/services/bot_client.py", "source_location": "L32", "community": 37, "norm_label": "post text to channel. returns true on success, false on error.", "id": "services_bot_client_rationale_32" }, { "label": "Post image to channel. Returns the CDN URL on success, None on error.", "file_type": "rationale", "source_file": "backend/app/services/bot_client.py", "source_location": "L45", "community": 37, "norm_label": "post image to channel. returns the cdn url on success, none on error.", "id": "services_bot_client_rationale_45" }, { "label": "Check guild membership via bot sidecar. Returns the member dict (includi", "file_type": "rationale", "source_file": "backend/app/services/bot_client.py", "source_location": "L72", "community": 57, "norm_label": "check guild membership via bot sidecar. returns the member dict (includi", "id": "services_bot_client_rationale_72" }, { "label": "_rebuild_groups_for_level()", "file_type": "code", "source_file": "backend/app/services/buildings.py", "source_location": "L17", "community": 45, "norm_label": "_rebuild_groups_for_level()", "id": "services_buildings_rebuild_groups_for_level" }, { "label": "_get_building_type_config()", "file_type": "code", "source_file": "backend/app/services/buildings.py", "source_location": "L114", "community": 45, "norm_label": "_get_building_type_config()", "id": "services_buildings_get_building_type_config" }, { "label": "_require_planning_or_not_locked()", "file_type": "code", "source_file": "backend/app/services/buildings.py", "source_location": "L141", "community": 45, "norm_label": "_require_planning_or_not_locked()", "id": "services_buildings_require_planning_or_not_locked" }, { "label": "_create_groups_and_positions()", "file_type": "code", "source_file": "backend/app/services/buildings.py", "source_location": "L150", "community": 45, "norm_label": "_create_groups_and_positions()", "id": "services_buildings_create_groups_and_positions" }, { "label": "Rebuild groups and positions so they match the level-appropriate configuration.", "file_type": "rationale", "source_file": "backend/app/services/buildings.py", "source_location": "L23", "community": 45, "norm_label": "rebuild groups and positions so they match the level-appropriate configuration.", "id": "services_buildings_rationale_23" }, { "label": "Raise 400 if the siege is locked for layout changes.", "file_type": "rationale", "source_file": "backend/app/services/buildings.py", "source_location": "L142", "community": 45, "norm_label": "raise 400 if the siege is locked for layout changes.", "id": "services_buildings_rationale_142" }, { "label": "Auto-create BuildingGroups and Positions from config.", "file_type": "rationale", "source_file": "backend/app/services/buildings.py", "source_location": "L156", "community": 45, "norm_label": "auto-create buildinggroups and positions from config.", "id": "services_buildings_rationale_156" }, { "label": "building_capacity.py", "file_type": "code", "source_file": "backend/app/services/building_capacity.py", "source_location": "L1", "community": 30, "norm_label": "building_capacity.py", "id": "backend_app_services_building_capacity_py" }, { "label": "get_team_count()", "file_type": "code", "source_file": "backend/app/services/building_capacity.py", "source_location": "L13", "community": 30, "norm_label": "get_team_count()", "id": "services_building_capacity_get_team_count" }, { "label": "Return the theoretical total team slots for a building type at a given level.", "file_type": "rationale", "source_file": "backend/app/services/building_capacity.py", "source_location": "L14", "community": 30, "norm_label": "return the theoretical total team slots for a building type at a given level.", "id": "services_building_capacity_rationale_14" }, { "label": "_load_assignments()", "file_type": "code", "source_file": "backend/app/services/comparison.py", "source_location": "L13", "community": 25, "norm_label": "_load_assignments()", "id": "services_comparison_load_assignments" }, { "label": "_load_member_names()", "file_type": "code", "source_file": "backend/app/services/comparison.py", "source_location": "L45", "community": 25, "norm_label": "_load_member_names()", "id": "services_comparison_load_member_names" }, { "label": "get_most_recent_completed()", "file_type": "code", "source_file": "backend/app/services/comparison.py", "source_location": "L52", "community": 25, "norm_label": "get_most_recent_completed()", "id": "services_comparison_get_most_recent_completed" }, { "label": "Return {member_id: [PositionKey, ...]} for non-reserve, non-disabled assigned po", "file_type": "rationale", "source_file": "backend/app/services/comparison.py", "source_location": "L14", "community": 25, "norm_label": "return {member_id: [positionkey, ...]} for non-reserve, non-disabled assigned po", "id": "services_comparison_rationale_14" }, { "label": "Service logic for Discord guild member \u2192 clan member matching.", "file_type": "rationale", "source_file": "backend/app/services/discord_sync.py", "source_location": "L1", "community": 13, "norm_label": "service logic for discord guild member \u2192 clan member matching.", "id": "services_discord_sync_rationale_1" }, { "label": "Return proposed matches between Discord guild members and clan members. Mat", "file_type": "rationale", "source_file": "backend/app/services/discord_sync.py", "source_location": "L12", "community": 13, "norm_label": "return proposed matches between discord guild members and clan members. mat", "id": "services_discord_sync_rationale_12" }, { "label": "Apply accepted sync matches, writing discord_username and discord_id. Unkno", "file_type": "rationale", "source_file": "backend/app/services/discord_sync.py", "source_location": "L153", "community": 13, "norm_label": "apply accepted sync matches, writing discord_username and discord_id. unkno", "id": "services_discord_sync_rationale_153" }, { "label": "image_gen.py", "file_type": "code", "source_file": "backend/app/services/image_gen.py", "source_location": "L1", "community": 2, "norm_label": "image_gen.py", "id": "backend_app_services_image_gen_py" }, { "label": "SiegeMemberWithName", "file_type": "code", "source_file": "backend/app/services/image_gen.py", "source_location": "L14", "community": 34, "norm_label": "siegememberwithname", "id": "services_image_gen_siegememberwithname" }, { "label": "_build_assignments_html()", "file_type": "code", "source_file": "backend/app/services/image_gen.py", "source_location": "L61", "community": 2, "norm_label": "_build_assignments_html()", "id": "services_image_gen_build_assignments_html" }, { "label": "_build_reserves_html()", "file_type": "code", "source_file": "backend/app/services/image_gen.py", "source_location": "L233", "community": 2, "norm_label": "_build_reserves_html()", "id": "services_image_gen_build_reserves_html" }, { "label": "_render_html_to_png()", "file_type": "code", "source_file": "backend/app/services/image_gen.py", "source_location": "L331", "community": 2, "norm_label": "_render_html_to_png()", "id": "services_image_gen_render_html_to_png" }, { "label": "generate_assignments_image()", "file_type": "code", "source_file": "backend/app/services/image_gen.py", "source_location": "L350", "community": 2, "norm_label": "generate_assignments_image()", "id": "services_image_gen_generate_assignments_image" }, { "label": "generate_reserves_image()", "file_type": "code", "source_file": "backend/app/services/image_gen.py", "source_location": "L360", "community": 2, "norm_label": "generate_reserves_image()", "id": "services_image_gen_generate_reserves_image" }, { "label": "Image generation service \u2014 renders HTML/CSS to PNG via Playwright.", "file_type": "rationale", "source_file": "backend/app/services/image_gen.py", "source_location": "L1", "community": 2, "norm_label": "image generation service \u2014 renders html/css to png via playwright.", "id": "services_image_gen_rationale_1" }, { "label": "Build the full assignments board HTML string. Args: board: Validate", "file_type": "rationale", "source_file": "backend/app/services/image_gen.py", "source_location": "L66", "community": 2, "norm_label": "build the full assignments board html string. args: board: validate", "id": "services_image_gen_rationale_66" }, { "label": "Build the reserves/members list HTML string. Args: members: Siege m", "file_type": "rationale", "source_file": "backend/app/services/image_gen.py", "source_location": "L237", "community": 2, "norm_label": "build the reserves/members list html string. args: members: siege m", "id": "services_image_gen_rationale_237" }, { "label": "Render an HTML string to PNG bytes using headless Chromium.", "file_type": "rationale", "source_file": "backend/app/services/image_gen.py", "source_location": "L332", "community": 2, "norm_label": "render an html string to png bytes using headless chromium.", "id": "services_image_gen_rationale_332" }, { "label": "Render the assignments board as a PNG. Returns raw PNG bytes.", "file_type": "rationale", "source_file": "backend/app/services/image_gen.py", "source_location": "L355", "community": 2, "norm_label": "render the assignments board as a png. returns raw png bytes.", "id": "services_image_gen_rationale_355" }, { "label": "Render the members/reserves list as a PNG. Returns raw PNG bytes.", "file_type": "rationale", "source_file": "backend/app/services/image_gen.py", "source_location": "L364", "community": 2, "norm_label": "render the members/reserves list as a png. returns raw png bytes.", "id": "services_image_gen_rationale_364" }, { "label": "Transition a planning siege to active status. Raises: 404 if siege", "file_type": "rationale", "source_file": "backend/app/services/lifecycle.py", "source_location": "L18", "community": 3, "norm_label": "transition a planning siege to active status. raises: 404 if siege", "id": "services_lifecycle_rationale_18" }, { "label": "Transition an active siege to complete status. Raises: 404 if siege", "file_type": "rationale", "source_file": "backend/app/services/lifecycle.py", "source_location": "L62", "community": 3, "norm_label": "transition an active siege to complete status. raises: 404 if siege", "id": "services_lifecycle_rationale_62" }, { "label": "Transition a completed siege back to planning status. Raises: 404 i", "file_type": "rationale", "source_file": "backend/app/services/lifecycle.py", "source_location": "L86", "community": 3, "norm_label": "transition a completed siege back to planning status. raises: 404 i", "id": "services_lifecycle_rationale_86" }, { "label": "Deep-copy a siege into a new planning siege. Rules: - New siege: same d", "file_type": "rationale", "source_file": "backend/app/services/lifecycle.py", "source_location": "L110", "community": 3, "norm_label": "deep-copy a siege into a new planning siege. rules: - new siege: same d", "id": "services_lifecycle_rationale_110" }, { "label": "deactivate_member()", "file_type": "code", "source_file": "backend/app/services/members.py", "source_location": "L81", "community": 57, "norm_label": "deactivate_member()", "id": "services_members_deactivate_member" }, { "label": "notification_message.py", "file_type": "code", "source_file": "backend/app/services/notification_message.py", "source_location": "L1", "community": 4, "norm_label": "notification_message.py", "id": "backend_app_services_notification_message_py" }, { "label": "PositionInfo", "file_type": "code", "source_file": "backend/app/services/notification_message.py", "source_location": "L60", "community": 4, "norm_label": "positioninfo", "id": "services_notification_message_positioninfo" }, { "label": "_position_sort_key()", "file_type": "code", "source_file": "backend/app/services/notification_message.py", "source_location": "L74", "community": 4, "norm_label": "_position_sort_key()", "id": "services_notification_message_position_sort_key" }, { "label": "_position_label()", "file_type": "code", "source_file": "backend/app/services/notification_message.py", "source_location": "L84", "community": 4, "norm_label": "_position_label()", "id": "services_notification_message_position_label" }, { "label": "_positions_to_key_set()", "file_type": "code", "source_file": "backend/app/services/notification_message.py", "source_location": "L110", "community": 4, "norm_label": "_positions_to_key_set()", "id": "services_notification_message_positions_to_key_set" }, { "label": "_positions_from_keys()", "file_type": "code", "source_file": "backend/app/services/notification_message.py", "source_location": "L117", "community": 4, "norm_label": "_positions_from_keys()", "id": "services_notification_message_positions_from_keys" }, { "label": "_build_section()", "file_type": "code", "source_file": "backend/app/services/notification_message.py", "source_location": "L126", "community": 4, "norm_label": "_build_section()", "id": "services_notification_message_build_section" }, { "label": "build_member_notification_message()", "file_type": "code", "source_file": "backend/app/services/notification_message.py", "source_location": "L153", "community": 4, "norm_label": "build_member_notification_message()", "id": "services_notification_message_build_member_notification_message" }, { "label": "Build rich per-member Discord DM messages for siege assignment notifications.", "file_type": "rationale", "source_file": "backend/app/services/notification_message.py", "source_location": "L1", "community": 4, "norm_label": "build rich per-member discord dm messages for siege assignment notifications.", "id": "services_notification_message_rationale_1" }, { "label": "Minimal description of a single assigned position.", "file_type": "rationale", "source_file": "backend/app/services/notification_message.py", "source_location": "L61", "community": 4, "norm_label": "minimal description of a single assigned position.", "id": "services_notification_message_rationale_61" }, { "label": "Return a sortable tuple for consistent ordering within a section. Sorts by:", "file_type": "rationale", "source_file": "backend/app/services/notification_message.py", "source_location": "L75", "community": 4, "norm_label": "return a sortable tuple for consistent ordering within a section. sorts by:", "id": "services_notification_message_rationale_75" }, { "label": "Format a human-readable label for a position. Posts always use the short ``", "file_type": "rationale", "source_file": "backend/app/services/notification_message.py", "source_location": "L85", "community": 4, "norm_label": "format a human-readable label for a position. posts always use the short ``", "id": "services_notification_message_rationale_85" }, { "label": "Convert a list of PositionInfo objects to a set of comparable tuples.", "file_type": "rationale", "source_file": "backend/app/services/notification_message.py", "source_location": "L111", "community": 4, "norm_label": "convert a list of positioninfo objects to a set of comparable tuples.", "id": "services_notification_message_rationale_111" }, { "label": "Filter ``positions`` to those whose key is in ``keys``, preserving PositionInfo", "file_type": "rationale", "source_file": "backend/app/services/notification_message.py", "source_location": "L118", "community": 4, "norm_label": "filter ``positions`` to those whose key is in ``keys``, preserving positioninfo", "id": "services_notification_message_rationale_118" }, { "label": "Render one diff section as a header line followed by plain position lines.", "file_type": "rationale", "source_file": "backend/app/services/notification_message.py", "source_location": "L131", "community": 4, "norm_label": "render one diff section as a header line followed by plain position lines.", "id": "services_notification_message_rationale_131" }, { "label": "Build a rich Discord DM message for a single siege member. Args: si", "file_type": "rationale", "source_file": "backend/app/services/notification_message.py", "source_location": "L161", "community": 4, "norm_label": "build a rich discord dm message for a single siege member. args: si", "id": "services_notification_message_rationale_161" }, { "label": "_get_siege_or_404()", "file_type": "code", "source_file": "backend/app/services/posts.py", "source_location": "L15", "community": 39, "norm_label": "_get_siege_or_404()", "id": "services_posts_get_siege_or_404" }, { "label": "_get_post_for_siege_or_404()", "file_type": "code", "source_file": "backend/app/services/posts.py", "source_location": "L23", "community": 39, "norm_label": "_get_post_for_siege_or_404()", "id": "services_posts_get_post_for_siege_or_404" }, { "label": "Return all Post records for a siege with active_conditions loaded. Raises:", "file_type": "rationale", "source_file": "backend/app/services/posts.py", "source_location": "L37", "community": 39, "norm_label": "return all post records for a siege with active_conditions loaded. raises:", "id": "services_posts_rationale_37" }, { "label": "Update a post's priority and/or description. Raises: 404 if post no", "file_type": "rationale", "source_file": "backend/app/services/posts.py", "source_location": "L55", "community": 39, "norm_label": "update a post's priority and/or description. raises: 404 if post no", "id": "services_posts_rationale_55" }, { "label": "Replace all active conditions on a post. Raises: 404 if post not fo", "file_type": "rationale", "source_file": "backend/app/services/posts.py", "source_location": "L79", "community": 39, "norm_label": "replace all active conditions on a post. raises: 404 if post not fo", "id": "services_posts_rationale_79" }, { "label": "_get_target_position()", "file_type": "code", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L517", "community": 24, "norm_label": "_get_target_position()", "id": "services_post_suggestions_get_target_position" }, { "label": "_null_entry()", "file_type": "code", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L537", "community": 24, "norm_label": "_null_entry()", "id": "services_post_suggestions_null_entry" }, { "label": "Service implementing the Suggest Post Assignments feature. Public API: prev", "file_type": "rationale", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L1", "community": 24, "norm_label": "service implementing the suggest post assignments feature. public api: prev", "id": "services_post_suggestions_rationale_1" }, { "label": "Return the current UTC datetime (naive, matching DB TIMESTAMP columns).", "file_type": "rationale", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L71", "community": 24, "norm_label": "return the current utc datetime (naive, matching db timestamp columns).", "id": "services_post_suggestions_rationale_71" }, { "label": "Generate a greedy post assignment suggestion and persist it as a preview. T", "file_type": "rationale", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L79", "community": 24, "norm_label": "generate a greedy post assignment suggestion and persist it as a preview. t", "id": "services_post_suggestions_rationale_79" }, { "label": "Apply a subset of a stored post-suggestion preview atomically. The whole se", "file_type": "rationale", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L340", "community": 24, "norm_label": "apply a subset of a stored post-suggestion preview atomically. the whole se", "id": "services_post_suggestions_rationale_340" }, { "label": "Return the single target position from a post building, or None. Posts have", "file_type": "rationale", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L518", "community": 24, "norm_label": "return the single target position from a post building, or none. posts have", "id": "services_post_suggestions_rationale_518" }, { "label": "Build a PostSuggestionEntry with no suggestion (skipped post). Args:", "file_type": "rationale", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L546", "community": 24, "norm_label": "build a postsuggestionentry with no suggestion (skipped post). args:", "id": "services_post_suggestions_rationale_546" }, { "label": "# NOTE: _validate_position_state() from bulk_update_positions is NOT", "file_type": "rationale", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L418", "community": 24, "norm_label": "# note: _validate_position_state() from bulk_update_positions is not", "id": "services_post_suggestions_rationale_418" }, { "label": "# NOTE: session.refresh(pos) is not called post-write because the apply", "file_type": "rationale", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L489", "community": 24, "norm_label": "# note: session.refresh(pos) is not called post-write because the apply", "id": "services_post_suggestions_rationale_489" }, { "label": "scrolls_per_player()", "file_type": "code", "source_file": "backend/app/services/sieges.py", "source_location": "L19", "community": 42, "norm_label": "scrolls_per_player()", "id": "services_sieges_scrolls_per_player" }, { "label": "compute_scroll_count()", "file_type": "code", "source_file": "backend/app/services/sieges.py", "source_location": "L28", "community": 30, "norm_label": "compute_scroll_count()", "id": "services_sieges_compute_scroll_count" }, { "label": "Return the per-player scroll limit for a siege. Matches the UI formula: 4 s", "file_type": "rationale", "source_file": "backend/app/services/sieges.py", "source_location": "L20", "community": 42, "norm_label": "return the per-player scroll limit for a siege. matches the ui formula: 4 s", "id": "services_sieges_rationale_20" }, { "label": "Compute total scroll count from the theoretical capacity of every building.", "file_type": "rationale", "source_file": "backend/app/services/sieges.py", "source_location": "L29", "community": 30, "norm_label": "compute total scroll count from the theoretical capacity of every building.", "id": "services_sieges_rationale_29" }, { "label": "seed.py", "file_type": "code", "source_file": "backend/scripts/seed.py", "source_location": "L1", "community": 5, "norm_label": "seed.py", "id": "backend_scripts_seed_py" }, { "label": "seed_demo.py", "file_type": "code", "source_file": "backend/scripts/seed_demo.py", "source_location": "L1", "community": 5, "norm_label": "seed_demo.py", "id": "backend_scripts_seed_demo_py" }, { "label": "get_or_create_members()", "file_type": "code", "source_file": "backend/scripts/seed_demo.py", "source_location": "L95", "community": 21, "norm_label": "get_or_create_members()", "id": "scripts_seed_demo_get_or_create_members" }, { "label": "get_or_create_demo_siege()", "file_type": "code", "source_file": "backend/scripts/seed_demo.py", "source_location": "L114", "community": 5, "norm_label": "get_or_create_demo_siege()", "id": "scripts_seed_demo_get_or_create_demo_siege" }, { "label": "seed_buildings_and_positions()", "file_type": "code", "source_file": "backend/scripts/seed_demo.py", "source_location": "L133", "community": 5, "norm_label": "seed_buildings_and_positions()", "id": "scripts_seed_demo_seed_buildings_and_positions" }, { "label": "get_or_create_second_siege()", "file_type": "code", "source_file": "backend/scripts/seed_demo.py", "source_location": "L203", "community": 5, "norm_label": "get_or_create_second_siege()", "id": "scripts_seed_demo_get_or_create_second_siege" }, { "label": "seed_siege_members()", "file_type": "code", "source_file": "backend/scripts/seed_demo.py", "source_location": "L220", "community": 5, "norm_label": "seed_siege_members()", "id": "scripts_seed_demo_seed_siege_members" }, { "label": "Return existing demo members or create them.", "file_type": "rationale", "source_file": "backend/scripts/seed_demo.py", "source_location": "L96", "community": 21, "norm_label": "return existing demo members or create them.", "id": "scripts_seed_demo_rationale_96" }, { "label": "Return the existing demo siege or create a new one.", "file_type": "rationale", "source_file": "backend/scripts/seed_demo.py", "source_location": "L115", "community": 5, "norm_label": "return the existing demo siege or create a new one.", "id": "scripts_seed_demo_rationale_115" }, { "label": "Create buildings, groups, and positions; assign members round-robin. member", "file_type": "rationale", "source_file": "backend/scripts/seed_demo.py", "source_location": "L139", "community": 5, "norm_label": "create buildings, groups, and positions; assign members round-robin. member", "id": "scripts_seed_demo_rationale_139" }, { "label": "Return the existing planning siege or create one one week after the first.", "file_type": "rationale", "source_file": "backend/scripts/seed_demo.py", "source_location": "L204", "community": 5, "norm_label": "return the existing planning siege or create one one week after the first.", "id": "scripts_seed_demo_rationale_204" }, { "label": "Enrol members in the siege with attack day assignments.", "file_type": "rationale", "source_file": "backend/scripts/seed_demo.py", "source_location": "L225", "community": 5, "norm_label": "enrol members in the siege with attack day assignments.", "id": "scripts_seed_demo_rationale_225" }, { "label": "disable_auth_for_tests()", "file_type": "code", "source_file": "backend/tests/conftest.py", "source_location": "L30", "community": 51, "norm_label": "disable_auth_for_tests()", "id": "tests_conftest_disable_auth_for_tests" }, { "label": "Shared pytest configuration for backend tests. Sets required environment variab", "file_type": "rationale", "source_file": "backend/tests/conftest.py", "source_location": "L1", "community": 51, "norm_label": "shared pytest configuration for backend tests. sets required environment variab", "id": "tests_conftest_rationale_1" }, { "label": "Bypass auth middleware for all tests by default. Individual tests that exer", "file_type": "rationale", "source_file": "backend/tests/conftest.py", "source_location": "L31", "community": 51, "norm_label": "bypass auth middleware for all tests by default. individual tests that exer", "id": "tests_conftest_rationale_31" }, { "label": "test_attack_day.py", "file_type": "code", "source_file": "backend/tests/test_attack_day.py", "source_location": "L1", "community": 11, "norm_label": "test_attack_day.py", "id": "backend_tests_test_attack_day_py" }, { "label": "test_preview_attack_day_endpoint_200()", "file_type": "code", "source_file": "backend/tests/test_attack_day.py", "source_location": "L62", "community": 11, "norm_label": "test_preview_attack_day_endpoint_200()", "id": "tests_test_attack_day_test_preview_attack_day_endpoint_200" }, { "label": "test_apply_attack_day_endpoint_200()", "file_type": "code", "source_file": "backend/tests/test_attack_day.py", "source_location": "L80", "community": 11, "norm_label": "test_apply_attack_day_endpoint_200()", "id": "tests_test_attack_day_test_apply_attack_day_endpoint_200" }, { "label": "_session_for_siege()", "file_type": "code", "source_file": "backend/tests/test_attack_day.py", "source_location": "L100", "community": 11, "norm_label": "_session_for_siege()", "id": "tests_test_attack_day_session_for_siege" }, { "label": "test_heavy_hitters_and_advanced_always_day2()", "file_type": "code", "source_file": "backend/tests/test_attack_day.py", "source_location": "L113", "community": 11, "norm_label": "test_heavy_hitters_and_advanced_always_day2()", "id": "tests_test_attack_day_test_heavy_hitters_and_advanced_always_day2" }, { "label": "test_medium_promoted_when_under_10()", "file_type": "code", "source_file": "backend/tests/test_attack_day.py", "source_location": "L129", "community": 11, "norm_label": "test_medium_promoted_when_under_10()", "id": "tests_test_attack_day_test_medium_promoted_when_under_10" }, { "label": "test_novice_promoted_when_still_under_10()", "file_type": "code", "source_file": "backend/tests/test_attack_day.py", "source_location": "L152", "community": 11, "norm_label": "test_novice_promoted_when_still_under_10()", "id": "tests_test_attack_day_test_novice_promoted_when_still_under_10" }, { "label": "test_pinned_members_count_toward_threshold()", "file_type": "code", "source_file": "backend/tests/test_attack_day.py", "source_location": "L182", "community": 11, "norm_label": "test_pinned_members_count_toward_threshold()", "id": "tests_test_attack_day_test_pinned_members_count_toward_threshold" }, { "label": "test_overridden_members_not_changed()", "file_type": "code", "source_file": "backend/tests/test_attack_day.py", "source_location": "L211", "community": 11, "norm_label": "test_overridden_members_not_changed()", "id": "tests_test_attack_day_test_overridden_members_not_changed" }, { "label": "test_boundary_at_exactly_10()", "file_type": "code", "source_file": "backend/tests/test_attack_day.py", "source_location": "L227", "community": 11, "norm_label": "test_boundary_at_exactly_10()", "id": "tests_test_attack_day_test_boundary_at_exactly_10" }, { "label": "test_apply_attack_day_commits()", "file_type": "code", "source_file": "backend/tests/test_attack_day.py", "source_location": "L245", "community": 11, "norm_label": "test_apply_attack_day_commits()", "id": "tests_test_attack_day_test_apply_attack_day_commits" }, { "label": "test_apply_attack_day_409_no_preview()", "file_type": "code", "source_file": "backend/tests/test_attack_day.py", "source_location": "L276", "community": 11, "norm_label": "test_apply_attack_day_409_no_preview()", "id": "tests_test_attack_day_test_apply_attack_day_409_no_preview" }, { "label": "test_apply_attack_day_409_expired()", "file_type": "code", "source_file": "backend/tests/test_attack_day.py", "source_location": "L299", "community": 11, "norm_label": "test_apply_attack_day_409_expired()", "id": "tests_test_attack_day_test_apply_attack_day_409_expired" }, { "label": "Tests for the attack day auto-assign algorithm.", "file_type": "rationale", "source_file": "backend/tests/test_attack_day.py", "source_location": "L1", "community": 11, "norm_label": "tests for the attack day auto-assign algorithm.", "id": "tests_test_attack_day_rationale_1" }, { "label": "Heavy hitters and advanced always get Day 2 regardless of threshold.", "file_type": "rationale", "source_file": "backend/tests/test_attack_day.py", "source_location": "L114", "community": 11, "norm_label": "heavy hitters and advanced always get day 2 regardless of threshold.", "id": "tests_test_attack_day_rationale_114" }, { "label": "Medium members are promoted to Day 2 (by power desc) when count < 10.", "file_type": "rationale", "source_file": "backend/tests/test_attack_day.py", "source_location": "L130", "community": 11, "norm_label": "medium members are promoted to day 2 (by power desc) when count < 10.", "id": "tests_test_attack_day_rationale_130" }, { "label": "Novice promoted by power desc after medium if still < 10.", "file_type": "rationale", "source_file": "backend/tests/test_attack_day.py", "source_location": "L153", "community": 11, "norm_label": "novice promoted by power desc after medium if still < 10.", "id": "tests_test_attack_day_rationale_153" }, { "label": "Overridden Day 2 members count toward the 10-threshold.", "file_type": "rationale", "source_file": "backend/tests/test_attack_day.py", "source_location": "L183", "community": 11, "norm_label": "overridden day 2 members count toward the 10-threshold.", "id": "tests_test_attack_day_rationale_183" }, { "label": "attack_day_override=True members keep their existing attack_day.", "file_type": "rationale", "source_file": "backend/tests/test_attack_day.py", "source_location": "L212", "community": 11, "norm_label": "attack_day_override=true members keep their existing attack_day.", "id": "tests_test_attack_day_rationale_212" }, { "label": "Exactly 10 HH/ADV \u2192 all remaining go to Day 1.", "file_type": "rationale", "source_file": "backend/tests/test_attack_day.py", "source_location": "L228", "community": 11, "norm_label": "exactly 10 hh/adv \u2192 all remaining go to day 1.", "id": "tests_test_attack_day_rationale_228" }, { "label": "Apply reads stored preview and updates siege_member attack_day values.", "file_type": "rationale", "source_file": "backend/tests/test_attack_day.py", "source_location": "L246", "community": 11, "norm_label": "apply reads stored preview and updates siege_member attack_day values.", "id": "tests_test_attack_day_rationale_246" }, { "label": "Returns 409 when no preview exists.", "file_type": "rationale", "source_file": "backend/tests/test_attack_day.py", "source_location": "L277", "community": 11, "norm_label": "returns 409 when no preview exists.", "id": "tests_test_attack_day_rationale_277" }, { "label": "Returns 409 when preview has expired.", "file_type": "rationale", "source_file": "backend/tests/test_attack_day.py", "source_location": "L300", "community": 11, "norm_label": "returns 409 when preview has expired.", "id": "tests_test_attack_day_rationale_300" }, { "label": "test_auth.py", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L1", "community": 33, "norm_label": "test_auth.py", "id": "backend_tests_test_auth_py" }, { "label": "_make_jwt()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L24", "community": 55, "norm_label": "_make_jwt()", "id": "tests_test_auth_make_jwt" }, { "label": "_make_expired_jwt()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L38", "community": 33, "norm_label": "_make_expired_jwt()", "id": "tests_test_auth_make_expired_jwt" }, { "label": "_make_member()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L53", "community": 6, "norm_label": "_make_member()", "id": "tests_test_auth_make_member" }, { "label": "_make_mock_db()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L70", "community": 31, "norm_label": "_make_mock_db()", "id": "tests_test_auth_make_mock_db" }, { "label": "test_auth_disabled_allows_access()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L92", "community": 82, "norm_label": "test_auth_disabled_allows_access()", "id": "tests_test_auth_test_auth_disabled_allows_access" }, { "label": "test_valid_service_token_allows_access()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L117", "community": 31, "norm_label": "test_valid_service_token_allows_access()", "id": "tests_test_auth_test_valid_service_token_allows_access" }, { "label": "test_invalid_service_token_returns_401()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L145", "community": 33, "norm_label": "test_invalid_service_token_returns_401()", "id": "tests_test_auth_test_invalid_service_token_returns_401" }, { "label": "test_valid_jwt_cookie_allows_access()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L167", "community": 55, "norm_label": "test_valid_jwt_cookie_allows_access()", "id": "tests_test_auth_test_valid_jwt_cookie_allows_access" }, { "label": "test_expired_jwt_returns_401()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L196", "community": 33, "norm_label": "test_expired_jwt_returns_401()", "id": "tests_test_auth_test_expired_jwt_returns_401" }, { "label": "test_jwt_with_wrong_secret_returns_401()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L218", "community": 55, "norm_label": "test_jwt_with_wrong_secret_returns_401()", "id": "tests_test_auth_test_jwt_with_wrong_secret_returns_401" }, { "label": "test_jwt_with_deleted_member_returns_401()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L241", "community": 55, "norm_label": "test_jwt_with_deleted_member_returns_401()", "id": "tests_test_auth_test_jwt_with_deleted_member_returns_401" }, { "label": "test_no_auth_returns_401()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L266", "community": 84, "norm_label": "test_no_auth_returns_401()", "id": "tests_test_auth_test_no_auth_returns_401" }, { "label": "test_health_no_auth_required()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L286", "community": 78, "norm_label": "test_health_no_auth_required()", "id": "tests_test_auth_test_health_no_auth_required" }, { "label": "test_version_no_auth_required()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L305", "community": 33, "norm_label": "test_version_no_auth_required()", "id": "tests_test_auth_test_version_no_auth_required" }, { "label": "test_login_returns_discord_url_and_state_cookie()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L323", "community": 83, "norm_label": "test_login_returns_discord_url_and_state_cookie()", "id": "tests_test_auth_test_login_returns_discord_url_and_state_cookie" }, { "label": "test_callback_invalid_state_redirects()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L343", "community": 33, "norm_label": "test_callback_invalid_state_redirects()", "id": "tests_test_auth_test_callback_invalid_state_redirects" }, { "label": "test_callback_happy_path()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L361", "community": 31, "norm_label": "test_callback_happy_path()", "id": "tests_test_auth_test_callback_happy_path" }, { "label": "test_callback_not_in_guild_redirects()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L412", "community": 79, "norm_label": "test_callback_not_in_guild_redirects()", "id": "tests_test_auth_test_callback_not_in_guild_redirects" }, { "label": "test_callback_insufficient_role_redirects()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L445", "community": 77, "norm_label": "test_callback_insufficient_role_redirects()", "id": "tests_test_auth_test_callback_insufficient_role_redirects" }, { "label": "test_callback_insufficient_role_missing_role_names_key_redirects()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L481", "community": 33, "norm_label": "test_callback_insufficient_role_missing_role_names_key_redirects()", "id": "tests_test_auth_test_callback_insufficient_role_missing_role_names_key_redirects" }, { "label": "test_callback_with_required_role_proceeds_to_member_lookup()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L516", "community": 31, "norm_label": "test_callback_with_required_role_proceeds_to_member_lookup()", "id": "tests_test_auth_test_callback_with_required_role_proceeds_to_member_lookup" }, { "label": "test_callback_bot_unreachable_redirects_service_unavailable()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L567", "community": 33, "norm_label": "test_callback_bot_unreachable_redirects_service_unavailable()", "id": "tests_test_auth_test_callback_bot_unreachable_redirects_service_unavailable" }, { "label": "test_callback_no_member_record_redirects()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L600", "community": 33, "norm_label": "test_callback_no_member_record_redirects()", "id": "tests_test_auth_test_callback_no_member_record_redirects" }, { "label": "test_logout_clears_session_cookie()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L647", "community": 80, "norm_label": "test_logout_clears_session_cookie()", "id": "tests_test_auth_test_logout_clears_session_cookie" }, { "label": "test_me_with_valid_session()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L660", "community": 55, "norm_label": "test_me_with_valid_session()", "id": "tests_test_auth_test_me_with_valid_session" }, { "label": "test_me_without_auth_returns_401()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L692", "community": 81, "norm_label": "test_me_without_auth_returns_401()", "id": "tests_test_auth_test_me_without_auth_returns_401" }, { "label": "TestStartupValidation", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L716", "community": 33, "norm_label": "teststartupvalidation", "id": "tests_test_auth_teststartupvalidation" }, { "label": "test_startup_rejects_empty_session_secret()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L719", "community": 33, "norm_label": "test_startup_rejects_empty_session_secret()", "id": "tests_test_auth_test_startup_rejects_empty_session_secret" }, { "label": "test_startup_rejects_missing_bot_service_token_in_production()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L730", "community": 33, "norm_label": "test_startup_rejects_missing_bot_service_token_in_production()", "id": "tests_test_auth_test_startup_rejects_missing_bot_service_token_in_production" }, { "label": "test_startup_allows_empty_bot_service_token_in_development()", "file_type": "code", "source_file": "backend/tests/test_auth.py", "source_location": "L742", "community": 33, "norm_label": "test_startup_allows_empty_bot_service_token_in_development()", "id": "tests_test_auth_test_startup_allows_empty_bot_service_token_in_development" }, { "label": "Tests for Discord OAuth2 auth middleware and endpoints.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L1", "community": 33, "norm_label": "tests for discord oauth2 auth middleware and endpoints.", "id": "tests_test_auth_rationale_1" }, { "label": "Return an AsyncMock session whose db.get() returns `member`.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L71", "community": 31, "norm_label": "return an asyncmock session whose db.get() returns `member`.", "id": "tests_test_auth_rationale_71" }, { "label": "AUTH_DISABLED=true + ENVIRONMENT=development bypasses auth entirely.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L93", "community": 82, "norm_label": "auth_disabled=true + environment=development bypasses auth entirely.", "id": "tests_test_auth_rationale_93" }, { "label": "A correct Bearer token grants access as the bot-service principal.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L118", "community": 31, "norm_label": "a correct bearer token grants access as the bot-service principal.", "id": "tests_test_auth_rationale_118" }, { "label": "A wrong Bearer token is rejected with 401.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L146", "community": 33, "norm_label": "a wrong bearer token is rejected with 401.", "id": "tests_test_auth_rationale_146" }, { "label": "A valid JWT session cookie with an existing member grants access.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L168", "community": 55, "norm_label": "a valid jwt session cookie with an existing member grants access.", "id": "tests_test_auth_rationale_168" }, { "label": "An expired JWT cookie is rejected with 401.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L197", "community": 33, "norm_label": "an expired jwt cookie is rejected with 401.", "id": "tests_test_auth_rationale_197" }, { "label": "A JWT signed with a different secret is rejected with 401.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L219", "community": 55, "norm_label": "a jwt signed with a different secret is rejected with 401.", "id": "tests_test_auth_rationale_219" }, { "label": "A valid JWT whose member no longer exists in the DB returns 401.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L242", "community": 55, "norm_label": "a valid jwt whose member no longer exists in the db returns 401.", "id": "tests_test_auth_rationale_242" }, { "label": "No credentials at all \u2192 401.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L267", "community": 84, "norm_label": "no credentials at all \u2192 401.", "id": "tests_test_auth_rationale_267" }, { "label": "/api/health is accessible without any credentials.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L287", "community": 78, "norm_label": "/api/health is accessible without any credentials.", "id": "tests_test_auth_rationale_287" }, { "label": "/api/version is accessible without any credentials.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L306", "community": 33, "norm_label": "/api/version is accessible without any credentials.", "id": "tests_test_auth_rationale_306" }, { "label": "GET /api/auth/login returns a Discord authorization URL and sets a state cookie.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L324", "community": 83, "norm_label": "get /api/auth/login returns a discord authorization url and sets a state cookie.", "id": "tests_test_auth_rationale_324" }, { "label": "Mismatched OAuth state redirects to /login?error=invalid_state.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L344", "community": 33, "norm_label": "mismatched oauth state redirects to /login?error=invalid_state.", "id": "tests_test_auth_rationale_344" }, { "label": "Full valid callback flow issues a session cookie and redirects to /.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L362", "community": 31, "norm_label": "full valid callback flow issues a session cookie and redirects to /.", "id": "tests_test_auth_rationale_362" }, { "label": "User not in the guild redirects to /login?error=unauthorized.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L413", "community": 79, "norm_label": "user not in the guild redirects to /login?error=unauthorized.", "id": "tests_test_auth_rationale_413" }, { "label": "Guild member without required Discord role redirects to /login?error=insuffi", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L446", "community": 77, "norm_label": "guild member without required discord role redirects to /login?error=insuffi", "id": "tests_test_auth_rationale_446" }, { "label": "Guild member response without role_names key is treated as no roles (rejected).", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L482", "community": 33, "norm_label": "guild member response without role_names key is treated as no roles (rejected).", "id": "tests_test_auth_rationale_482" }, { "label": "Guild member WITH the required role passes the role check and proceeds normally.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L517", "community": 31, "norm_label": "guild member with the required role passes the role check and proceeds normally.", "id": "tests_test_auth_rationale_517" }, { "label": "Bot sidecar connection error redirects to /login?error=service_unavailable.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L568", "community": 33, "norm_label": "bot sidecar connection error redirects to /login?error=service_unavailable.", "id": "tests_test_auth_rationale_568" }, { "label": "Guild member whose discord_id isn't in the DB redirects to /login?error=unauthor", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L601", "community": 33, "norm_label": "guild member whose discord_id isn't in the db redirects to /login?error=unauthor", "id": "tests_test_auth_rationale_601" }, { "label": "POST /api/auth/logout clears the session cookie.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L648", "community": 80, "norm_label": "post /api/auth/logout clears the session cookie.", "id": "tests_test_auth_rationale_648" }, { "label": "GET /api/auth/me returns member info when authenticated via session cookie.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L661", "community": 55, "norm_label": "get /api/auth/me returns member info when authenticated via session cookie.", "id": "tests_test_auth_rationale_661" }, { "label": "GET /api/auth/me without credentials returns 401.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L693", "community": 81, "norm_label": "get /api/auth/me without credentials returns 401.", "id": "tests_test_auth_rationale_693" }, { "label": "Startup rejects empty SESSION_SECRET when auth is enabled.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L720", "community": 101, "norm_label": "startup rejects empty session_secret when auth is enabled.", "id": "tests_test_auth_rationale_720" }, { "label": "Startup rejects missing BOT_SERVICE_TOKEN in non-dev environments.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L731", "community": 102, "norm_label": "startup rejects missing bot_service_token in non-dev environments.", "id": "tests_test_auth_rationale_731" }, { "label": "Development environment allows empty BOT_SERVICE_TOKEN.", "file_type": "rationale", "source_file": "backend/tests/test_auth.py", "source_location": "L743", "community": 103, "norm_label": "development environment allows empty bot_service_token.", "id": "tests_test_auth_rationale_743" }, { "label": "test_auth_rate_limit.py", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L1", "community": 19, "norm_label": "test_auth_rate_limit.py", "id": "backend_tests_test_auth_rate_limit_py" }, { "label": "reset_rate_limit_state()", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L49", "community": 19, "norm_label": "reset_rate_limit_state()", "id": "tests_test_auth_rate_limit_reset_rate_limit_state" }, { "label": "_get()", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L89", "community": 19, "norm_label": "_get()", "id": "tests_test_auth_rate_limit_get" }, { "label": "test_login_rate_limit_triggers_429()", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L100", "community": 19, "norm_label": "test_login_rate_limit_triggers_429()", "id": "tests_test_auth_rate_limit_test_login_rate_limit_triggers_429" }, { "label": "test_login_rate_limit_independent_per_ip()", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L124", "community": 19, "norm_label": "test_login_rate_limit_independent_per_ip()", "id": "tests_test_auth_rate_limit_test_login_rate_limit_independent_per_ip" }, { "label": "test_callback_rate_limit_triggers_429()", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L150", "community": 19, "norm_label": "test_callback_rate_limit_triggers_429()", "id": "tests_test_auth_rate_limit_test_callback_rate_limit_triggers_429" }, { "label": "test_login_no_429_when_auth_disabled()", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L194", "community": 19, "norm_label": "test_login_no_429_when_auth_disabled()", "id": "tests_test_auth_rate_limit_test_login_no_429_when_auth_disabled" }, { "label": "test_callback_no_429_when_auth_disabled()", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L209", "community": 19, "norm_label": "test_callback_no_429_when_auth_disabled()", "id": "tests_test_auth_rate_limit_test_callback_no_429_when_auth_disabled" }, { "label": "test_xff_pathological_header_parses_to_leftmost_ip()", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L236", "community": 19, "norm_label": "test_xff_pathological_header_parses_to_leftmost_ip()", "id": "tests_test_auth_rate_limit_test_xff_pathological_header_parses_to_leftmost_ip" }, { "label": "test_garbage_xff_falls_back_to_remote_address_bucket()", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L271", "community": 19, "norm_label": "test_garbage_xff_falls_back_to_remote_address_bucket()", "id": "tests_test_auth_rate_limit_test_garbage_xff_falls_back_to_remote_address_bucket" }, { "label": "test_different_garbage_xff_values_share_remote_address_bucket()", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L301", "community": 19, "norm_label": "test_different_garbage_xff_values_share_remote_address_bucket()", "id": "tests_test_auth_rate_limit_test_different_garbage_xff_values_share_remote_address_bucket" }, { "label": "test_valid_xff_still_buckets_by_ip()", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L331", "community": 19, "norm_label": "test_valid_xff_still_buckets_by_ip()", "id": "tests_test_auth_rate_limit_test_valid_xff_still_buckets_by_ip" }, { "label": "test_429_response_includes_retry_after_header()", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L361", "community": 19, "norm_label": "test_429_response_includes_retry_after_header()", "id": "tests_test_auth_rate_limit_test_429_response_includes_retry_after_header" }, { "label": "test_missing_xff_in_production_logs_warning()", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L405", "community": 19, "norm_label": "test_missing_xff_in_production_logs_warning()", "id": "tests_test_auth_rate_limit_test_missing_xff_in_production_logs_warning" }, { "label": "test_missing_xff_in_development_does_not_log_warning()", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L434", "community": 19, "norm_label": "test_missing_xff_in_development_does_not_log_warning()", "id": "tests_test_auth_rate_limit_test_missing_xff_in_development_does_not_log_warning" }, { "label": "test_concurrent_absent_xff_in_production_warns_exactly_once()", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L464", "community": 19, "norm_label": "test_concurrent_absent_xff_in_production_warns_exactly_once()", "id": "tests_test_auth_rate_limit_test_concurrent_absent_xff_in_production_warns_exactly_once" }, { "label": "test_invalid_xff_in_production_logs_warning()", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L534", "community": 19, "norm_label": "test_invalid_xff_in_production_logs_warning()", "id": "tests_test_auth_rate_limit_test_invalid_xff_in_production_logs_warning" }, { "label": "test_invalid_xff_in_development_does_not_log_warning()", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L566", "community": 19, "norm_label": "test_invalid_xff_in_development_does_not_log_warning()", "id": "tests_test_auth_rate_limit_test_invalid_xff_in_development_does_not_log_warning" }, { "label": "test_invalid_xff_warning_is_throttled_to_once_per_window()", "file_type": "code", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L597", "community": 19, "norm_label": "test_invalid_xff_warning_is_throttled_to_once_per_window()", "id": "tests_test_auth_rate_limit_test_invalid_xff_warning_is_throttled_to_once_per_window" }, { "label": "Tests for rate limiting on the Discord OAuth2 auth endpoints. Covers: - /api/au", "file_type": "rationale", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L1", "community": 19, "norm_label": "tests for rate limiting on the discord oauth2 auth endpoints. covers: - /api/au", "id": "tests_test_auth_rate_limit_rationale_1" }, { "label": "Reset per-test rate-limit state before each test. Resets module-level state", "file_type": "rationale", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L50", "community": 19, "norm_label": "reset per-test rate-limit state before each test. resets module-level state", "id": "tests_test_auth_rate_limit_rationale_50" }, { "label": "Send a GET and return the status code.", "file_type": "rationale", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L90", "community": 19, "norm_label": "send a get and return the status code.", "id": "tests_test_auth_rate_limit_rationale_90" }, { "label": "3rd rapid request to /api/auth/login returns 429 when limit is 2/minute. Th", "file_type": "rationale", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L101", "community": 19, "norm_label": "3rd rapid request to /api/auth/login returns 429 when limit is 2/minute. th", "id": "tests_test_auth_rate_limit_rationale_101" }, { "label": "Two different X-Forwarded-For IPs have independent rate-limit buckets.", "file_type": "rationale", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L125", "community": 19, "norm_label": "two different x-forwarded-for ips have independent rate-limit buckets.", "id": "tests_test_auth_rate_limit_rationale_125" }, { "label": "3rd rapid request to /api/auth/callback returns 429 when limit is 2/minute.", "file_type": "rationale", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L151", "community": 19, "norm_label": "3rd rapid request to /api/auth/callback returns 429 when limit is 2/minute.", "id": "tests_test_auth_rate_limit_rationale_151" }, { "label": "When AUTH_DISABLED=true, 50 rapid requests to /login never return 429.", "file_type": "rationale", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L195", "community": 19, "norm_label": "when auth_disabled=true, 50 rapid requests to /login never return 429.", "id": "tests_test_auth_rate_limit_rationale_195" }, { "label": "Pathologically long X-Forwarded-For header is handled without error. Constr", "file_type": "rationale", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L237", "community": 19, "norm_label": "pathologically long x-forwarded-for header is handled without error. constr", "id": "tests_test_auth_rate_limit_rationale_237" }, { "label": "Garbage XFF value falls back to the ASGI remote-address bucket. Sending ``X", "file_type": "rationale", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L272", "community": 19, "norm_label": "garbage xff value falls back to the asgi remote-address bucket. sending ``x", "id": "tests_test_auth_rate_limit_rationale_272" }, { "label": "Different garbage XFF strings all resolve to the same remote-address bucket.", "file_type": "rationale", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L302", "community": 19, "norm_label": "different garbage xff strings all resolve to the same remote-address bucket.", "id": "tests_test_auth_rate_limit_rationale_302" }, { "label": "Valid XFF IP values are still used as the bucket key (regression guard). En", "file_type": "rationale", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L332", "community": 19, "norm_label": "valid xff ip values are still used as the bucket key (regression guard). en", "id": "tests_test_auth_rate_limit_rationale_332" }, { "label": "A 429 response must include a Retry-After header with a positive integer. V", "file_type": "rationale", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L362", "community": 19, "norm_label": "a 429 response must include a retry-after header with a positive integer. v", "id": "tests_test_auth_rate_limit_rationale_362" }, { "label": "XFF absent in production causes the absent-XFF warning branch to execute. A", "file_type": "rationale", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L406", "community": 19, "norm_label": "xff absent in production causes the absent-xff warning branch to execute. a", "id": "tests_test_auth_rate_limit_rationale_406" }, { "label": "XFF absent in development must NOT emit the production trust-model warning.", "file_type": "rationale", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L435", "community": 19, "norm_label": "xff absent in development must not emit the production trust-model warning.", "id": "tests_test_auth_rate_limit_rationale_435" }, { "label": "Concurrent no-XFF requests in production advance the absent-XFF timestamp once.", "file_type": "rationale", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L465", "community": 19, "norm_label": "concurrent no-xff requests in production advance the absent-xff timestamp once.", "id": "tests_test_auth_rate_limit_rationale_465" }, { "label": "Invalid XFF in production causes the invalid-XFF warning branch to execute.", "file_type": "rationale", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L535", "community": 19, "norm_label": "invalid xff in production causes the invalid-xff warning branch to execute.", "id": "tests_test_auth_rate_limit_rationale_535" }, { "label": "Invalid X-Forwarded-For in development must NOT emit a warning. Direct / to", "file_type": "rationale", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L567", "community": 19, "norm_label": "invalid x-forwarded-for in development must not emit a warning. direct / to", "id": "tests_test_auth_rate_limit_rationale_567" }, { "label": "Rapid invalid-XFF requests in production advance the timestamp exactly once.", "file_type": "rationale", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L598", "community": 19, "norm_label": "rapid invalid-xff requests in production advance the timestamp exactly once.", "id": "tests_test_auth_rate_limit_rationale_598" }, { "label": "test_autofill.py", "file_type": "code", "source_file": "backend/tests/test_autofill.py", "source_location": "L1", "community": 11, "norm_label": "test_autofill.py", "id": "backend_tests_test_autofill_py" }, { "label": "_make_group()", "file_type": "code", "source_file": "backend/tests/test_autofill.py", "source_location": "L63", "community": 0, "norm_label": "_make_group()", "id": "tests_test_autofill_make_group" }, { "label": "_make_sm()", "file_type": "code", "source_file": "backend/tests/test_autofill.py", "source_location": "L81", "community": 11, "norm_label": "_make_sm()", "id": "tests_test_autofill_make_sm" }, { "label": "test_preview_endpoint_returns_200()", "file_type": "code", "source_file": "backend/tests/test_autofill.py", "source_location": "L108", "community": 11, "norm_label": "test_preview_endpoint_returns_200()", "id": "tests_test_autofill_test_preview_endpoint_returns_200" }, { "label": "test_apply_endpoint_returns_200()", "file_type": "code", "source_file": "backend/tests/test_autofill.py", "source_location": "L127", "community": 11, "norm_label": "test_apply_endpoint_returns_200()", "id": "tests_test_autofill_test_apply_endpoint_returns_200" }, { "label": "test_preview_respects_scroll_count()", "file_type": "code", "source_file": "backend/tests/test_autofill.py", "source_location": "L148", "community": 11, "norm_label": "test_preview_respects_scroll_count()", "id": "tests_test_autofill_test_preview_respects_scroll_count" }, { "label": "test_preview_marks_leftover_as_reserve()", "file_type": "code", "source_file": "backend/tests/test_autofill.py", "source_location": "L182", "community": 11, "norm_label": "test_preview_marks_leftover_as_reserve()", "id": "tests_test_autofill_test_preview_marks_leftover_as_reserve" }, { "label": "test_apply_commits_preview()", "file_type": "code", "source_file": "backend/tests/test_autofill.py", "source_location": "L212", "community": 11, "norm_label": "test_apply_commits_preview()", "id": "tests_test_autofill_test_apply_commits_preview" }, { "label": "test_apply_returns_409_when_no_preview()", "file_type": "code", "source_file": "backend/tests/test_autofill.py", "source_location": "L251", "community": 11, "norm_label": "test_apply_returns_409_when_no_preview()", "id": "tests_test_autofill_test_apply_returns_409_when_no_preview" }, { "label": "test_apply_returns_409_when_preview_expired()", "file_type": "code", "source_file": "backend/tests/test_autofill.py", "source_location": "L273", "community": 11, "norm_label": "test_apply_returns_409_when_preview_expired()", "id": "tests_test_autofill_test_apply_returns_409_when_preview_expired" }, { "label": "test_preview_skips_broken_building_positions()", "file_type": "code", "source_file": "backend/tests/test_autofill.py", "source_location": "L299", "community": 11, "norm_label": "test_preview_skips_broken_building_positions()", "id": "tests_test_autofill_test_preview_skips_broken_building_positions" }, { "label": "_enable_sqlite_fk_autofill()", "file_type": "code", "source_file": "backend/tests/test_autofill.py", "source_location": "L349", "community": 11, "norm_label": "_enable_sqlite_fk_autofill()", "id": "tests_test_autofill_enable_sqlite_fk_autofill" }, { "label": "test_apply_autofill_skips_broken_building_positions()", "file_type": "code", "source_file": "backend/tests/test_autofill.py", "source_location": "L367", "community": 76, "norm_label": "test_apply_autofill_skips_broken_building_positions()", "id": "tests_test_autofill_test_apply_autofill_skips_broken_building_positions" }, { "label": "_make_session_for_preview()", "file_type": "code", "source_file": "backend/tests/test_autofill.py", "source_location": "L466", "community": 11, "norm_label": "_make_session_for_preview()", "id": "tests_test_autofill_make_session_for_preview" }, { "label": "Tests for auto-fill preview and apply.", "file_type": "rationale", "source_file": "backend/tests/test_autofill.py", "source_location": "L1", "community": 11, "norm_label": "tests for auto-fill preview and apply.", "id": "tests_test_autofill_rationale_1" }, { "label": "With 3 members, 10 positions, and <90 total positions, limit=3. All 10 posi", "file_type": "rationale", "source_file": "backend/tests/test_autofill.py", "source_location": "L149", "community": 11, "norm_label": "with 3 members, 10 positions, and <90 total positions, limit=3. all 10 posi", "id": "tests_test_autofill_rationale_149" }, { "label": "With 1 member, 5 positions, and position_count=5 (<90), limit=3. The member", "file_type": "rationale", "source_file": "backend/tests/test_autofill.py", "source_location": "L183", "community": 11, "norm_label": "with 1 member, 5 positions, and position_count=5 (<90), limit=3. the member", "id": "tests_test_autofill_rationale_183" }, { "label": "Apply reads the stored preview and updates positions.", "file_type": "rationale", "source_file": "backend/tests/test_autofill.py", "source_location": "L213", "community": 11, "norm_label": "apply reads the stored preview and updates positions.", "id": "tests_test_autofill_rationale_213" }, { "label": "Apply returns 409 when no preview exists.", "file_type": "rationale", "source_file": "backend/tests/test_autofill.py", "source_location": "L252", "community": 11, "norm_label": "apply returns 409 when no preview exists.", "id": "tests_test_autofill_rationale_252" }, { "label": "Apply returns 409 when preview has expired.", "file_type": "rationale", "source_file": "backend/tests/test_autofill.py", "source_location": "L274", "community": 11, "norm_label": "apply returns 409 when preview has expired.", "id": "tests_test_autofill_rationale_274" }, { "label": "Broken building positions are excluded from autofill (issue #94). Siege has", "file_type": "rationale", "source_file": "backend/tests/test_autofill.py", "source_location": "L300", "community": 11, "norm_label": "broken building positions are excluded from autofill (issue #94). siege has", "id": "tests_test_autofill_rationale_300" }, { "label": "apply_autofill must not assign members to positions on broken buildings. Th", "file_type": "rationale", "source_file": "backend/tests/test_autofill.py", "source_location": "L368", "community": 76, "norm_label": "apply_autofill must not assign members to positions on broken buildings. th", "id": "tests_test_autofill_rationale_368" }, { "label": "Return a mock AsyncSession that handles the two execute calls in preview_autofil", "file_type": "rationale", "source_file": "backend/tests/test_autofill.py", "source_location": "L467", "community": 11, "norm_label": "return a mock asyncsession that handles the two execute calls in preview_autofil", "id": "tests_test_autofill_rationale_467" }, { "label": "test_board.py", "file_type": "code", "source_file": "backend/tests/test_board.py", "source_location": "L1", "community": 62, "norm_label": "test_board.py", "id": "backend_tests_test_board_py" }, { "label": "_make_position()", "file_type": "code", "source_file": "backend/tests/test_board.py", "source_location": "L13", "community": 20, "norm_label": "_make_position()", "id": "tests_test_board_make_position" }, { "label": "client()", "file_type": "code", "source_file": "backend/tests/test_board.py", "source_location": "L33", "community": 11, "norm_label": "client()", "id": "tests_test_board_client" }, { "label": "test_get_board_returns_nested_structure()", "file_type": "code", "source_file": "backend/tests/test_board.py", "source_location": "L43", "community": 62, "norm_label": "test_get_board_returns_nested_structure()", "id": "tests_test_board_test_get_board_returns_nested_structure" }, { "label": "test_update_position_assign_member()", "file_type": "code", "source_file": "backend/tests/test_board.py", "source_location": "L75", "community": 62, "norm_label": "test_update_position_assign_member()", "id": "tests_test_board_test_update_position_assign_member" }, { "label": "test_update_position_invalid_state_reserve_with_member()", "file_type": "code", "source_file": "backend/tests/test_board.py", "source_location": "L97", "community": 62, "norm_label": "test_update_position_invalid_state_reserve_with_member()", "id": "tests_test_board_test_update_position_invalid_state_reserve_with_member" }, { "label": "test_update_position_not_found()", "file_type": "code", "source_file": "backend/tests/test_board.py", "source_location": "L119", "community": 62, "norm_label": "test_update_position_not_found()", "id": "tests_test_board_test_update_position_not_found" }, { "label": "Endpoint tests for board, position update, and bulk assignment routes.", "file_type": "rationale", "source_file": "backend/tests/test_board.py", "source_location": "L1", "community": 62, "norm_label": "endpoint tests for board, position update, and bulk assignment routes.", "id": "tests_test_board_rationale_1" }, { "label": "test_bot_client.py", "file_type": "code", "source_file": "backend/tests/test_bot_client.py", "source_location": "L1", "community": 27, "norm_label": "test_bot_client.py", "id": "backend_tests_test_bot_client_py" }, { "label": "_make_ok_response()", "file_type": "code", "source_file": "backend/tests/test_bot_client.py", "source_location": "L15", "community": 27, "norm_label": "_make_ok_response()", "id": "tests_test_bot_client_make_ok_response" }, { "label": "_async_client_that_raises()", "file_type": "code", "source_file": "backend/tests/test_bot_client.py", "source_location": "L24", "community": 27, "norm_label": "_async_client_that_raises()", "id": "tests_test_bot_client_async_client_that_raises" }, { "label": "_async_client_that_returns()", "file_type": "code", "source_file": "backend/tests/test_bot_client.py", "source_location": "L34", "community": 27, "norm_label": "_async_client_that_returns()", "id": "tests_test_bot_client_async_client_that_returns" }, { "label": "test_notify_returns_false_on_http_error()", "file_type": "code", "source_file": "backend/tests/test_bot_client.py", "source_location": "L50", "community": 27, "norm_label": "test_notify_returns_false_on_http_error()", "id": "tests_test_bot_client_test_notify_returns_false_on_http_error" }, { "label": "test_post_message_returns_false_on_http_error()", "file_type": "code", "source_file": "backend/tests/test_bot_client.py", "source_location": "L59", "community": 27, "norm_label": "test_post_message_returns_false_on_http_error()", "id": "tests_test_bot_client_test_post_message_returns_false_on_http_error" }, { "label": "test_post_image_returns_none_on_http_error()", "file_type": "code", "source_file": "backend/tests/test_bot_client.py", "source_location": "L68", "community": 27, "norm_label": "test_post_image_returns_none_on_http_error()", "id": "tests_test_bot_client_test_post_image_returns_none_on_http_error" }, { "label": "test_get_members_returns_empty_on_http_error()", "file_type": "code", "source_file": "backend/tests/test_bot_client.py", "source_location": "L77", "community": 27, "norm_label": "test_get_members_returns_empty_on_http_error()", "id": "tests_test_bot_client_test_get_members_returns_empty_on_http_error" }, { "label": "test_notify_returns_true_on_success()", "file_type": "code", "source_file": "backend/tests/test_bot_client.py", "source_location": "L86", "community": 27, "norm_label": "test_notify_returns_true_on_success()", "id": "tests_test_bot_client_test_notify_returns_true_on_success" }, { "label": "test_get_member_returns_not_member()", "file_type": "code", "source_file": "backend/tests/test_bot_client.py", "source_location": "L112", "community": 27, "norm_label": "test_get_member_returns_not_member()", "id": "tests_test_bot_client_test_get_member_returns_not_member" }, { "label": "test_get_member_raises_on_connection_error()", "file_type": "code", "source_file": "backend/tests/test_bot_client.py", "source_location": "L123", "community": 27, "norm_label": "test_get_member_raises_on_connection_error()", "id": "tests_test_bot_client_test_get_member_raises_on_connection_error" }, { "label": "test_get_member_raises_on_503()", "file_type": "code", "source_file": "backend/tests/test_bot_client.py", "source_location": "L132", "community": 27, "norm_label": "test_get_member_raises_on_503()", "id": "tests_test_bot_client_test_get_member_raises_on_503" }, { "label": "Tests for bot HTTP client graceful degradation.", "file_type": "rationale", "source_file": "backend/tests/test_bot_client.py", "source_location": "L1", "community": 27, "norm_label": "tests for bot http client graceful degradation.", "id": "tests_test_bot_client_rationale_1" }, { "label": "Return a context-manager-compatible mock AsyncClient that raises on any request.", "file_type": "rationale", "source_file": "backend/tests/test_bot_client.py", "source_location": "L25", "community": 27, "norm_label": "return a context-manager-compatible mock asyncclient that raises on any request.", "id": "tests_test_bot_client_rationale_25" }, { "label": "notify() returns False when the bot HTTP call raises an HTTPError.", "file_type": "rationale", "source_file": "backend/tests/test_bot_client.py", "source_location": "L51", "community": 27, "norm_label": "notify() returns false when the bot http call raises an httperror.", "id": "tests_test_bot_client_rationale_51" }, { "label": "post_message() returns False when the bot HTTP call raises an HTTPError.", "file_type": "rationale", "source_file": "backend/tests/test_bot_client.py", "source_location": "L60", "community": 27, "norm_label": "post_message() returns false when the bot http call raises an httperror.", "id": "tests_test_bot_client_rationale_60" }, { "label": "post_image() returns None when the bot HTTP call raises an HTTPError.", "file_type": "rationale", "source_file": "backend/tests/test_bot_client.py", "source_location": "L69", "community": 27, "norm_label": "post_image() returns none when the bot http call raises an httperror.", "id": "tests_test_bot_client_rationale_69" }, { "label": "get_members() returns [] when the bot HTTP call raises an HTTPError.", "file_type": "rationale", "source_file": "backend/tests/test_bot_client.py", "source_location": "L78", "community": 27, "norm_label": "get_members() returns [] when the bot http call raises an httperror.", "id": "tests_test_bot_client_rationale_78" }, { "label": "notify() returns True when the bot returns a 200 response.", "file_type": "rationale", "source_file": "backend/tests/test_bot_client.py", "source_location": "L87", "community": 27, "norm_label": "notify() returns true when the bot returns a 200 response.", "id": "tests_test_bot_client_rationale_87" }, { "label": "get_member() returns the member dict when sidecar responds 200.", "file_type": "rationale", "source_file": "backend/tests/test_bot_client.py", "source_location": "L102", "community": 27, "norm_label": "get_member() returns the member dict when sidecar responds 200.", "id": "tests_test_bot_client_rationale_102" }, { "label": "get_member() returns the dict as-is when sidecar responds with is_member=False.", "file_type": "rationale", "source_file": "backend/tests/test_bot_client.py", "source_location": "L113", "community": 27, "norm_label": "get_member() returns the dict as-is when sidecar responds with is_member=false.", "id": "tests_test_bot_client_rationale_113" }, { "label": "get_member() raises httpx.HTTPError when the sidecar is unreachable.", "file_type": "rationale", "source_file": "backend/tests/test_bot_client.py", "source_location": "L124", "community": 27, "norm_label": "get_member() raises httpx.httperror when the sidecar is unreachable.", "id": "tests_test_bot_client_rationale_124" }, { "label": "get_member() raises httpx.HTTPStatusError when sidecar returns 503.", "file_type": "rationale", "source_file": "backend/tests/test_bot_client.py", "source_location": "L133", "community": 27, "norm_label": "get_member() raises httpx.httpstatuserror when sidecar returns 503.", "id": "tests_test_bot_client_rationale_133" }, { "label": "test_buildings.py", "file_type": "code", "source_file": "backend/tests/test_buildings.py", "source_location": "L1", "community": 0, "norm_label": "test_buildings.py", "id": "backend_tests_test_buildings_py" }, { "label": "_make_config()", "file_type": "code", "source_file": "backend/tests/test_buildings.py", "source_location": "L46", "community": 0, "norm_label": "_make_config()", "id": "tests_test_buildings_make_config" }, { "label": "_make_post_priority_config()", "file_type": "code", "source_file": "backend/tests/test_buildings.py", "source_location": "L55", "community": 46, "norm_label": "_make_post_priority_config()", "id": "tests_test_buildings_make_post_priority_config" }, { "label": "_scalars_all()", "file_type": "code", "source_file": "backend/tests/test_buildings.py", "source_location": "L63", "community": 0, "norm_label": "_scalars_all()", "id": "tests_test_buildings_scalars_all" }, { "label": "_scalars_first()", "file_type": "code", "source_file": "backend/tests/test_buildings.py", "source_location": "L70", "community": 0, "norm_label": "_scalars_first()", "id": "tests_test_buildings_scalars_first" }, { "label": "_scalar_one_or_none()", "file_type": "code", "source_file": "backend/tests/test_buildings.py", "source_location": "L77", "community": 0, "norm_label": "_scalar_one_or_none()", "id": "tests_test_buildings_scalar_one_or_none" }, { "label": "test_update_building_unbreak_restores_groups()", "file_type": "code", "source_file": "backend/tests/test_buildings.py", "source_location": "L94", "community": 0, "norm_label": "test_update_building_unbreak_restores_groups()", "id": "tests_test_buildings_test_update_building_unbreak_restores_groups" }, { "label": "test_update_building_unbreak_restores_last_slot_count()", "file_type": "code", "source_file": "backend/tests/test_buildings.py", "source_location": "L172", "community": 0, "norm_label": "test_update_building_unbreak_restores_last_slot_count()", "id": "tests_test_buildings_test_update_building_unbreak_restores_last_slot_count" }, { "label": "test_update_building_break_then_unbreak_roundtrip()", "file_type": "code", "source_file": "backend/tests/test_buildings.py", "source_location": "L247", "community": 0, "norm_label": "test_update_building_break_then_unbreak_roundtrip()", "id": "tests_test_buildings_test_update_building_break_then_unbreak_roundtrip" }, { "label": "test_add_building_post_uses_priority_config()", "file_type": "code", "source_file": "backend/tests/test_buildings.py", "source_location": "L392", "community": 0, "norm_label": "test_add_building_post_uses_priority_config()", "id": "tests_test_buildings_test_add_building_post_uses_priority_config" }, { "label": "Service-layer tests for update_building \u2014 focus on unbreak restoration.", "file_type": "rationale", "source_file": "backend/tests/test_buildings.py", "source_location": "L1", "community": 0, "norm_label": "service-layer tests for update_building \u2014 focus on unbreak restoration.", "id": "tests_test_buildings_rationale_1" }, { "label": "Return a MagicMock shaped like scalars().all() \u2192 items.", "file_type": "rationale", "source_file": "backend/tests/test_buildings.py", "source_location": "L64", "community": 0, "norm_label": "return a magicmock shaped like scalars().all() \u2192 items.", "id": "tests_test_buildings_rationale_64" }, { "label": "Return a MagicMock shaped like scalars().first() \u2192 item.", "file_type": "rationale", "source_file": "backend/tests/test_buildings.py", "source_location": "L71", "community": 0, "norm_label": "return a magicmock shaped like scalars().first() \u2192 item.", "id": "tests_test_buildings_rationale_71" }, { "label": "Return a MagicMock shaped like scalar_one_or_none() \u2192 item.", "file_type": "rationale", "source_file": "backend/tests/test_buildings.py", "source_location": "L78", "community": 0, "norm_label": "return a magicmock shaped like scalar_one_or_none() \u2192 item.", "id": "tests_test_buildings_rationale_78" }, { "label": "A Stronghold at level 6 (10 groups \u00d7 3 slots) was broken down to the base co", "file_type": "rationale", "source_file": "backend/tests/test_buildings.py", "source_location": "L95", "community": 0, "norm_label": "a stronghold at level 6 (10 groups \u00d7 3 slots) was broken down to the base co", "id": "tests_test_buildings_rationale_95" }, { "label": "A Mana Shrine at level 5 has 13 teams = 4 full groups + 1 slot last group (4", "file_type": "rationale", "source_file": "backend/tests/test_buildings.py", "source_location": "L173", "community": 0, "norm_label": "a mana shrine at level 5 has 13 teams = 4 full groups + 1 slot last group (4", "id": "tests_test_buildings_rationale_173" }, { "label": "Stronghold level 6: 10 groups \u00d7 3 slots. Break \u2192 reduces to base config (4 g", "file_type": "rationale", "source_file": "backend/tests/test_buildings.py", "source_location": "L248", "community": 0, "norm_label": "stronghold level 6: 10 groups \u00d7 3 slots. break \u2192 reduces to base config (4 g", "id": "tests_test_buildings_rationale_248" }, { "label": "Adding a post-type building must use PostPriorityConfig to set the Post prio", "file_type": "rationale", "source_file": "backend/tests/test_buildings.py", "source_location": "L393", "community": 0, "norm_label": "adding a post-type building must use postpriorityconfig to set the post prio", "id": "tests_test_buildings_rationale_393" }, { "label": "test_changelog.py", "file_type": "code", "source_file": "backend/tests/test_changelog.py", "source_location": "L1", "community": 31, "norm_label": "test_changelog.py", "id": "backend_tests_test_changelog_py" }, { "label": "test_get_status_fresh_user_returns_null()", "file_type": "code", "source_file": "backend/tests/test_changelog.py", "source_location": "L81", "community": 31, "norm_label": "test_get_status_fresh_user_returns_null()", "id": "tests_test_changelog_test_get_status_fresh_user_returns_null" }, { "label": "test_mark_seen_then_get_status_returns_timestamp()", "file_type": "code", "source_file": "backend/tests/test_changelog.py", "source_location": "L113", "community": 31, "norm_label": "test_mark_seen_then_get_status_returns_timestamp()", "id": "tests_test_changelog_test_mark_seen_then_get_status_returns_timestamp" }, { "label": "test_mark_seen_twice_is_idempotent()", "file_type": "code", "source_file": "backend/tests/test_changelog.py", "source_location": "L154", "community": 31, "norm_label": "test_mark_seen_twice_is_idempotent()", "id": "tests_test_changelog_test_mark_seen_twice_is_idempotent" }, { "label": "test_get_status_no_auth_returns_401()", "file_type": "code", "source_file": "backend/tests/test_changelog.py", "source_location": "L193", "community": 31, "norm_label": "test_get_status_no_auth_returns_401()", "id": "tests_test_changelog_test_get_status_no_auth_returns_401" }, { "label": "test_post_mark_seen_no_auth_returns_401()", "file_type": "code", "source_file": "backend/tests/test_changelog.py", "source_location": "L218", "community": 31, "norm_label": "test_post_mark_seen_no_auth_returns_401()", "id": "tests_test_changelog_test_post_mark_seen_no_auth_returns_401" }, { "label": "test_get_status_service_token_returns_400()", "file_type": "code", "source_file": "backend/tests/test_changelog.py", "source_location": "L243", "community": 31, "norm_label": "test_get_status_service_token_returns_400()", "id": "tests_test_changelog_test_get_status_service_token_returns_400" }, { "label": "Endpoint tests for /api/changelog \u2014 status and mark-seen endpoints. Covers AC #", "file_type": "rationale", "source_file": "backend/tests/test_changelog.py", "source_location": "L1", "community": 31, "norm_label": "endpoint tests for /api/changelog \u2014 status and mark-seen endpoints. covers ac #", "id": "tests_test_changelog_rationale_1" }, { "label": "Return a signed JWT for the given member ID.", "file_type": "rationale", "source_file": "backend/tests/test_changelog.py", "source_location": "L30", "community": 55, "norm_label": "return a signed jwt for the given member id.", "id": "tests_test_changelog_rationale_30" }, { "label": "Return a minimal Member-like namespace.", "file_type": "rationale", "source_file": "backend/tests/test_changelog.py", "source_location": "L54", "community": 6, "norm_label": "return a minimal member-like namespace.", "id": "tests_test_changelog_rationale_54" }, { "label": "A user who has never viewed the changelog gets last_seen_changelog_at: null.", "file_type": "rationale", "source_file": "backend/tests/test_changelog.py", "source_location": "L82", "community": 31, "norm_label": "a user who has never viewed the changelog gets last_seen_changelog_at: null.", "id": "tests_test_changelog_rationale_82" }, { "label": "After marking changelog as seen the GET endpoint returns a non-null timestamp.", "file_type": "rationale", "source_file": "backend/tests/test_changelog.py", "source_location": "L114", "community": 31, "norm_label": "after marking changelog as seen the get endpoint returns a non-null timestamp.", "id": "tests_test_changelog_rationale_114" }, { "label": "Calling mark-seen twice both succeed; second timestamp >= first.", "file_type": "rationale", "source_file": "backend/tests/test_changelog.py", "source_location": "L155", "community": 31, "norm_label": "calling mark-seen twice both succeed; second timestamp >= first.", "id": "tests_test_changelog_rationale_155" }, { "label": "GET /api/changelog/status without credentials returns 401.", "file_type": "rationale", "source_file": "backend/tests/test_changelog.py", "source_location": "L194", "community": 31, "norm_label": "get /api/changelog/status without credentials returns 401.", "id": "tests_test_changelog_rationale_194" }, { "label": "POST /api/changelog/mark-seen without credentials returns 401.", "file_type": "rationale", "source_file": "backend/tests/test_changelog.py", "source_location": "L219", "community": 31, "norm_label": "post /api/changelog/mark-seen without credentials returns 401.", "id": "tests_test_changelog_rationale_219" }, { "label": "Service principals (Bearer token) cannot use the changelog endpoint.", "file_type": "rationale", "source_file": "backend/tests/test_changelog.py", "source_location": "L244", "community": 31, "norm_label": "service principals (bearer token) cannot use the changelog endpoint.", "id": "tests_test_changelog_rationale_244" }, { "label": "test_comparison.py", "file_type": "code", "source_file": "backend/tests/test_comparison.py", "source_location": "L1", "community": 25, "norm_label": "test_comparison.py", "id": "backend_tests_test_comparison_py" }, { "label": "test_compare_returns_404_when_no_completed_siege()", "file_type": "code", "source_file": "backend/tests/test_comparison.py", "source_location": "L47", "community": 25, "norm_label": "test_compare_returns_404_when_no_completed_siege()", "id": "tests_test_comparison_test_compare_returns_404_when_no_completed_siege" }, { "label": "test_compare_with_specific_endpoint_200()", "file_type": "code", "source_file": "backend/tests/test_comparison.py", "source_location": "L75", "community": 25, "norm_label": "test_compare_with_specific_endpoint_200()", "id": "tests_test_comparison_test_compare_with_specific_endpoint_200" }, { "label": "_build_siege_assignments()", "file_type": "code", "source_file": "backend/tests/test_comparison.py", "source_location": "L124", "community": 25, "norm_label": "_build_siege_assignments()", "id": "tests_test_comparison_build_siege_assignments" }, { "label": "test_compare_added_positions()", "file_type": "code", "source_file": "backend/tests/test_comparison.py", "source_location": "L142", "community": 25, "norm_label": "test_compare_added_positions()", "id": "tests_test_comparison_test_compare_added_positions" }, { "label": "test_compare_removed_positions()", "file_type": "code", "source_file": "backend/tests/test_comparison.py", "source_location": "L185", "community": 25, "norm_label": "test_compare_removed_positions()", "id": "tests_test_comparison_test_compare_removed_positions" }, { "label": "test_compare_unchanged_positions()", "file_type": "code", "source_file": "backend/tests/test_comparison.py", "source_location": "L221", "community": 25, "norm_label": "test_compare_unchanged_positions()", "id": "tests_test_comparison_test_compare_unchanged_positions" }, { "label": "test_compare_reserve_positions_excluded()", "file_type": "code", "source_file": "backend/tests/test_comparison.py", "source_location": "L251", "community": 25, "norm_label": "test_compare_reserve_positions_excluded()", "id": "tests_test_comparison_test_compare_reserve_positions_excluded" }, { "label": "test_inactive_member_excluded_from_comparison()", "file_type": "code", "source_file": "backend/tests/test_comparison.py", "source_location": "L276", "community": 25, "norm_label": "test_inactive_member_excluded_from_comparison()", "id": "tests_test_comparison_test_inactive_member_excluded_from_comparison" }, { "label": "test_inactive_member_rows_absent_from_comparison_result()", "file_type": "code", "source_file": "backend/tests/test_comparison.py", "source_location": "L307", "community": 25, "norm_label": "test_inactive_member_rows_absent_from_comparison_result()", "id": "tests_test_comparison_test_inactive_member_rows_absent_from_comparison_result" }, { "label": "test_get_most_recent_completed_returns_none()", "file_type": "code", "source_file": "backend/tests/test_comparison.py", "source_location": "L348", "community": 25, "norm_label": "test_get_most_recent_completed_returns_none()", "id": "tests_test_comparison_test_get_most_recent_completed_returns_none" }, { "label": "Tests for siege comparison service and endpoints.", "file_type": "rationale", "source_file": "backend/tests/test_comparison.py", "source_location": "L1", "community": 25, "norm_label": "tests for siege comparison service and endpoints.", "id": "tests_test_comparison_rationale_1" }, { "label": "Build (Position, BuildingGroup, Building) rows for mock execute results.", "file_type": "rationale", "source_file": "backend/tests/test_comparison.py", "source_location": "L125", "community": 25, "norm_label": "build (position, buildinggroup, building) rows for mock execute results.", "id": "tests_test_comparison_rationale_125" }, { "label": "Position in B but not A \u2192 appears in added.", "file_type": "rationale", "source_file": "backend/tests/test_comparison.py", "source_location": "L143", "community": 25, "norm_label": "position in b but not a \u2192 appears in added.", "id": "tests_test_comparison_rationale_143" }, { "label": "Position in A but not B \u2192 appears in removed.", "file_type": "rationale", "source_file": "backend/tests/test_comparison.py", "source_location": "L186", "community": 25, "norm_label": "position in a but not b \u2192 appears in removed.", "id": "tests_test_comparison_rationale_186" }, { "label": "Position in both A and B \u2192 appears in unchanged.", "file_type": "rationale", "source_file": "backend/tests/test_comparison.py", "source_location": "L222", "community": 25, "norm_label": "position in both a and b \u2192 appears in unchanged.", "id": "tests_test_comparison_rationale_222" }, { "label": "Reserve positions must not appear in any diff.", "file_type": "rationale", "source_file": "backend/tests/test_comparison.py", "source_location": "L252", "community": 25, "norm_label": "reserve positions must not appear in any diff.", "id": "tests_test_comparison_rationale_252" }, { "label": "Inactive members with assignments (e.g. from a cloned siege) must not appear in", "file_type": "rationale", "source_file": "backend/tests/test_comparison.py", "source_location": "L277", "community": 25, "norm_label": "inactive members with assignments (e.g. from a cloned siege) must not appear in", "id": "tests_test_comparison_rationale_277" }, { "label": "Integration-style: inactive member rows filtered by query do not appear in resul", "file_type": "rationale", "source_file": "backend/tests/test_comparison.py", "source_location": "L308", "community": 25, "norm_label": "integration-style: inactive member rows filtered by query do not appear in resul", "id": "tests_test_comparison_rationale_308" }, { "label": "Returns None when no completed siege exists.", "file_type": "rationale", "source_file": "backend/tests/test_comparison.py", "source_location": "L349", "community": 25, "norm_label": "returns none when no completed siege exists.", "id": "tests_test_comparison_rationale_349" }, { "label": "Returns the siege when one exists.", "file_type": "rationale", "source_file": "backend/tests/test_comparison.py", "source_location": "L365", "community": 25, "norm_label": "returns the siege when one exists.", "id": "tests_test_comparison_rationale_365" }, { "label": "test_config.py", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L1", "community": 10, "norm_label": "test_config.py", "id": "backend_tests_test_config_py" }, { "label": "TestSettingsDefaults", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L23", "community": 10, "norm_label": "testsettingsdefaults", "id": "tests_test_config_testsettingsdefaults" }, { "label": "._make_settings()", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L26", "community": 10, "norm_label": "._make_settings()", "id": "tests_test_config_testsettingsdefaults_make_settings" }, { "label": ".test_discord_client_id_defaults_to_empty()", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L38", "community": 10, "norm_label": ".test_discord_client_id_defaults_to_empty()", "id": "tests_test_config_testsettingsdefaults_test_discord_client_id_defaults_to_empty" }, { "label": ".test_discord_client_secret_defaults_to_empty()", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L42", "community": 10, "norm_label": ".test_discord_client_secret_defaults_to_empty()", "id": "tests_test_config_testsettingsdefaults_test_discord_client_secret_defaults_to_empty" }, { "label": ".test_discord_redirect_uri_defaults_to_empty()", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L46", "community": 10, "norm_label": ".test_discord_redirect_uri_defaults_to_empty()", "id": "tests_test_config_testsettingsdefaults_test_discord_redirect_uri_defaults_to_empty" }, { "label": ".test_session_secret_defaults_to_empty()", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L50", "community": 10, "norm_label": ".test_session_secret_defaults_to_empty()", "id": "tests_test_config_testsettingsdefaults_test_session_secret_defaults_to_empty" }, { "label": ".test_bot_service_token_defaults_to_empty()", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L54", "community": 10, "norm_label": ".test_bot_service_token_defaults_to_empty()", "id": "tests_test_config_testsettingsdefaults_test_bot_service_token_defaults_to_empty" }, { "label": ".test_auth_disabled_defaults_to_false()", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L58", "community": 10, "norm_label": ".test_auth_disabled_defaults_to_false()", "id": "tests_test_config_testsettingsdefaults_test_auth_disabled_defaults_to_false" }, { "label": ".test_discord_required_role_defaults_to_clan_deputies()", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L62", "community": 10, "norm_label": ".test_discord_required_role_defaults_to_clan_deputies()", "id": "tests_test_config_testsettingsdefaults_test_discord_required_role_defaults_to_clan_deputies" }, { "label": ".test_discord_required_role_accepts_override()", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L66", "community": 10, "norm_label": ".test_discord_required_role_accepts_override()", "id": "tests_test_config_testsettingsdefaults_test_discord_required_role_accepts_override" }, { "label": ".test_allowed_origins_defaults_to_localhost()", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L70", "community": 10, "norm_label": ".test_allowed_origins_defaults_to_localhost()", "id": "tests_test_config_testsettingsdefaults_test_allowed_origins_defaults_to_localhost" }, { "label": ".test_allowed_origins_accepts_override()", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L74", "community": 10, "norm_label": ".test_allowed_origins_accepts_override()", "id": "tests_test_config_testsettingsdefaults_test_allowed_origins_accepts_override" }, { "label": ".test_allowed_origins_accepts_comma_separated_values()", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L78", "community": 10, "norm_label": ".test_allowed_origins_accepts_comma_separated_values()", "id": "tests_test_config_testsettingsdefaults_test_allowed_origins_accepts_comma_separated_values" }, { "label": ".test_new_fields_accept_provided_values()", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L82", "community": 10, "norm_label": ".test_new_fields_accept_provided_values()", "id": "tests_test_config_testsettingsdefaults_test_new_fields_accept_provided_values" }, { "label": "TestEnvironmentRequired", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L99", "community": 10, "norm_label": "testenvironmentrequired", "id": "tests_test_config_testenvironmentrequired" }, { "label": ".test_missing_environment_raises_validation_error()", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L102", "community": 10, "norm_label": ".test_missing_environment_raises_validation_error()", "id": "tests_test_config_testenvironmentrequired_test_missing_environment_raises_validation_error" }, { "label": "TestLifespanAuthGuard", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L126", "community": 10, "norm_label": "testlifespanauthguard", "id": "tests_test_config_testlifespanauthguard" }, { "label": "test_auth_disabled_allowed_in_development()", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L130", "community": 10, "norm_label": "test_auth_disabled_allowed_in_development()", "id": "tests_test_config_test_auth_disabled_allowed_in_development" }, { "label": "test_auth_disabled_rejected_in_production()", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L162", "community": 10, "norm_label": "test_auth_disabled_rejected_in_production()", "id": "tests_test_config_test_auth_disabled_rejected_in_production" }, { "label": "test_auth_disabled_rejected_in_test_environment()", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L186", "community": 10, "norm_label": "test_auth_disabled_rejected_in_test_environment()", "id": "tests_test_config_test_auth_disabled_rejected_in_test_environment" }, { "label": "test_auth_not_disabled_allowed_in_any_environment()", "file_type": "code", "source_file": "backend/tests/test_config.py", "source_location": "L208", "community": 10, "norm_label": "test_auth_not_disabled_allowed_in_any_environment()", "id": "tests_test_config_test_auth_not_disabled_allowed_in_any_environment" }, { "label": "Tests for backend/app/config.py and the lifespan startup guard in main.py. Cove", "file_type": "rationale", "source_file": "backend/tests/test_config.py", "source_location": "L1", "community": 10, "norm_label": "tests for backend/app/config.py and the lifespan startup guard in main.py. cove", "id": "tests_test_config_rationale_1" }, { "label": "New auth fields should be present and have correct empty-string defaults.", "file_type": "rationale", "source_file": "backend/tests/test_config.py", "source_location": "L24", "community": 10, "norm_label": "new auth fields should be present and have correct empty-string defaults.", "id": "tests_test_config_rationale_24" }, { "label": "Construct a Settings instance with all required fields plus optional overrides.", "file_type": "rationale", "source_file": "backend/tests/test_config.py", "source_location": "L27", "community": 10, "norm_label": "construct a settings instance with all required fields plus optional overrides.", "id": "tests_test_config_rationale_27" }, { "label": "ENVIRONMENT must be explicitly provided \u2014 no default allows silent misconfigurat", "file_type": "rationale", "source_file": "backend/tests/test_config.py", "source_location": "L100", "community": 10, "norm_label": "environment must be explicitly provided \u2014 no default allows silent misconfigurat", "id": "tests_test_config_rationale_100" }, { "label": "auth_disabled=True must raise at startup when environment != 'development'.", "file_type": "rationale", "source_file": "backend/tests/test_config.py", "source_location": "L127", "community": 10, "norm_label": "auth_disabled=true must raise at startup when environment != 'development'.", "id": "tests_test_config_rationale_127" }, { "label": "No RuntimeError when AUTH_DISABLED=true and ENVIRONMENT=development.", "file_type": "rationale", "source_file": "backend/tests/test_config.py", "source_location": "L131", "community": 104, "norm_label": "no runtimeerror when auth_disabled=true and environment=development.", "id": "tests_test_config_rationale_131" }, { "label": "RuntimeError raised at startup when AUTH_DISABLED=true outside development.", "file_type": "rationale", "source_file": "backend/tests/test_config.py", "source_location": "L163", "community": 105, "norm_label": "runtimeerror raised at startup when auth_disabled=true outside development.", "id": "tests_test_config_rationale_163" }, { "label": "RuntimeError raised when AUTH_DISABLED=true and environment is 'test'.", "file_type": "rationale", "source_file": "backend/tests/test_config.py", "source_location": "L187", "community": 106, "norm_label": "runtimeerror raised when auth_disabled=true and environment is 'test'.", "id": "tests_test_config_rationale_187" }, { "label": "No RuntimeError when auth_disabled=False regardless of environment.", "file_type": "rationale", "source_file": "backend/tests/test_config.py", "source_location": "L209", "community": 107, "norm_label": "no runtimeerror when auth_disabled=false regardless of environment.", "id": "tests_test_config_rationale_209" }, { "label": "test_config_endpoint.py", "file_type": "code", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L1", "community": 10, "norm_label": "test_config_endpoint.py", "id": "backend_tests_test_config_endpoint_py" }, { "label": "override_db()", "file_type": "code", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L27", "community": 10, "norm_label": "override_db()", "id": "tests_test_config_endpoint_override_db" }, { "label": "test_config_returns_auth_disabled_true()", "file_type": "code", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L40", "community": 10, "norm_label": "test_config_returns_auth_disabled_true()", "id": "tests_test_config_endpoint_test_config_returns_auth_disabled_true" }, { "label": "test_config_endpoint_is_public()", "file_type": "code", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L94", "community": 10, "norm_label": "test_config_endpoint_is_public()", "id": "tests_test_config_endpoint_test_config_endpoint_is_public" }, { "label": "TestStartupSessionSecretGuard", "file_type": "code", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L123", "community": 10, "norm_label": "teststartupsessionsecretguard", "id": "tests_test_config_endpoint_teststartupsessionsecretguard" }, { "label": "test_missing_session_secret_raises_at_startup()", "file_type": "code", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L127", "community": 10, "norm_label": "test_missing_session_secret_raises_at_startup()", "id": "tests_test_config_endpoint_test_missing_session_secret_raises_at_startup" }, { "label": "test_changeme_placeholder_raises_at_startup()", "file_type": "code", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L149", "community": 10, "norm_label": "test_changeme_placeholder_raises_at_startup()", "id": "tests_test_config_endpoint_test_changeme_placeholder_raises_at_startup" }, { "label": "test_changeme_uppercase_raises_at_startup()", "file_type": "code", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L173", "community": 10, "norm_label": "test_changeme_uppercase_raises_at_startup()", "id": "tests_test_config_endpoint_test_changeme_uppercase_raises_at_startup" }, { "label": "test_present_session_secret_does_not_raise()", "file_type": "code", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L197", "community": 10, "norm_label": "test_present_session_secret_does_not_raise()", "id": "tests_test_config_endpoint_test_present_session_secret_does_not_raise" }, { "label": "Tests for the /api/config public endpoint and startup guards. Covers: - /api/", "file_type": "rationale", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L1", "community": 10, "norm_label": "tests for the /api/config public endpoint and startup guards. covers: - /api/", "id": "tests_test_config_endpoint_rationale_1" }, { "label": "GET /api/config returns the current auth_disabled flag.", "file_type": "rationale", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L37", "community": 10, "norm_label": "get /api/config returns the current auth_disabled flag.", "id": "tests_test_config_endpoint_rationale_37" }, { "label": "Config endpoint must be reachable without an Authorization header.", "file_type": "rationale", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L95", "community": 108, "norm_label": "config endpoint must be reachable without an authorization header.", "id": "tests_test_config_endpoint_rationale_95" }, { "label": "Backend must refuse to start when SESSION_SECRET is missing and auth is enabled.", "file_type": "rationale", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L124", "community": 10, "norm_label": "backend must refuse to start when session_secret is missing and auth is enabled.", "id": "tests_test_config_endpoint_rationale_124" }, { "label": "RuntimeError raised when auth_disabled=False and session_secret is empty.", "file_type": "rationale", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L128", "community": 109, "norm_label": "runtimeerror raised when auth_disabled=false and session_secret is empty.", "id": "tests_test_config_endpoint_rationale_128" }, { "label": "RuntimeError raised when SESSION_SECRET contains the default placeholder.", "file_type": "rationale", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L150", "community": 110, "norm_label": "runtimeerror raised when session_secret contains the default placeholder.", "id": "tests_test_config_endpoint_rationale_150" }, { "label": "RuntimeError raised for uppercase variant of the placeholder.", "file_type": "rationale", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L174", "community": 111, "norm_label": "runtimeerror raised for uppercase variant of the placeholder.", "id": "tests_test_config_endpoint_rationale_174" }, { "label": "No RuntimeError when auth_disabled=False and session_secret is provided.", "file_type": "rationale", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L198", "community": 112, "norm_label": "no runtimeerror when auth_disabled=false and session_secret is provided.", "id": "tests_test_config_endpoint_rationale_198" }, { "label": "test_cors.py", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L1", "community": 17, "norm_label": "test_cors.py", "id": "backend_tests_test_cors_py" }, { "label": "_make_app()", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L26", "community": 17, "norm_label": "_make_app()", "id": "tests_test_cors_make_app" }, { "label": "_cors_headers()", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L52", "community": 17, "norm_label": "_cors_headers()", "id": "tests_test_cors_cors_headers" }, { "label": "TestAllowedOriginsParsingIntegration", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L64", "community": 17, "norm_label": "testallowedoriginsparsingintegration", "id": "tests_test_cors_testallowedoriginsparsingintegration" }, { "label": ".test_single_origin_is_allowed()", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L67", "community": 17, "norm_label": ".test_single_origin_is_allowed()", "id": "tests_test_cors_testallowedoriginsparsingintegration_test_single_origin_is_allowed" }, { "label": ".test_first_of_two_origins_is_allowed()", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L72", "community": 17, "norm_label": ".test_first_of_two_origins_is_allowed()", "id": "tests_test_cors_testallowedoriginsparsingintegration_test_first_of_two_origins_is_allowed" }, { "label": ".test_second_of_two_origins_is_allowed()", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L77", "community": 17, "norm_label": ".test_second_of_two_origins_is_allowed()", "id": "tests_test_cors_testallowedoriginsparsingintegration_test_second_of_two_origins_is_allowed" }, { "label": ".test_whitespace_around_origins_is_stripped()", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L82", "community": 17, "norm_label": ".test_whitespace_around_origins_is_stripped()", "id": "tests_test_cors_testallowedoriginsparsingintegration_test_whitespace_around_origins_is_stripped" }, { "label": ".test_trailing_comma_is_ignored()", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L88", "community": 17, "norm_label": ".test_trailing_comma_is_ignored()", "id": "tests_test_cors_testallowedoriginsparsingintegration_test_trailing_comma_is_ignored" }, { "label": ".test_leading_comma_is_ignored()", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L94", "community": 17, "norm_label": ".test_leading_comma_is_ignored()", "id": "tests_test_cors_testallowedoriginsparsingintegration_test_leading_comma_is_ignored" }, { "label": ".test_whitespace_only_entries_are_excluded()", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L100", "community": 17, "norm_label": ".test_whitespace_only_entries_are_excluded()", "id": "tests_test_cors_testallowedoriginsparsingintegration_test_whitespace_only_entries_are_excluded" }, { "label": "TestAllowedOriginReceivesCorsHeaders", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L112", "community": 17, "norm_label": "testallowedoriginreceivescorsheaders", "id": "tests_test_cors_testallowedoriginreceivescorsheaders" }, { "label": ".test_allowed_origin_acao_matches_request_origin()", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L120", "community": 17, "norm_label": ".test_allowed_origin_acao_matches_request_origin()", "id": "tests_test_cors_testallowedoriginreceivescorsheaders_test_allowed_origin_acao_matches_request_origin" }, { "label": ".test_localhost_dev_origin_allowed_by_default_config()", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L132", "community": 17, "norm_label": ".test_localhost_dev_origin_allowed_by_default_config()", "id": "tests_test_cors_testallowedoriginreceivescorsheaders_test_localhost_dev_origin_allowed_by_default_config" }, { "label": "TestDisallowedOriginReceivesNoCorsHeaders", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L144", "community": 17, "norm_label": "testdisallowedoriginreceivesnocorsheaders", "id": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders" }, { "label": ".test_disallowed_origin_has_no_acao_header()", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L147", "community": 17, "norm_label": ".test_disallowed_origin_has_no_acao_header()", "id": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_disallowed_origin_has_no_acao_header" }, { "label": ".test_subdomain_not_allowed_when_only_apex_configured()", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L152", "community": 17, "norm_label": ".test_subdomain_not_allowed_when_only_apex_configured()", "id": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_subdomain_not_allowed_when_only_apex_configured" }, { "label": ".test_http_disallowed_when_only_https_configured()", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L158", "community": 17, "norm_label": ".test_http_disallowed_when_only_https_configured()", "id": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_http_disallowed_when_only_https_configured" }, { "label": ".test_wrong_port_disallowed()", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L164", "community": 17, "norm_label": ".test_wrong_port_disallowed()", "id": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_wrong_port_disallowed" }, { "label": "TestPreflightRequest", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L176", "community": 17, "norm_label": "testpreflightrequest", "id": "tests_test_cors_testpreflightrequest" }, { "label": ".test_preflight_allowed_origin_returns_200()", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L179", "community": 17, "norm_label": ".test_preflight_allowed_origin_returns_200()", "id": "tests_test_cors_testpreflightrequest_test_preflight_allowed_origin_returns_200" }, { "label": ".test_preflight_disallowed_origin_has_no_acao()", "file_type": "code", "source_file": "backend/tests/test_cors.py", "source_location": "L191", "community": 17, "norm_label": ".test_preflight_disallowed_origin_has_no_acao()", "id": "tests_test_cors_testpreflightrequest_test_preflight_disallowed_origin_has_no_acao" }, { "label": "Integration tests for the CORS middleware wired in app/main.py. The middleware", "file_type": "rationale", "source_file": "backend/tests/test_cors.py", "source_location": "L1", "community": 17, "norm_label": "integration tests for the cors middleware wired in app/main.py. the middleware", "id": "tests_test_cors_rationale_1" }, { "label": "Return a minimal FastAPI app whose CORS middleware mirrors main.py logic. T", "file_type": "rationale", "source_file": "backend/tests/test_cors.py", "source_location": "L27", "community": 17, "norm_label": "return a minimal fastapi app whose cors middleware mirrors main.py logic. t", "id": "tests_test_cors_rationale_27" }, { "label": "Send a simple GET with an Origin header and return the response headers.", "file_type": "rationale", "source_file": "backend/tests/test_cors.py", "source_location": "L53", "community": 17, "norm_label": "send a simple get with an origin header and return the response headers.", "id": "tests_test_cors_rationale_53" }, { "label": "The middleware must honour each comma-separated origin independently.", "file_type": "rationale", "source_file": "backend/tests/test_cors.py", "source_location": "L65", "community": 17, "norm_label": "the middleware must honour each comma-separated origin independently.", "id": "tests_test_cors_rationale_65" }, { "label": "Spaces around commas must not break origin matching.", "file_type": "rationale", "source_file": "backend/tests/test_cors.py", "source_location": "L83", "community": 17, "norm_label": "spaces around commas must not break origin matching.", "id": "tests_test_cors_rationale_83" }, { "label": "A trailing comma must not produce an empty string in the origins list.", "file_type": "rationale", "source_file": "backend/tests/test_cors.py", "source_location": "L89", "community": 17, "norm_label": "a trailing comma must not produce an empty string in the origins list.", "id": "tests_test_cors_rationale_89" }, { "label": "A leading comma must not produce an empty string in the origins list.", "file_type": "rationale", "source_file": "backend/tests/test_cors.py", "source_location": "L95", "community": 17, "norm_label": "a leading comma must not produce an empty string in the origins list.", "id": "tests_test_cors_rationale_95" }, { "label": "Entries that are only whitespace after stripping must be dropped.", "file_type": "rationale", "source_file": "backend/tests/test_cors.py", "source_location": "L101", "community": 17, "norm_label": "entries that are only whitespace after stripping must be dropped.", "id": "tests_test_cors_rationale_101" }, { "label": "A request from an explicitly allowed origin must get CORS response headers.", "file_type": "rationale", "source_file": "backend/tests/test_cors.py", "source_location": "L113", "community": 17, "norm_label": "a request from an explicitly allowed origin must get cors response headers.", "id": "tests_test_cors_rationale_113" }, { "label": "The echoed origin must match the request, not be a wildcard.", "file_type": "rationale", "source_file": "backend/tests/test_cors.py", "source_location": "L121", "community": 17, "norm_label": "the echoed origin must match the request, not be a wildcard.", "id": "tests_test_cors_rationale_121" }, { "label": "allow_credentials=True means the vary/credentials header is set.", "file_type": "rationale", "source_file": "backend/tests/test_cors.py", "source_location": "L127", "community": 17, "norm_label": "allow_credentials=true means the vary/credentials header is set.", "id": "tests_test_cors_rationale_127" }, { "label": "The default value from Settings must allow the dev frontend.", "file_type": "rationale", "source_file": "backend/tests/test_cors.py", "source_location": "L133", "community": 17, "norm_label": "the default value from settings must allow the dev frontend.", "id": "tests_test_cors_rationale_133" }, { "label": "A request from an origin not in the allow-list must NOT get CORS headers.", "file_type": "rationale", "source_file": "backend/tests/test_cors.py", "source_location": "L145", "community": 17, "norm_label": "a request from an origin not in the allow-list must not get cors headers.", "id": "tests_test_cors_rationale_145" }, { "label": "Subdomains are not implicitly covered \u2014 must be listed explicitly.", "file_type": "rationale", "source_file": "backend/tests/test_cors.py", "source_location": "L153", "community": 17, "norm_label": "subdomains are not implicitly covered \u2014 must be listed explicitly.", "id": "tests_test_cors_rationale_153" }, { "label": "HTTP and HTTPS are distinct origins.", "file_type": "rationale", "source_file": "backend/tests/test_cors.py", "source_location": "L159", "community": 17, "norm_label": "http and https are distinct origins.", "id": "tests_test_cors_rationale_159" }, { "label": "The same host on a different port is a distinct origin.", "file_type": "rationale", "source_file": "backend/tests/test_cors.py", "source_location": "L165", "community": 17, "norm_label": "the same host on a different port is a distinct origin.", "id": "tests_test_cors_rationale_165" }, { "label": "OPTIONS preflight with an allowed origin must return 200 with CORS headers.", "file_type": "rationale", "source_file": "backend/tests/test_cors.py", "source_location": "L177", "community": 17, "norm_label": "options preflight with an allowed origin must return 200 with cors headers.", "id": "tests_test_cors_rationale_177" }, { "label": "test_discord_sync.py", "file_type": "code", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L1", "community": 13, "norm_label": "test_discord_sync.py", "id": "backend_tests_test_discord_sync_py" }, { "label": "_make_sync_match()", "file_type": "code", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L21", "community": 13, "norm_label": "_make_sync_match()", "id": "tests_test_discord_sync_make_sync_match" }, { "label": "test_preview_returns_exact_match()", "file_type": "code", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L50", "community": 13, "norm_label": "test_preview_returns_exact_match()", "id": "tests_test_discord_sync_test_preview_returns_exact_match" }, { "label": "test_preview_returns_suggested_match()", "file_type": "code", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L75", "community": 13, "norm_label": "test_preview_returns_suggested_match()", "id": "tests_test_discord_sync_test_preview_returns_suggested_match" }, { "label": "test_preview_returns_ambiguous_match()", "file_type": "code", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L95", "community": 13, "norm_label": "test_preview_returns_ambiguous_match()", "id": "tests_test_discord_sync_test_preview_returns_ambiguous_match" }, { "label": "test_preview_reports_unmatched_clan_members()", "file_type": "code", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L135", "community": 13, "norm_label": "test_preview_reports_unmatched_clan_members()", "id": "tests_test_discord_sync_test_preview_reports_unmatched_clan_members" }, { "label": "test_apply_updates_matched_members()", "file_type": "code", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L160", "community": 13, "norm_label": "test_apply_updates_matched_members()", "id": "tests_test_discord_sync_test_apply_updates_matched_members" }, { "label": "test_apply_with_empty_list_returns_zero()", "file_type": "code", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L181", "community": 13, "norm_label": "test_apply_with_empty_list_returns_zero()", "id": "tests_test_discord_sync_test_apply_with_empty_list_returns_zero" }, { "label": "test_apply_with_unknown_member_id_skips_gracefully()", "file_type": "code", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L196", "community": 13, "norm_label": "test_apply_with_unknown_member_id_skips_gracefully()", "id": "tests_test_discord_sync_test_apply_with_unknown_member_id_skips_gracefully" }, { "label": "test_service_preview_exact_discord_id_match()", "file_type": "code", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L223", "community": 13, "norm_label": "test_service_preview_exact_discord_id_match()", "id": "tests_test_discord_sync_test_service_preview_exact_discord_id_match" }, { "label": "test_service_preview_suggested_name_username_match()", "file_type": "code", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L297", "community": 13, "norm_label": "test_service_preview_suggested_name_username_match()", "id": "tests_test_discord_sync_test_service_preview_suggested_name_username_match" }, { "label": "test_service_preview_ambiguous_multiple_guild_matches()", "file_type": "code", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L368", "community": 13, "norm_label": "test_service_preview_ambiguous_multiple_guild_matches()", "id": "tests_test_discord_sync_test_service_preview_ambiguous_multiple_guild_matches" }, { "label": "test_service_preview_unmatched_guild_and_clan()", "file_type": "code", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L406", "community": 13, "norm_label": "test_service_preview_unmatched_guild_and_clan()", "id": "tests_test_discord_sync_test_service_preview_unmatched_guild_and_clan" }, { "label": "test_service_apply_updates_discord_fields()", "file_type": "code", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L442", "community": 13, "norm_label": "test_service_apply_updates_discord_fields()", "id": "tests_test_discord_sync_test_service_apply_updates_discord_fields" }, { "label": "test_service_apply_unknown_member_id_skipped()", "file_type": "code", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L474", "community": 13, "norm_label": "test_service_apply_unknown_member_id_skipped()", "id": "tests_test_discord_sync_test_service_apply_unknown_member_id_skipped" }, { "label": "test_service_apply_empty_list_returns_zero()", "file_type": "code", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L498", "community": 13, "norm_label": "test_service_apply_empty_list_returns_zero()", "id": "tests_test_discord_sync_test_service_apply_empty_list_returns_zero" }, { "label": "Endpoint tests for Discord sync \u2014 /api/members/discord-sync/* All tests mock th", "file_type": "rationale", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L1", "community": 13, "norm_label": "endpoint tests for discord sync \u2014 /api/members/discord-sync/* all tests mock th", "id": "tests_test_discord_sync_rationale_1" }, { "label": "Exact confidence match (discord_id already set) is returned correctly.", "file_type": "rationale", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L51", "community": 13, "norm_label": "exact confidence match (discord_id already set) is returned correctly.", "id": "tests_test_discord_sync_rationale_51" }, { "label": "Suggested confidence (name heuristic) is returned correctly.", "file_type": "rationale", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L76", "community": 13, "norm_label": "suggested confidence (name heuristic) is returned correctly.", "id": "tests_test_discord_sync_rationale_76" }, { "label": "Ambiguous confidence (multiple guild members could match) is returned.", "file_type": "rationale", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L96", "community": 13, "norm_label": "ambiguous confidence (multiple guild members could match) is returned.", "id": "tests_test_discord_sync_rationale_96" }, { "label": "Guild members with no clan counterpart appear in unmatched_guild_members.", "file_type": "rationale", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L116", "community": 13, "norm_label": "guild members with no clan counterpart appear in unmatched_guild_members.", "id": "tests_test_discord_sync_rationale_116" }, { "label": "Clan members with no guild counterpart appear in unmatched_clan_members.", "file_type": "rationale", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L136", "community": 13, "norm_label": "clan members with no guild counterpart appear in unmatched_clan_members.", "id": "tests_test_discord_sync_rationale_136" }, { "label": "Apply returns the count of updated members.", "file_type": "rationale", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L161", "community": 13, "norm_label": "apply returns the count of updated members.", "id": "tests_test_discord_sync_rationale_161" }, { "label": "Applying an empty list returns updated=0 without crashing.", "file_type": "rationale", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L182", "community": 13, "norm_label": "applying an empty list returns updated=0 without crashing.", "id": "tests_test_discord_sync_rationale_182" }, { "label": "Unknown member_ids are silently skipped; updated count reflects only real rows.", "file_type": "rationale", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L197", "community": 13, "norm_label": "unknown member_ids are silently skipped; updated count reflects only real rows.", "id": "tests_test_discord_sync_rationale_197" }, { "label": "Heuristic 1: discord_id already set on the clan member \u2192 exact confidence.", "file_type": "rationale", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L224", "community": 13, "norm_label": "heuristic 1: discord_id already set on the clan member \u2192 exact confidence.", "id": "tests_test_discord_sync_rationale_224" }, { "label": "Heuristic 2: discord_username set and matches guild username \u2192 exact confidence.", "file_type": "rationale", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L263", "community": 13, "norm_label": "heuristic 2: discord_username set and matches guild username \u2192 exact confidence.", "id": "tests_test_discord_sync_rationale_263" }, { "label": "Heuristic 3: clan name matches guild username \u2192 suggested confidence.", "file_type": "rationale", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L298", "community": 13, "norm_label": "heuristic 3: clan name matches guild username \u2192 suggested confidence.", "id": "tests_test_discord_sync_rationale_298" }, { "label": "Heuristic 4: clan name matches guild display_name \u2192 suggested confidence.", "file_type": "rationale", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L333", "community": 13, "norm_label": "heuristic 4: clan name matches guild display_name \u2192 suggested confidence.", "id": "tests_test_discord_sync_rationale_333" }, { "label": "Two guild members match the same clan member \u2192 ambiguous.", "file_type": "rationale", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L369", "community": 13, "norm_label": "two guild members match the same clan member \u2192 ambiguous.", "id": "tests_test_discord_sync_rationale_369" }, { "label": "Members with no counterpart appear in the respective unmatched lists.", "file_type": "rationale", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L407", "community": 13, "norm_label": "members with no counterpart appear in the respective unmatched lists.", "id": "tests_test_discord_sync_rationale_407" }, { "label": "apply_discord_sync writes discord_username and discord_id to matched members.", "file_type": "rationale", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L443", "community": 13, "norm_label": "apply_discord_sync writes discord_username and discord_id to matched members.", "id": "tests_test_discord_sync_rationale_443" }, { "label": "apply_discord_sync skips member_ids not found in the DB without crashing.", "file_type": "rationale", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L475", "community": 13, "norm_label": "apply_discord_sync skips member_ids not found in the db without crashing.", "id": "tests_test_discord_sync_rationale_475" }, { "label": "apply_discord_sync with an empty list returns updated=0 immediately.", "file_type": "rationale", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L499", "community": 13, "norm_label": "apply_discord_sync with an empty list returns updated=0 immediately.", "id": "tests_test_discord_sync_rationale_499" }, { "label": "test_enums.py", "file_type": "code", "source_file": "backend/tests/test_enums.py", "source_location": "L1", "community": 63, "norm_label": "test_enums.py", "id": "backend_tests_test_enums_py" }, { "label": "test_building_type_labels_covers_all_values()", "file_type": "code", "source_file": "backend/tests/test_enums.py", "source_location": "L6", "community": 63, "norm_label": "test_building_type_labels_covers_all_values()", "id": "tests_test_enums_test_building_type_labels_covers_all_values" }, { "label": "test_building_type_labels_are_friendly_strings()", "file_type": "code", "source_file": "backend/tests/test_enums.py", "source_location": "L16", "community": 63, "norm_label": "test_building_type_labels_are_friendly_strings()", "id": "tests_test_enums_test_building_type_labels_are_friendly_strings" }, { "label": "Tests for enum definitions and associated constants in app.models.enums.", "file_type": "rationale", "source_file": "backend/tests/test_enums.py", "source_location": "L1", "community": 63, "norm_label": "tests for enum definitions and associated constants in app.models.enums.", "id": "tests_test_enums_rationale_1" }, { "label": "Every BuildingType member must have an entry in BUILDING_TYPE_LABELS. This", "file_type": "rationale", "source_file": "backend/tests/test_enums.py", "source_location": "L7", "community": 63, "norm_label": "every buildingtype member must have an entry in building_type_labels. this", "id": "tests_test_enums_rationale_7" }, { "label": "BUILDING_TYPE_LABELS values must be non-empty title-cased display strings.", "file_type": "rationale", "source_file": "backend/tests/test_enums.py", "source_location": "L17", "community": 63, "norm_label": "building_type_labels values must be non-empty title-cased display strings.", "id": "tests_test_enums_rationale_17" }, { "label": "test_health.py", "file_type": "code", "source_file": "backend/tests/test_health.py", "source_location": "L1", "community": 10, "norm_label": "test_health.py", "id": "backend_tests_test_health_py" }, { "label": "mock_db()", "file_type": "code", "source_file": "backend/tests/test_health.py", "source_location": "L11", "community": 10, "norm_label": "mock_db()", "id": "tests_test_health_mock_db" }, { "label": "test_health_returns_healthy()", "file_type": "code", "source_file": "backend/tests/test_health.py", "source_location": "L18", "community": 10, "norm_label": "test_health_returns_healthy()", "id": "tests_test_health_test_health_returns_healthy" }, { "label": "Health endpoint returns 200 and healthy status when DB is reachable.", "file_type": "rationale", "source_file": "backend/tests/test_health.py", "source_location": "L19", "community": 10, "norm_label": "health endpoint returns 200 and healthy status when db is reachable.", "id": "tests_test_health_rationale_19" }, { "label": "test_image_gen.py", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L1", "community": 2, "norm_label": "test_image_gen.py", "id": "backend_tests_test_image_gen_py" }, { "label": "_make_building_dict()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L26", "community": 2, "norm_label": "_make_building_dict()", "id": "tests_test_image_gen_make_building_dict" }, { "label": "_make_group_dict()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L43", "community": 2, "norm_label": "_make_group_dict()", "id": "tests_test_image_gen_make_group_dict" }, { "label": "test_build_assignments_html_contains_title()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L88", "community": 2, "norm_label": "test_build_assignments_html_contains_title()", "id": "tests_test_image_gen_test_build_assignments_html_contains_title" }, { "label": "test_build_assignments_html_contains_building_type()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L95", "community": 2, "norm_label": "test_build_assignments_html_contains_building_type()", "id": "tests_test_image_gen_test_build_assignments_html_contains_building_type" }, { "label": "test_build_assignments_html_reserve_cell()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L105", "community": 2, "norm_label": "test_build_assignments_html_reserve_cell()", "id": "tests_test_image_gen_test_build_assignments_html_reserve_cell" }, { "label": "test_build_assignments_html_disabled_cell()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L114", "community": 2, "norm_label": "test_build_assignments_html_disabled_cell()", "id": "tests_test_image_gen_test_build_assignments_html_disabled_cell" }, { "label": "test_build_assignments_html_empty_board()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L123", "community": 2, "norm_label": "test_build_assignments_html_empty_board()", "id": "tests_test_image_gen_test_build_assignments_html_empty_board" }, { "label": "test_build_assignments_html_all_building_types_colored()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L130", "community": 2, "norm_label": "test_build_assignments_html_all_building_types_colored()", "id": "tests_test_image_gen_test_build_assignments_html_all_building_types_colored" }, { "label": "test_build_reserves_html_contains_title()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L150", "community": 2, "norm_label": "test_build_reserves_html_contains_title()", "id": "tests_test_image_gen_test_build_reserves_html_contains_title" }, { "label": "test_build_reserves_html_contains_member()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L156", "community": 2, "norm_label": "test_build_reserves_html_contains_member()", "id": "tests_test_image_gen_test_build_reserves_html_contains_member" }, { "label": "test_build_reserves_html_day1_color()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L162", "community": 2, "norm_label": "test_build_reserves_html_day1_color()", "id": "tests_test_image_gen_test_build_reserves_html_day1_color" }, { "label": "test_build_reserves_html_no_role_column()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L174", "community": 2, "norm_label": "test_build_reserves_html_no_role_column()", "id": "tests_test_image_gen_test_build_reserves_html_no_role_column" }, { "label": "test_generate_assignments_image_calls_render()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L194", "community": 2, "norm_label": "test_generate_assignments_image_calls_render()", "id": "tests_test_image_gen_test_generate_assignments_image_calls_render" }, { "label": "test_generate_reserves_image_calls_render()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L211", "community": 2, "norm_label": "test_generate_reserves_image_calls_render()", "id": "tests_test_image_gen_test_generate_reserves_image_calls_render" }, { "label": "test_build_assignments_html_group_header_present()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L231", "community": 2, "norm_label": "test_build_assignments_html_group_header_present()", "id": "tests_test_image_gen_test_build_assignments_html_group_header_present" }, { "label": "test_build_assignments_html_group_header_before_members()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L242", "community": 2, "norm_label": "test_build_assignments_html_group_header_before_members()", "id": "tests_test_image_gen_test_build_assignments_html_group_header_before_members" }, { "label": "test_build_assignments_html_single_row_per_group()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L254", "community": 2, "norm_label": "test_build_assignments_html_single_row_per_group()", "id": "tests_test_image_gen_test_build_assignments_html_single_row_per_group" }, { "label": "test_build_assignments_html_buildings_side_by_side()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L281", "community": 2, "norm_label": "test_build_assignments_html_buildings_side_by_side()", "id": "tests_test_image_gen_test_build_assignments_html_buildings_side_by_side" }, { "label": "test_build_assignments_html_heavy_hitter_color()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L315", "community": 2, "norm_label": "test_build_assignments_html_heavy_hitter_color()", "id": "tests_test_image_gen_test_build_assignments_html_heavy_hitter_color" }, { "label": "test_build_assignments_html_no_role_map_fallback()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L328", "community": 2, "norm_label": "test_build_assignments_html_no_role_map_fallback()", "id": "tests_test_image_gen_test_build_assignments_html_no_role_map_fallback" }, { "label": "test_build_assignments_html_role_color_on_span_not_background()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L339", "community": 2, "norm_label": "test_build_assignments_html_role_color_on_span_not_background()", "id": "tests_test_image_gen_test_build_assignments_html_role_color_on_span_not_background" }, { "label": "test_build_reserves_html_novice_color()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L363", "community": 2, "norm_label": "test_build_reserves_html_novice_color()", "id": "tests_test_image_gen_test_build_reserves_html_novice_color" }, { "label": "test_build_reserves_html_fallback_color()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L371", "community": 2, "norm_label": "test_build_reserves_html_fallback_color()", "id": "tests_test_image_gen_test_build_reserves_html_fallback_color" }, { "label": "test_build_assignments_html_role_colors_match_ui()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L405", "community": 2, "norm_label": "test_build_assignments_html_role_colors_match_ui()", "id": "tests_test_image_gen_test_build_assignments_html_role_colors_match_ui" }, { "label": "test_build_reserves_html_role_colors_match_ui()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L430", "community": 2, "norm_label": "test_build_reserves_html_role_colors_match_ui()", "id": "tests_test_image_gen_test_build_reserves_html_role_colors_match_ui" }, { "label": "test_build_assignments_html_no_level_in_header()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L443", "community": 2, "norm_label": "test_build_assignments_html_no_level_in_header()", "id": "tests_test_image_gen_test_build_assignments_html_no_level_in_header" }, { "label": "test_build_assignments_html_broken_building_no_level()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L456", "community": 2, "norm_label": "test_build_assignments_html_broken_building_no_level()", "id": "tests_test_image_gen_test_build_assignments_html_broken_building_no_level" }, { "label": "test_build_assignments_html_building_number_in_thead()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L468", "community": 2, "norm_label": "test_build_assignments_html_building_number_in_thead()", "id": "tests_test_image_gen_test_build_assignments_html_building_number_in_thead" }, { "label": "test_build_assignments_html_post_flat_table()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L482", "community": 2, "norm_label": "test_build_assignments_html_post_flat_table()", "id": "tests_test_image_gen_test_build_assignments_html_post_flat_table" }, { "label": "test_build_assignments_html_post_reserve_and_disabled()", "file_type": "code", "source_file": "backend/tests/test_image_gen.py", "source_location": "L516", "community": 2, "norm_label": "test_build_assignments_html_post_reserve_and_disabled()", "id": "tests_test_image_gen_test_build_assignments_html_post_reserve_and_disabled" }, { "label": "Tests for the image generation service.", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L1", "community": 2, "norm_label": "tests for the image generation service.", "id": "tests_test_image_gen_rationale_1" }, { "label": "Role column must not appear in the rendered HTML.", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L175", "community": 2, "norm_label": "role column must not appear in the rendered html.", "id": "tests_test_image_gen_rationale_175" }, { "label": "Each group must have a 'Group N' label in the HTML.", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L232", "community": 2, "norm_label": "each group must have a 'group n' label in the html.", "id": "tests_test_image_gen_rationale_232" }, { "label": "Group 1 header must appear before Group 2 header in document order.", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L243", "community": 2, "norm_label": "group 1 header must appear before group 2 header in document order.", "id": "tests_test_image_gen_rationale_243" }, { "label": "Group label and slot cells must appear in the same , not separate rows.", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L255", "community": 2, "norm_label": "group label and slot cells must appear in the same , not separate rows.", "id": "tests_test_image_gen_rationale_255" }, { "label": "Two buildings of the same type must both render and the section must use flex la", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L282", "community": 2, "norm_label": "two buildings of the same type must both render and the section must use flex la", "id": "tests_test_image_gen_rationale_282" }, { "label": "A member mapped to heavy_hitter role gets the red-400 color #f87171 (matches UI", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L316", "community": 2, "norm_label": "a member mapped to heavy_hitter role gets the red-400 color #f87171 (matches ui", "id": "tests_test_image_gen_rationale_316" }, { "label": "When member_id_to_role is empty the fallback white color is used.", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L329", "community": 2, "norm_label": "when member_id_to_role is empty the fallback white color is used.", "id": "tests_test_image_gen_rationale_329" }, { "label": "The role color appears on the name , not the cell background.", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L340", "community": 2, "norm_label": "the role color appears on the name , not the cell background.", "id": "tests_test_image_gen_rationale_340" }, { "label": "A member with advanced role gets the amber-400 color #fbbf24 (matches UI hue).", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L356", "community": 2, "norm_label": "a member with advanced role gets the amber-400 color #fbbf24 (matches ui hue).", "id": "tests_test_image_gen_rationale_356" }, { "label": "A member with novice role gets the blue-400 color #60a5fa (matches UI hue).", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L364", "community": 2, "norm_label": "a member with novice role gets the blue-400 color #60a5fa (matches ui hue).", "id": "tests_test_image_gen_rationale_364" }, { "label": "A member whose role is not in _MEMBER_ROLE_COLORS falls back to #f9fafb.", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L372", "community": 2, "norm_label": "a member whose role is not in _member_role_colors falls back to #f9fafb.", "id": "tests_test_image_gen_rationale_372" }, { "label": "Every role maps to the same hue family used in the UI (BoardPage ROLE_CHIP_COLOR", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L406", "community": 2, "norm_label": "every role maps to the same hue family used in the ui (boardpage role_chip_color", "id": "tests_test_image_gen_rationale_406" }, { "label": "Every role in the reserves image maps to the same hue family used in the UI.", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L431", "community": 2, "norm_label": "every role in the reserves image maps to the same hue family used in the ui.", "id": "tests_test_image_gen_rationale_431" }, { "label": "Building header must not contain the level.", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L444", "community": 2, "norm_label": "building header must not contain the level.", "id": "tests_test_image_gen_rationale_444" }, { "label": "Broken building header shows [broken] but no level.", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L457", "community": 2, "norm_label": "broken building header shows [broken] but no level.", "id": "tests_test_image_gen_rationale_457" }, { "label": "Building number must appear in a spanning row, not a standalone
.", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L469", "community": 2, "norm_label": "building number must appear in a spanning row, not a standalone
.", "id": "tests_test_image_gen_rationale_469" }, { "label": "Post buildings render as a single flat table, not per-building group tables.", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L483", "community": 2, "norm_label": "post buildings render as a single flat table, not per-building group tables.", "id": "tests_test_image_gen_rationale_483" }, { "label": "Post flat table correctly renders reserve and disabled slots.", "file_type": "rationale", "source_file": "backend/tests/test_image_gen.py", "source_location": "L517", "community": 2, "norm_label": "post flat table correctly renders reserve and disabled slots.", "id": "tests_test_image_gen_rationale_517" }, { "label": "test_lifecycle.py", "file_type": "code", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L1", "community": 46, "norm_label": "test_lifecycle.py", "id": "backend_tests_test_lifecycle_py" }, { "label": "test_activate_planning_siege()", "file_type": "code", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L43", "community": 46, "norm_label": "test_activate_planning_siege()", "id": "tests_test_lifecycle_test_activate_planning_siege" }, { "label": "test_activate_already_active_returns_400()", "file_type": "code", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L66", "community": 46, "norm_label": "test_activate_already_active_returns_400()", "id": "tests_test_lifecycle_test_activate_already_active_returns_400" }, { "label": "test_complete_active_siege()", "file_type": "code", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L85", "community": 46, "norm_label": "test_complete_active_siege()", "id": "tests_test_lifecycle_test_complete_active_siege" }, { "label": "test_complete_planning_siege_returns_400()", "file_type": "code", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L108", "community": 46, "norm_label": "test_complete_planning_siege_returns_400()", "id": "tests_test_lifecycle_test_complete_planning_siege_returns_400" }, { "label": "test_clone_siege_returns_201()", "file_type": "code", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L127", "community": 46, "norm_label": "test_clone_siege_returns_201()", "id": "tests_test_lifecycle_test_clone_siege_returns_201" }, { "label": "_make_post_ns()", "file_type": "code", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L154", "community": 46, "norm_label": "_make_post_ns()", "id": "tests_test_lifecycle_make_post_ns" }, { "label": "_make_src_position_ns()", "file_type": "code", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L166", "community": 46, "norm_label": "_make_src_position_ns()", "id": "tests_test_lifecycle_make_src_position_ns" }, { "label": "_make_src_group_ns()", "file_type": "code", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L176", "community": 46, "norm_label": "_make_src_group_ns()", "id": "tests_test_lifecycle_make_src_group_ns" }, { "label": "_make_src_building_ns()", "file_type": "code", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L184", "community": 46, "norm_label": "_make_src_building_ns()", "id": "tests_test_lifecycle_make_src_building_ns" }, { "label": "test_clone_uses_post_priority_config_not_source_priority()", "file_type": "code", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L196", "community": 46, "norm_label": "test_clone_uses_post_priority_config_not_source_priority()", "id": "tests_test_lifecycle_test_clone_uses_post_priority_config_not_source_priority" }, { "label": "Endpoint tests for siege lifecycle transitions: activate, complete, clone.", "file_type": "rationale", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L1", "community": 46, "norm_label": "endpoint tests for siege lifecycle transitions: activate, complete, clone.", "id": "tests_test_lifecycle_rationale_1" }, { "label": "Cloning a siege with stale priority=0 posts must use PostPriorityConfig.priority", "file_type": "rationale", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L197", "community": 46, "norm_label": "cloning a siege with stale priority=0 posts must use postpriorityconfig.priority", "id": "tests_test_lifecycle_rationale_197" }, { "label": "test_lifecycle_integration.py", "file_type": "code", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L1", "community": 54, "norm_label": "test_lifecycle_integration.py", "id": "backend_tests_test_lifecycle_integration_py" }, { "label": "_build_valid_siege_graph()", "file_type": "code", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L112", "community": 54, "norm_label": "_build_valid_siege_graph()", "id": "tests_test_lifecycle_integration_build_valid_siege_graph" }, { "label": "test_full_siege_lifecycle()", "file_type": "code", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L215", "community": 54, "norm_label": "test_full_siege_lifecycle()", "id": "tests_test_lifecycle_integration_test_full_siege_lifecycle" }, { "label": "Integration test: full siege lifecycle \u2014 create \u2192 validate \u2192 assign \u2192 activate \u2192", "file_type": "rationale", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L1", "community": 54, "norm_label": "integration test: full siege lifecycle \u2014 create \u2192 validate \u2192 assign \u2192 activate \u2192", "id": "tests_test_lifecycle_integration_rationale_1" }, { "label": "Build a siege with exactly the right building counts and assigned active members", "file_type": "rationale", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L113", "community": 54, "norm_label": "build a siege with exactly the right building counts and assigned active members", "id": "tests_test_lifecycle_integration_rationale_113" }, { "label": "Return a mock async session that serves the siege + configs across multiple exec", "file_type": "rationale", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L183", "community": 54, "norm_label": "return a mock async session that serves the siege + configs across multiple exec", "id": "tests_test_lifecycle_integration_rationale_183" }, { "label": "Happy-path: validate (errors) \u2192 assign \u2192 validate (0 errors) \u2192 activate \u2192 comple", "file_type": "rationale", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L216", "community": 54, "norm_label": "happy-path: validate (errors) \u2192 assign \u2192 validate (0 errors) \u2192 activate \u2192 comple", "id": "tests_test_lifecycle_integration_rationale_216" }, { "label": "test_members.py", "file_type": "code", "source_file": "backend/tests/test_members.py", "source_location": "L1", "community": 60, "norm_label": "test_members.py", "id": "backend_tests_test_members_py" }, { "label": "test_list_members_returns_empty_list()", "file_type": "code", "source_file": "backend/tests/test_members.py", "source_location": "L43", "community": 60, "norm_label": "test_list_members_returns_empty_list()", "id": "tests_test_members_test_list_members_returns_empty_list" }, { "label": "test_create_member_returns_201()", "file_type": "code", "source_file": "backend/tests/test_members.py", "source_location": "L59", "community": 60, "norm_label": "test_create_member_returns_201()", "id": "tests_test_members_test_create_member_returns_201" }, { "label": "test_create_member_duplicate_name_returns_409()", "file_type": "code", "source_file": "backend/tests/test_members.py", "source_location": "L83", "community": 60, "norm_label": "test_create_member_duplicate_name_returns_409()", "id": "tests_test_members_test_create_member_duplicate_name_returns_409" }, { "label": "test_get_member_not_found_returns_404()", "file_type": "code", "source_file": "backend/tests/test_members.py", "source_location": "L106", "community": 60, "norm_label": "test_get_member_not_found_returns_404()", "id": "tests_test_members_test_get_member_not_found_returns_404" }, { "label": "test_delete_member_returns_204()", "file_type": "code", "source_file": "backend/tests/test_members.py", "source_location": "L124", "community": 60, "norm_label": "test_delete_member_returns_204()", "id": "tests_test_members_test_delete_member_returns_204" }, { "label": "test_member_changelog_column.py", "file_type": "code", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L1", "community": 44, "norm_label": "test_member_changelog_column.py", "id": "backend_tests_test_member_changelog_column_py" }, { "label": "test_last_seen_changelog_at_column_exists()", "file_type": "code", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L20", "community": 44, "norm_label": "test_last_seen_changelog_at_column_exists()", "id": "tests_test_member_changelog_column_test_last_seen_changelog_at_column_exists" }, { "label": "test_last_seen_changelog_at_column_is_nullable()", "file_type": "code", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L32", "community": 44, "norm_label": "test_last_seen_changelog_at_column_is_nullable()", "id": "tests_test_member_changelog_column_test_last_seen_changelog_at_column_is_nullable" }, { "label": "test_last_seen_changelog_at_has_no_server_default()", "file_type": "code", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L50", "community": 44, "norm_label": "test_last_seen_changelog_at_has_no_server_default()", "id": "tests_test_member_changelog_column_test_last_seen_changelog_at_has_no_server_default" }, { "label": "test_last_seen_changelog_at_column_type_is_datetime()", "file_type": "code", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L68", "community": 44, "norm_label": "test_last_seen_changelog_at_column_type_is_datetime()", "id": "tests_test_member_changelog_column_test_last_seen_changelog_at_column_type_is_datetime" }, { "label": "test_last_seen_changelog_at_accepts_none_at_python_level()", "file_type": "code", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L89", "community": 44, "norm_label": "test_last_seen_changelog_at_accepts_none_at_python_level()", "id": "tests_test_member_changelog_column_test_last_seen_changelog_at_accepts_none_at_python_level" }, { "label": "test_last_seen_changelog_at_accepts_datetime_at_python_level()", "file_type": "code", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L103", "community": 44, "norm_label": "test_last_seen_changelog_at_accepts_datetime_at_python_level()", "id": "tests_test_member_changelog_column_test_last_seen_changelog_at_accepts_datetime_at_python_level" }, { "label": "Schema-aware tests for Member.last_seen_changelog_at (issue #295, AC 1). These", "file_type": "rationale", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L1", "community": 44, "norm_label": "schema-aware tests for member.last_seen_changelog_at (issue #295, ac 1). these", "id": "tests_test_member_changelog_column_rationale_1" }, { "label": "Member mapper exposes last_seen_changelog_at as a mapped attribute.", "file_type": "rationale", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L21", "community": 44, "norm_label": "member mapper exposes last_seen_changelog_at as a mapped attribute.", "id": "tests_test_member_changelog_column_rationale_21" }, { "label": "last_seen_changelog_at column is defined nullable=True. Null is the sentine", "file_type": "rationale", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L33", "community": 44, "norm_label": "last_seen_changelog_at column is defined nullable=true. null is the sentine", "id": "tests_test_member_changelog_column_rationale_33" }, { "label": "last_seen_changelog_at has no server-side default. Null is the intentional", "file_type": "rationale", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L51", "community": 44, "norm_label": "last_seen_changelog_at has no server-side default. null is the intentional", "id": "tests_test_member_changelog_column_rationale_51" }, { "label": "last_seen_changelog_at uses SQLAlchemy DateTime (no timezone). Matches the", "file_type": "rationale", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L69", "community": 44, "norm_label": "last_seen_changelog_at uses sqlalchemy datetime (no timezone). matches the", "id": "tests_test_member_changelog_column_rationale_69" }, { "label": "Mapped type annotation allows None (datetime | None). Constructing a Member", "file_type": "rationale", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L90", "community": 44, "norm_label": "mapped type annotation allows none (datetime | none). constructing a member", "id": "tests_test_member_changelog_column_rationale_90" }, { "label": "Mapped type annotation allows a datetime value. Assigning a real datetime m", "file_type": "rationale", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L104", "community": 44, "norm_label": "mapped type annotation allows a datetime value. assigning a real datetime m", "id": "tests_test_member_changelog_column_rationale_104" }, { "label": "test_notifications.py", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L1", "community": 12, "norm_label": "test_notifications.py", "id": "backend_tests_test_notifications_py" }, { "label": "_make_batch()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L69", "community": 12, "norm_label": "_make_batch()", "id": "tests_test_notifications_make_batch" }, { "label": "_make_batch_result()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L82", "community": 12, "norm_label": "_make_batch_result()", "id": "tests_test_notifications_make_batch_result" }, { "label": "_make_db_session()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L112", "community": 12, "norm_label": "_make_db_session()", "id": "tests_test_notifications_make_db_session" }, { "label": "test_notify_returns_batch_id()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L151", "community": 12, "norm_label": "test_notify_returns_batch_id()", "id": "tests_test_notifications_test_notify_returns_batch_id" }, { "label": "test_notify_siege_not_found()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L221", "community": 12, "norm_label": "test_notify_siege_not_found()", "id": "tests_test_notifications_test_notify_siege_not_found" }, { "label": "test_notify_siege_complete_returns_400()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L247", "community": 12, "norm_label": "test_notify_siege_complete_returns_400()", "id": "tests_test_notifications_test_notify_siege_complete_returns_400" }, { "label": "test_get_notification_batch_returns_results()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L272", "community": 12, "norm_label": "test_get_notification_batch_returns_results()", "id": "tests_test_notifications_test_get_notification_batch_returns_results" }, { "label": "test_get_notification_batch_not_found()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L324", "community": 12, "norm_label": "test_get_notification_batch_not_found()", "id": "tests_test_notifications_test_get_notification_batch_not_found" }, { "label": "test_post_to_channel_success()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L354", "community": 12, "norm_label": "test_post_to_channel_success()", "id": "tests_test_notifications_test_post_to_channel_success" }, { "label": "test_post_to_channel_posts_images_to_images_channel_and_summary_to_text_channel()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L415", "community": 12, "norm_label": "test_post_to_channel_posts_images_to_images_channel_and_summary_to_text_channel()", "id": "tests_test_notifications_test_post_to_channel_posts_images_to_images_channel_and_summary_to_text_channel" }, { "label": "test_post_to_channel_image_failure_returns_failed()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L497", "community": 12, "norm_label": "test_post_to_channel_image_failure_returns_failed()", "id": "tests_test_notifications_test_post_to_channel_image_failure_returns_failed" }, { "label": "test_notify_skips_member_with_no_discord_username()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L556", "community": 12, "norm_label": "test_notify_skips_member_with_no_discord_username()", "id": "tests_test_notifications_test_notify_skips_member_with_no_discord_username" }, { "label": "test_notify_skips_member_not_in_guild()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L620", "community": 12, "norm_label": "test_notify_skips_member_not_in_guild()", "id": "tests_test_notifications_test_notify_skips_member_not_in_guild" }, { "label": "test_notify_eligible_member_gets_result_row_and_dm()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L679", "community": 12, "norm_label": "test_notify_eligible_member_gets_result_row_and_dm()", "id": "tests_test_notifications_test_notify_eligible_member_gets_result_row_and_dm" }, { "label": "test_notify_skipped_count_reflects_all_skipped_members()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L745", "community": 12, "norm_label": "test_notify_skipped_count_reflects_all_skipped_members()", "id": "tests_test_notifications_test_notify_skipped_count_reflects_all_skipped_members" }, { "label": "test_notify_blocked_when_siege_has_validation_errors()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L809", "community": 12, "norm_label": "test_notify_blocked_when_siege_has_validation_errors()", "id": "tests_test_notifications_test_notify_blocked_when_siege_has_validation_errors" }, { "label": "test_notify_passes_validation_guard_when_no_errors()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L855", "community": 12, "norm_label": "test_notify_passes_validation_guard_when_no_errors()", "id": "tests_test_notifications_test_notify_passes_validation_guard_when_no_errors" }, { "label": "test_notify_bot_unreachable_falls_back_to_username_filter()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L912", "community": 12, "norm_label": "test_notify_bot_unreachable_falls_back_to_username_filter()", "id": "tests_test_notifications_test_notify_bot_unreachable_falls_back_to_username_filter" }, { "label": "test_send_dms_sets_completed_status_even_when_bot_raises()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L979", "community": 12, "norm_label": "test_send_dms_sets_completed_status_even_when_bot_raises()", "id": "tests_test_notifications_test_send_dms_sets_completed_status_even_when_bot_raises" }, { "label": "test_notify_no_date_returns_400()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L1041", "community": 12, "norm_label": "test_notify_no_date_returns_400()", "id": "tests_test_notifications_test_notify_no_date_returns_400" }, { "label": "test_post_to_channel_no_date_returns_400()", "file_type": "code", "source_file": "backend/tests/test_notifications.py", "source_location": "L1068", "community": 12, "norm_label": "test_post_to_channel_no_date_returns_400()", "id": "tests_test_notifications_test_post_to_channel_no_date_returns_400" }, { "label": "Endpoint tests for notification and post-to-channel routes.", "file_type": "rationale", "source_file": "backend/tests/test_notifications.py", "source_location": "L1", "community": 12, "norm_label": "endpoint tests for notification and post-to-channel routes.", "id": "tests_test_notifications_rationale_1" }, { "label": "Build a mock DB session that returns the given objects.", "file_type": "rationale", "source_file": "backend/tests/test_notifications.py", "source_location": "L113", "community": 12, "norm_label": "build a mock db session that returns the given objects.", "id": "tests_test_notifications_rationale_113" }, { "label": "Images post to discord_siege_images_channel. Summary with CDN links posts t", "file_type": "rationale", "source_file": "backend/tests/test_notifications.py", "source_location": "L416", "community": 12, "norm_label": "images post to discord_siege_images_channel. summary with cdn links posts t", "id": "tests_test_notifications_rationale_416" }, { "label": "When post_image returns None (failure), the endpoint returns status='failed'.", "file_type": "rationale", "source_file": "backend/tests/test_notifications.py", "source_location": "L498", "community": 12, "norm_label": "when post_image returns none (failure), the endpoint returns status='failed'.", "id": "tests_test_notifications_rationale_498" }, { "label": "Members without a discord_username must not get a batch result row.", "file_type": "rationale", "source_file": "backend/tests/test_notifications.py", "source_location": "L557", "community": 12, "norm_label": "members without a discord_username must not get a batch result row.", "id": "tests_test_notifications_rationale_557" }, { "label": "Members whose discord_username is absent from the guild list must be skipped.", "file_type": "rationale", "source_file": "backend/tests/test_notifications.py", "source_location": "L621", "community": 12, "norm_label": "members whose discord_username is absent from the guild list must be skipped.", "id": "tests_test_notifications_rationale_621" }, { "label": "A member who has a discord_username AND is in the guild must get a result row.", "file_type": "rationale", "source_file": "backend/tests/test_notifications.py", "source_location": "L680", "community": 12, "norm_label": "a member who has a discord_username and is in the guild must get a result row.", "id": "tests_test_notifications_rationale_680" }, { "label": "skipped_count must equal the number of members excluded for any reason.", "file_type": "rationale", "source_file": "backend/tests/test_notifications.py", "source_location": "L746", "community": 12, "norm_label": "skipped_count must equal the number of members excluded for any reason.", "id": "tests_test_notifications_rationale_746" }, { "label": "POST /notify must return 400 when validate_siege returns errors.", "file_type": "rationale", "source_file": "backend/tests/test_notifications.py", "source_location": "L810", "community": 12, "norm_label": "post /notify must return 400 when validate_siege returns errors.", "id": "tests_test_notifications_rationale_810" }, { "label": "POST /notify must not be blocked when validate_siege returns no errors.", "file_type": "rationale", "source_file": "backend/tests/test_notifications.py", "source_location": "L856", "community": 12, "norm_label": "post /notify must not be blocked when validate_siege returns no errors.", "id": "tests_test_notifications_rationale_856" }, { "label": "When get_members() returns [] the endpoint must not block all DMs. Members", "file_type": "rationale", "source_file": "backend/tests/test_notifications.py", "source_location": "L913", "community": 12, "norm_label": "when get_members() returns [] the endpoint must not block all dms. members", "id": "tests_test_notifications_rationale_913" }, { "label": "_send_dms must guarantee batch.status = completed in its finally block. Sce", "file_type": "rationale", "source_file": "backend/tests/test_notifications.py", "source_location": "L980", "community": 12, "norm_label": "_send_dms must guarantee batch.status = completed in its finally block. sce", "id": "tests_test_notifications_rationale_980" }, { "label": "POST /notify must return 400 with a clear message when siege.date is None.", "file_type": "rationale", "source_file": "backend/tests/test_notifications.py", "source_location": "L1042", "community": 12, "norm_label": "post /notify must return 400 with a clear message when siege.date is none.", "id": "tests_test_notifications_rationale_1042" }, { "label": "POST /post-to-channel must return 400 with a clear message when siege.date is No", "file_type": "rationale", "source_file": "backend/tests/test_notifications.py", "source_location": "L1069", "community": 12, "norm_label": "post /post-to-channel must return 400 with a clear message when siege.date is no", "id": "tests_test_notifications_rationale_1069" }, { "label": "test_notification_message.py", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L1", "community": 4, "norm_label": "test_notification_message.py", "id": "backend_tests_test_notification_message_py" }, { "label": "_stronghold_pos()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L31", "community": 4, "norm_label": "_stronghold_pos()", "id": "tests_test_notification_message_stronghold_pos" }, { "label": "_defense_tower_pos()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L40", "community": 4, "norm_label": "_defense_tower_pos()", "id": "tests_test_notification_message_defense_tower_pos" }, { "label": "_post_pos()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L49", "community": 4, "norm_label": "_post_pos()", "id": "tests_test_notification_message_post_pos" }, { "label": "test_no_previous_siege_all_current_in_set_at()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L63", "community": 4, "norm_label": "test_no_previous_siege_all_current_in_set_at()", "id": "tests_test_notification_message_test_no_previous_siege_all_current_in_set_at" }, { "label": "test_empty_sections_omitted_all_no_change()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L84", "community": 4, "norm_label": "test_empty_sections_omitted_all_no_change()", "id": "tests_test_notification_message_test_empty_sections_omitted_all_no_change" }, { "label": "test_full_diff_three_sections()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L105", "community": 4, "norm_label": "test_full_diff_three_sections()", "id": "tests_test_notification_message_test_full_diff_three_sections" }, { "label": "test_header_contains_siege_date_and_member_settings()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L149", "community": 4, "norm_label": "test_header_contains_siege_date_and_member_settings()", "id": "tests_test_notification_message_test_header_contains_siege_date_and_member_settings" }, { "label": "test_none_fields_display_as_unknown()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L169", "community": 4, "norm_label": "test_none_fields_display_as_unknown()", "id": "tests_test_notification_message_test_none_fields_display_as_unknown" }, { "label": "test_false_reserve_set_displays_no()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L183", "community": 4, "norm_label": "test_false_reserve_set_displays_no()", "id": "tests_test_notification_message_test_false_reserve_set_displays_no" }, { "label": "test_single_building_type_omits_building_number()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L201", "community": 4, "norm_label": "test_single_building_type_omits_building_number()", "id": "tests_test_notification_message_test_single_building_type_omits_building_number" }, { "label": "test_multiple_building_type_includes_building_number()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L222", "community": 4, "norm_label": "test_multiple_building_type_includes_building_number()", "id": "tests_test_notification_message_test_multiple_building_type_includes_building_number" }, { "label": "test_post_always_uses_short_format()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L241", "community": 4, "norm_label": "test_post_always_uses_short_format()", "id": "tests_test_notification_message_test_post_always_uses_short_format" }, { "label": "test_post_with_single_count_still_uses_short_format()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L257", "community": 4, "norm_label": "test_post_with_single_count_still_uses_short_format()", "id": "tests_test_notification_message_test_post_with_single_count_still_uses_short_format" }, { "label": "test_section_order_no_change_then_remove_then_set_at()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L276", "community": 4, "norm_label": "test_section_order_no_change_then_remove_then_set_at()", "id": "tests_test_notification_message_test_section_order_no_change_then_remove_then_set_at" }, { "label": "test_positions_sorted_within_section()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L303", "community": 4, "norm_label": "test_positions_sorted_within_section()", "id": "tests_test_notification_message_test_positions_sorted_within_section" }, { "label": "test_no_change_section_has_header_and_plain_position_lines()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L336", "community": 4, "norm_label": "test_no_change_section_has_header_and_plain_position_lines()", "id": "tests_test_notification_message_test_no_change_section_has_header_and_plain_position_lines" }, { "label": "test_remove_from_section_has_header_and_plain_position_lines()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L361", "community": 4, "norm_label": "test_remove_from_section_has_header_and_plain_position_lines()", "id": "tests_test_notification_message_test_remove_from_section_has_header_and_plain_position_lines" }, { "label": "test_set_at_section_has_header_and_plain_position_lines()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L385", "community": 4, "norm_label": "test_set_at_section_has_header_and_plain_position_lines()", "id": "tests_test_notification_message_test_set_at_section_has_header_and_plain_position_lines" }, { "label": "test_blank_line_between_no_change_and_remove_from()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L414", "community": 4, "norm_label": "test_blank_line_between_no_change_and_remove_from()", "id": "tests_test_notification_message_test_blank_line_between_no_change_and_remove_from" }, { "label": "test_blank_line_between_remove_from_and_set_at()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L431", "community": 4, "norm_label": "test_blank_line_between_remove_from_and_set_at()", "id": "tests_test_notification_message_test_blank_line_between_remove_from_and_set_at" }, { "label": "test_no_blank_line_when_only_one_section()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L447", "community": 4, "norm_label": "test_no_blank_line_when_only_one_section()", "id": "tests_test_notification_message_test_no_blank_line_when_only_one_section" }, { "label": "test_blank_line_count_with_all_three_sections()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L464", "community": 4, "norm_label": "test_blank_line_count_with_all_three_sections()", "id": "tests_test_notification_message_test_blank_line_count_with_all_three_sections" }, { "label": "test_all_three_section_headers_exact_format()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L488", "community": 4, "norm_label": "test_all_three_section_headers_exact_format()", "id": "tests_test_notification_message_test_all_three_section_headers_exact_format" }, { "label": "test_header_line_not_a_position_line()", "file_type": "code", "source_file": "backend/tests/test_notification_message.py", "source_location": "L508", "community": 4, "norm_label": "test_header_line_not_a_position_line()", "id": "tests_test_notification_message_test_header_line_not_a_position_line" }, { "label": "Unit tests for build_member_notification_message in notification_message.py.", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L1", "community": 4, "norm_label": "unit tests for build_member_notification_message in notification_message.py.", "id": "tests_test_notification_message_rationale_1" }, { "label": "When previous_positions is empty every current position gets the \u2694\ufe0f icon.", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L64", "community": 4, "norm_label": "when previous_positions is empty every current position gets the \u2694\ufe0f icon.", "id": "tests_test_notification_message_rationale_64" }, { "label": "When current and previous are identical only the \ud83d\udee1\ufe0f icon appears.", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L85", "community": 4, "norm_label": "when current and previous are identical only the \ud83d\udee1\ufe0f icon appears.", "id": "tests_test_notification_message_rationale_85" }, { "label": "Positions only in current \u2192 \u2694\ufe0f, only in previous \u2192 \u274c, both \u2192 \ud83d\udee1\ufe0f.", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L106", "community": 4, "norm_label": "positions only in current \u2192 \u2694\ufe0f, only in previous \u2192 \u274c, both \u2192 \ud83d\udee1\ufe0f.", "id": "tests_test_notification_message_rationale_106" }, { "label": "The message header must include the date, reserve status and attack day.", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L150", "community": 4, "norm_label": "the message header must include the date, reserve status and attack day.", "id": "tests_test_notification_message_rationale_150" }, { "label": "None for has_reserve_set or attack_day should render as 'Unknown'.", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L170", "community": 4, "norm_label": "none for has_reserve_set or attack_day should render as 'unknown'.", "id": "tests_test_notification_message_rationale_170" }, { "label": "has_reserve_set=False should render as 'No', not 'Unknown'.", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L184", "community": 4, "norm_label": "has_reserve_set=false should render as 'no', not 'unknown'.", "id": "tests_test_notification_message_rationale_184" }, { "label": "When count == 1 the building number is omitted from the label.", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L202", "community": 4, "norm_label": "when count == 1 the building number is omitted from the label.", "id": "tests_test_notification_message_rationale_202" }, { "label": "Posts always render as ':white_circle: Post {N}' regardless of count.", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L242", "community": 4, "norm_label": "posts always render as ':white_circle: post {n}' regardless of count.", "id": "tests_test_notification_message_rationale_242" }, { "label": "Posts with count == 1 still use short format (not the number-omitting path).", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L258", "community": 4, "norm_label": "posts with count == 1 still use short format (not the number-omitting path).", "id": "tests_test_notification_message_rationale_258" }, { "label": "Icons must appear in the order: \ud83d\udee1\ufe0f (No Change), \u274c (Remove From), \u2694\ufe0f (Set At).", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L277", "community": 4, "norm_label": "icons must appear in the order: \ud83d\udee1\ufe0f (no change), \u274c (remove from), \u2694\ufe0f (set at).", "id": "tests_test_notification_message_rationale_277" }, { "label": "Within Set At, positions should be sorted by type order then building/group/pos.", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L304", "community": 4, "norm_label": "within set at, positions should be sorted by type order then building/group/pos.", "id": "tests_test_notification_message_rationale_304" }, { "label": "No Change section must have a ':shield: No Change :shield:' header. Posit", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L337", "community": 4, "norm_label": "no change section must have a ':shield: no change :shield:' header. posit", "id": "tests_test_notification_message_rationale_337" }, { "label": "Remove From section must have a ':x: Remove From :x:' header. Position li", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L362", "community": 4, "norm_label": "remove from section must have a ':x: remove from :x:' header. position li", "id": "tests_test_notification_message_rationale_362" }, { "label": "Set At section must have a ':crossed_swords: Set At :crossed_swords:' header.", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L386", "community": 4, "norm_label": "set at section must have a ':crossed_swords: set at :crossed_swords:' header.", "id": "tests_test_notification_message_rationale_386" }, { "label": "A blank line must appear between the No Change and Remove From sections.", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L415", "community": 4, "norm_label": "a blank line must appear between the no change and remove from sections.", "id": "tests_test_notification_message_rationale_415" }, { "label": "A blank line must appear between the Remove From and Set At sections.", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L432", "community": 4, "norm_label": "a blank line must appear between the remove from and set at sections.", "id": "tests_test_notification_message_rationale_432" }, { "label": "When only one section is present there should be no blank line within that secti", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L448", "community": 4, "norm_label": "when only one section is present there should be no blank line within that secti", "id": "tests_test_notification_message_rationale_448" }, { "label": "With all three sections there should be exactly two blank lines between them", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L465", "community": 4, "norm_label": "with all three sections there should be exactly two blank lines between them", "id": "tests_test_notification_message_rationale_465" }, { "label": "All three section headers must appear as exact lines in the message.", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L489", "community": 4, "norm_label": "all three section headers must appear as exact lines in the message.", "id": "tests_test_notification_message_rationale_489" }, { "label": "The section header line itself must not contain a building-type circle emoji.", "file_type": "rationale", "source_file": "backend/tests/test_notification_message.py", "source_location": "L509", "community": 4, "norm_label": "the section header line itself must not contain a building-type circle emoji.", "id": "tests_test_notification_message_rationale_509" }, { "label": "test_posts.py", "file_type": "code", "source_file": "backend/tests/test_posts.py", "source_location": "L1", "community": 6, "norm_label": "test_posts.py", "id": "backend_tests_test_posts_py" }, { "label": "_make_building()", "file_type": "code", "source_file": "backend/tests/test_posts.py", "source_location": "L14", "community": 0, "norm_label": "_make_building()", "id": "tests_test_posts_make_building" }, { "label": "_make_post()", "file_type": "code", "source_file": "backend/tests/test_posts.py", "source_location": "L25", "community": 6, "norm_label": "_make_post()", "id": "tests_test_posts_make_post" }, { "label": "test_list_posts_returns_list()", "file_type": "code", "source_file": "backend/tests/test_posts.py", "source_location": "L55", "community": 6, "norm_label": "test_list_posts_returns_list()", "id": "tests_test_posts_test_list_posts_returns_list" }, { "label": "test_update_post_priority()", "file_type": "code", "source_file": "backend/tests/test_posts.py", "source_location": "L76", "community": 6, "norm_label": "test_update_post_priority()", "id": "tests_test_posts_test_update_post_priority" }, { "label": "test_set_post_conditions_too_many_returns_400()", "file_type": "code", "source_file": "backend/tests/test_posts.py", "source_location": "L93", "community": 6, "norm_label": "test_set_post_conditions_too_many_returns_400()", "id": "tests_test_posts_test_set_post_conditions_too_many_returns_400" }, { "label": "test_list_posts_sorted_by_building_number()", "file_type": "code", "source_file": "backend/tests/test_posts.py", "source_location": "L114", "community": 6, "norm_label": "test_list_posts_sorted_by_building_number()", "id": "tests_test_posts_test_list_posts_sorted_by_building_number" }, { "label": "Endpoint tests for post management routes.", "file_type": "rationale", "source_file": "backend/tests/test_posts.py", "source_location": "L1", "community": 6, "norm_label": "endpoint tests for post management routes.", "id": "tests_test_posts_rationale_1" }, { "label": "Posts endpoint returns rows sorted by Post # (building_number) ascending. T", "file_type": "rationale", "source_file": "backend/tests/test_posts.py", "source_location": "L115", "community": 6, "norm_label": "posts endpoint returns rows sorted by post # (building_number) ascending. t", "id": "tests_test_posts_rationale_115" }, { "label": "test_post_suggestions.py", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1", "community": 20, "norm_label": "test_post_suggestions.py", "id": "backend_tests_test_post_suggestions_py" }, { "label": "_make_session()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L140", "community": 54, "norm_label": "_make_session()", "id": "tests_test_post_suggestions_make_session" }, { "label": "_preview()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L155", "community": 6, "norm_label": "_preview()", "id": "tests_test_post_suggestions_preview" }, { "label": "test_preview_raises_400_on_completed_siege()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L195", "community": 20, "norm_label": "test_preview_raises_400_on_completed_siege()", "id": "tests_test_post_suggestions_test_preview_raises_400_on_completed_siege" }, { "label": "test_preview_single_post_single_member_match()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L209", "community": 6, "norm_label": "test_preview_single_post_single_member_match()", "id": "tests_test_post_suggestions_test_preview_single_post_single_member_match" }, { "label": "test_preview_no_match_produces_skip_reason_no_match()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L237", "community": 6, "norm_label": "test_preview_no_match_produces_skip_reason_no_match()", "id": "tests_test_post_suggestions_test_preview_no_match_produces_skip_reason_no_match" }, { "label": "test_preview_reserve_position_produces_skip_reason_reserve()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L263", "community": 6, "norm_label": "test_preview_reserve_position_produces_skip_reason_reserve()", "id": "tests_test_post_suggestions_test_preview_reserve_position_produces_skip_reason_reserve" }, { "label": "test_preview_disabled_position_produces_skip_reason_disabled()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L282", "community": 6, "norm_label": "test_preview_disabled_position_produces_skip_reason_disabled()", "id": "tests_test_post_suggestions_test_preview_disabled_position_produces_skip_reason_disabled" }, { "label": "test_preview_post_with_no_active_conditions_produces_skip_reason_no_conditions()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L306", "community": 6, "norm_label": "test_preview_post_with_no_active_conditions_produces_skip_reason_no_conditions()", "id": "tests_test_post_suggestions_test_preview_post_with_no_active_conditions_produces_skip_reason_no_conditions" }, { "label": "test_preview_post_with_conditions_but_no_matching_member_still_no_match()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L332", "community": 6, "norm_label": "test_preview_post_with_conditions_but_no_matching_member_still_no_match()", "id": "tests_test_post_suggestions_test_preview_post_with_conditions_but_no_matching_member_still_no_match" }, { "label": "test_preview_mixed_no_conditions_no_match_and_assigned_in_one_preview()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L356", "community": 6, "norm_label": "test_preview_mixed_no_conditions_no_match_and_assigned_in_one_preview()", "id": "tests_test_post_suggestions_test_preview_mixed_no_conditions_no_match_and_assigned_in_one_preview" }, { "label": "test_preview_higher_priority_post_gets_member_first()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L400", "community": 6, "norm_label": "test_preview_higher_priority_post_gets_member_first()", "id": "tests_test_post_suggestions_test_preview_higher_priority_post_gets_member_first" }, { "label": "test_preview_second_post_prefers_different_condition()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L444", "community": 6, "norm_label": "test_preview_second_post_prefers_different_condition()", "id": "tests_test_post_suggestions_test_preview_second_post_prefers_different_condition" }, { "label": "test_preview_prefers_less_loaded_member()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L478", "community": 6, "norm_label": "test_preview_prefers_less_loaded_member()", "id": "tests_test_post_suggestions_test_preview_prefers_less_loaded_member" }, { "label": "test_preview_name_tiebreak_picks_alphabetically_lower()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L506", "community": 6, "norm_label": "test_preview_name_tiebreak_picks_alphabetically_lower()", "id": "tests_test_post_suggestions_test_preview_name_tiebreak_picks_alphabetically_lower" }, { "label": "test_preview_duplicate_penalty_beats_assignment_count()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L527", "community": 6, "norm_label": "test_preview_duplicate_penalty_beats_assignment_count()", "id": "tests_test_post_suggestions_test_preview_duplicate_penalty_beats_assignment_count" }, { "label": "test_preview_determinism_same_output_on_repeat()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L564", "community": 6, "norm_label": "test_preview_determinism_same_output_on_repeat()", "id": "tests_test_post_suggestions_test_preview_determinism_same_output_on_repeat" }, { "label": "test_preview_current_member_preferred_when_equally_qualified()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L591", "community": 6, "norm_label": "test_preview_current_member_preferred_when_equally_qualified()", "id": "tests_test_post_suggestions_test_preview_current_member_preferred_when_equally_qualified" }, { "label": "test_preview_lowest_condition_id_picked_as_tiebreak()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L660", "community": 6, "norm_label": "test_preview_lowest_condition_id_picked_as_tiebreak()", "id": "tests_test_post_suggestions_test_preview_lowest_condition_id_picked_as_tiebreak" }, { "label": "test_preview_suboptimality_invariants_hold()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L685", "community": 6, "norm_label": "test_preview_suboptimality_invariants_hold()", "id": "tests_test_post_suggestions_test_preview_suboptimality_invariants_hold" }, { "label": "test_preview_matches_current_true_when_same_assignment()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L763", "community": 6, "norm_label": "test_preview_matches_current_true_when_same_assignment()", "id": "tests_test_post_suggestions_test_preview_matches_current_true_when_same_assignment" }, { "label": "test_preview_matches_current_false_for_null_suggestion()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L783", "community": 6, "norm_label": "test_preview_matches_current_false_for_null_suggestion()", "id": "tests_test_post_suggestions_test_preview_matches_current_false_for_null_suggestion" }, { "label": "test_preview_empty_siege_returns_empty_assignments()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L808", "community": 20, "norm_label": "test_preview_empty_siege_returns_empty_assignments()", "id": "tests_test_post_suggestions_test_preview_empty_siege_returns_empty_assignments" }, { "label": "test_preview_no_members_all_skip_no_match()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L816", "community": 6, "norm_label": "test_preview_no_members_all_skip_no_match()", "id": "tests_test_post_suggestions_test_preview_no_members_all_skip_no_match" }, { "label": "_apply()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L883", "community": 20, "norm_label": "_apply()", "id": "tests_test_post_suggestions_apply" }, { "label": "_preview_data()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L926", "community": 20, "norm_label": "_preview_data()", "id": "tests_test_post_suggestions_preview_data" }, { "label": "_entry_dict()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L931", "community": 20, "norm_label": "_entry_dict()", "id": "tests_test_post_suggestions_entry_dict" }, { "label": "test_apply_expired_preview_raises_409()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L955", "community": 20, "norm_label": "test_apply_expired_preview_raises_409()", "id": "tests_test_post_suggestions_test_apply_expired_preview_raises_409" }, { "label": "test_apply_missing_preview_raises_409()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L969", "community": 20, "norm_label": "test_apply_missing_preview_raises_409()", "id": "tests_test_post_suggestions_test_apply_missing_preview_raises_409" }, { "label": "test_apply_empty_position_ids_is_noop()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L978", "community": 20, "norm_label": "test_apply_empty_position_ids_is_noop()", "id": "tests_test_post_suggestions_test_apply_empty_position_ids_is_noop" }, { "label": "test_apply_unknown_position_ids_silently_ignored()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L994", "community": 20, "norm_label": "test_apply_unknown_position_ids_silently_ignored()", "id": "tests_test_post_suggestions_test_apply_unknown_position_ids_silently_ignored" }, { "label": "test_apply_null_member_entries_are_skipped()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1011", "community": 20, "norm_label": "test_apply_null_member_entries_are_skipped()", "id": "tests_test_post_suggestions_test_apply_null_member_entries_are_skipped" }, { "label": "test_apply_subset_only_writes_checked_positions()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1025", "community": 20, "norm_label": "test_apply_subset_only_writes_checked_positions()", "id": "tests_test_post_suggestions_test_apply_subset_only_writes_checked_positions" }, { "label": "test_apply_stale_position_disabled_returns_409()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1054", "community": 20, "norm_label": "test_apply_stale_position_disabled_returns_409()", "id": "tests_test_post_suggestions_test_apply_stale_position_disabled_returns_409" }, { "label": "test_apply_stale_position_reserve_returns_409()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1072", "community": 20, "norm_label": "test_apply_stale_position_reserve_returns_409()", "id": "tests_test_post_suggestions_test_apply_stale_position_reserve_returns_409" }, { "label": "test_apply_stale_member_inactive_returns_409()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1090", "community": 20, "norm_label": "test_apply_stale_member_inactive_returns_409()", "id": "tests_test_post_suggestions_test_apply_stale_member_inactive_returns_409" }, { "label": "test_apply_member_changed_returns_409()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1108", "community": 20, "norm_label": "test_apply_member_changed_returns_409()", "id": "tests_test_post_suggestions_test_apply_member_changed_returns_409" }, { "label": "test_apply_multiple_stale_all_surfaced_in_single_409()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1127", "community": 20, "norm_label": "test_apply_multiple_stale_all_surfaced_in_single_409()", "id": "tests_test_post_suggestions_test_apply_multiple_stale_all_surfaced_in_single_409" }, { "label": "test_apply_completed_siege_raises_400()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1157", "community": 20, "norm_label": "test_apply_completed_siege_raises_400()", "id": "tests_test_post_suggestions_test_apply_completed_siege_raises_400" }, { "label": "test_preview_skips_post_when_only_candidate_has_used_condition()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1182", "community": 6, "norm_label": "test_preview_skips_post_when_only_candidate_has_used_condition()", "id": "tests_test_post_suggestions_test_preview_skips_post_when_only_candidate_has_used_condition" }, { "label": "Unit tests for the Suggest Post Assignments service. All tests use SimpleNamesp", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1", "community": 20, "norm_label": "unit tests for the suggest post assignments service. all tests use simplenamesp", "id": "tests_test_post_suggestions_rationale_1" }, { "label": "Return a minimal AsyncSession mock that scalar_one_or_none returns siege.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L141", "community": 54, "norm_label": "return a minimal asyncsession mock that scalar_one_or_none returns siege.", "id": "tests_test_post_suggestions_rationale_141" }, { "label": "Invoke preview_post_suggestions with a mocked session.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L156", "community": 6, "norm_label": "invoke preview_post_suggestions with a mocked session.", "id": "tests_test_post_suggestions_rationale_156" }, { "label": "A completed siege raises 400 so planners cannot preview.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L196", "community": 20, "norm_label": "a completed siege raises 400 so planners cannot preview.", "id": "tests_test_post_suggestions_rationale_196" }, { "label": "AC: single post with one matching member \u2192 suggestion targets that member.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L210", "community": 6, "norm_label": "ac: single post with one matching member \u2192 suggestion targets that member.", "id": "tests_test_post_suggestions_rationale_210" }, { "label": "AC #6: post with no matching member \u2192 skip_reason='no_match'.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L238", "community": 6, "norm_label": "ac #6: post with no matching member \u2192 skip_reason='no_match'.", "id": "tests_test_post_suggestions_rationale_238" }, { "label": "Charge #1: is_reserve=True on the position \u2192 skip_reason='reserve'.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L264", "community": 6, "norm_label": "charge #1: is_reserve=true on the position \u2192 skip_reason='reserve'.", "id": "tests_test_post_suggestions_rationale_264" }, { "label": "Charge #1: is_disabled=True on the position \u2192 skip_reason='disabled'.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L283", "community": 6, "norm_label": "charge #1: is_disabled=true on the position \u2192 skip_reason='disabled'.", "id": "tests_test_post_suggestions_rationale_283" }, { "label": "Issue #366: post with empty active_conditions \u2192 skip_reason='no_conditions'.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L307", "community": 6, "norm_label": "issue #366: post with empty active_conditions \u2192 skip_reason='no_conditions'.", "id": "tests_test_post_suggestions_rationale_307" }, { "label": "Issue #366: no_match is unchanged when conditions exist but no member qualifies.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L333", "community": 6, "norm_label": "issue #366: no_match is unchanged when conditions exist but no member qualifies.", "id": "tests_test_post_suggestions_rationale_333" }, { "label": "Issue #366: all three outcomes coexist without conflation. One post has no", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L357", "community": 6, "norm_label": "issue #366: all three outcomes coexist without conflation. one post has no", "id": "tests_test_post_suggestions_rationale_357" }, { "label": "AC #3: two posts compete for the same member. The higher-priority post is p", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L401", "community": 6, "norm_label": "ac #3: two posts compete for the same member. the higher-priority post is p", "id": "tests_test_post_suggestions_rationale_401" }, { "label": "AC #4: member can be assigned to two posts; second prefers fresh cond.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L445", "community": 6, "norm_label": "ac #4: member can be assigned to two posts; second prefers fresh cond.", "id": "tests_test_post_suggestions_rationale_445" }, { "label": "AC #5: member with fewer assignments wins over heavily loaded member.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L479", "community": 6, "norm_label": "ac #5: member with fewer assignments wins over heavily loaded member.", "id": "tests_test_post_suggestions_rationale_479" }, { "label": "Charge #8: on equal penalty + count, member with lower name wins.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L507", "community": 6, "norm_label": "charge #8: on equal penalty + count, member with lower name wins.", "id": "tests_test_post_suggestions_rationale_507" }, { "label": "Charge #8: member with duplicate-condition penalty loses to member with 3 ex", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L528", "community": 6, "norm_label": "charge #8: member with duplicate-condition penalty loses to member with 3 ex", "id": "tests_test_post_suggestions_rationale_528" }, { "label": "Charge #2: two runs with identical input produce byte-identical output.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L565", "community": 6, "norm_label": "charge #2: two runs with identical input produce byte-identical output.", "id": "tests_test_post_suggestions_rationale_565" }, { "label": "Regression test for #360: bistable flip-flop. Setup: - 1 post, conditio", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L592", "community": 6, "norm_label": "regression test for #360: bistable flip-flop. setup: - 1 post, conditio", "id": "tests_test_post_suggestions_rationale_592" }, { "label": "Two matching conditions, neither used \u2192 lowest id is picked.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L661", "community": 6, "norm_label": "two matching conditions, neither used \u2192 lowest id is picked.", "id": "tests_test_post_suggestions_rationale_661" }, { "label": "Charge #14: greedy invariants hold even when a condition is shared across posts.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L686", "community": 6, "norm_label": "charge #14: greedy invariants hold even when a condition is shared across posts.", "id": "tests_test_post_suggestions_rationale_686" }, { "label": "matches_current=True when the suggestion equals the existing assignment.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L764", "community": 6, "norm_label": "matches_current=true when the suggestion equals the existing assignment.", "id": "tests_test_post_suggestions_rationale_764" }, { "label": "matches_current is always False when suggested_member_id is None.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L784", "community": 6, "norm_label": "matches_current is always false when suggested_member_id is none.", "id": "tests_test_post_suggestions_rationale_784" }, { "label": "Charge #9: siege with no posts \u2192 preview returns empty assignments list.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L809", "community": 20, "norm_label": "charge #9: siege with no posts \u2192 preview returns empty assignments list.", "id": "tests_test_post_suggestions_rationale_809" }, { "label": "Charge #9: posts exist but no siege members \u2192 all skip with no_match.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L817", "community": 6, "norm_label": "charge #9: posts exist but no siege members \u2192 all skip with no_match.", "id": "tests_test_post_suggestions_rationale_817" }, { "label": "HTTP test client bound to the FastAPI app.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L839", "community": 11, "norm_label": "http test client bound to the fastapi app.", "id": "tests_test_post_suggestions_rationale_839" }, { "label": "POST /api/sieges/1/post-suggestions returns 200 with preview payload.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L845", "community": 11, "norm_label": "post /api/sieges/1/post-suggestions returns 200 with preview payload.", "id": "tests_test_post_suggestions_rationale_845" }, { "label": "POST /api/sieges/1/post-suggestions/apply returns 200 with applied_count.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L861", "community": 11, "norm_label": "post /api/sieges/1/post-suggestions/apply returns 200 with applied_count.", "id": "tests_test_post_suggestions_rationale_861" }, { "label": "Invoke apply_post_suggestions with a fully mocked session.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L889", "community": 20, "norm_label": "invoke apply_post_suggestions with a fully mocked session.", "id": "tests_test_post_suggestions_rationale_889" }, { "label": "Build the preview dict stored in siege.post_suggest_preview.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L927", "community": 20, "norm_label": "build the preview dict stored in siege.post_suggest_preview.", "id": "tests_test_post_suggestions_rationale_927" }, { "label": "Apply with expired TTL raises 409 with the standard message.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L956", "community": 20, "norm_label": "apply with expired ttl raises 409 with the standard message.", "id": "tests_test_post_suggestions_rationale_956" }, { "label": "Apply with no preview at all raises 409.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L970", "community": 20, "norm_label": "apply with no preview at all raises 409.", "id": "tests_test_post_suggestions_rationale_970" }, { "label": "Charge #9: apply_position_ids=[] \u2192 0 writes, success.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L979", "community": 20, "norm_label": "charge #9: apply_position_ids=[] \u2192 0 writes, success.", "id": "tests_test_post_suggestions_rationale_979" }, { "label": "Charge #9: position_ids not in the preview are silently ignored.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L995", "community": 20, "norm_label": "charge #9: position_ids not in the preview are silently ignored.", "id": "tests_test_post_suggestions_rationale_995" }, { "label": "Null suggested_member_id entries are skipped; no error raised.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1012", "community": 20, "norm_label": "null suggested_member_id entries are skipped; no error raised.", "id": "tests_test_post_suggestions_rationale_1012" }, { "label": "Apply with a subset of position_ids \u2192 only those positions written.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1026", "community": 32, "norm_label": "apply with a subset of position_ids \u2192 only those positions written.", "id": "tests_test_post_suggestions_rationale_1026" }, { "label": "Position disabled since preview \u2192 409 with reason position_disabled.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1055", "community": 20, "norm_label": "position disabled since preview \u2192 409 with reason position_disabled.", "id": "tests_test_post_suggestions_rationale_1055" }, { "label": "Position set to reserve since preview \u2192 409 with reason position_reserve.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1073", "community": 20, "norm_label": "position set to reserve since preview \u2192 409 with reason position_reserve.", "id": "tests_test_post_suggestions_rationale_1073" }, { "label": "Member became inactive since preview \u2192 409 with reason member_inactive.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1091", "community": 20, "norm_label": "member became inactive since preview \u2192 409 with reason member_inactive.", "id": "tests_test_post_suggestions_rationale_1091" }, { "label": "Charge #15: another planner assigned a different member \u2192 reason member_changed.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1109", "community": 20, "norm_label": "charge #15: another planner assigned a different member \u2192 reason member_changed.", "id": "tests_test_post_suggestions_rationale_1109" }, { "label": "Multiple stale entries \u2192 all returned in a single 409 (one round-trip).", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1128", "community": 20, "norm_label": "multiple stale entries \u2192 all returned in a single 409 (one round-trip).", "id": "tests_test_post_suggestions_rationale_1128" }, { "label": "Apply on a completed siege raises 400 before checking preview.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1158", "community": 20, "norm_label": "apply on a completed siege raises 400 before checking preview.", "id": "tests_test_post_suggestions_rationale_1158" }, { "label": "Regression for #381. Setup: one member matches a condition that is active o", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1183", "community": 6, "norm_label": "regression for #381. setup: one member matches a condition that is active o", "id": "tests_test_post_suggestions_rationale_1183" }, { "label": "test_post_suggestions_integration.py", "file_type": "code", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L1", "community": 32, "norm_label": "test_post_suggestions_integration.py", "id": "backend_tests_test_post_suggestions_integration_py" }, { "label": "engine()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L60", "community": 32, "norm_label": "engine()", "id": "tests_test_post_suggestions_integration_engine" }, { "label": "session_factory()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L79", "community": 32, "norm_label": "session_factory()", "id": "tests_test_post_suggestions_integration_session_factory" }, { "label": "test_preview_loads_m2m_relations_without_greenlet_error()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L190", "community": 32, "norm_label": "test_preview_loads_m2m_relations_without_greenlet_error()", "id": "tests_test_post_suggestions_integration_test_preview_loads_m2m_relations_without_greenlet_error" }, { "label": "test_preview_overwrite_stores_second_preview_in_db()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L215", "community": 32, "norm_label": "test_preview_overwrite_stores_second_preview_in_db()", "id": "tests_test_post_suggestions_integration_test_preview_overwrite_stores_second_preview_in_db" }, { "label": "test_apply_persists_matched_condition_id_to_db()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L254", "community": 32, "norm_label": "test_apply_persists_matched_condition_id_to_db()", "id": "tests_test_post_suggestions_integration_test_apply_persists_matched_condition_id_to_db" }, { "label": "test_apply_subset_leaves_unselected_positions_unchanged()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L283", "community": 32, "norm_label": "test_apply_subset_leaves_unselected_positions_unchanged()", "id": "tests_test_post_suggestions_integration_test_apply_subset_leaves_unselected_positions_unchanged" }, { "label": "test_member_changed_stale_reason_on_concurrent_apply()", "file_type": "code", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L313", "community": 32, "norm_label": "test_member_changed_stale_reason_on_concurrent_apply()", "id": "tests_test_post_suggestions_integration_test_member_changed_stale_reason_on_concurrent_apply" }, { "label": "Integration tests for the Suggest Post Assignments feature. These tests use a r", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L1", "community": 32, "norm_label": "integration tests for the suggest post assignments feature. these tests use a r", "id": "tests_test_post_suggestions_integration_rationale_1" }, { "label": "Enable SQLite foreign key enforcement (no-op on PostgreSQL).", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L53", "community": 30, "norm_label": "enable sqlite foreign key enforcement (no-op on postgresql).", "id": "tests_test_post_suggestions_integration_rationale_53" }, { "label": "Create an async engine against an in-memory SQLite DB.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L61", "community": 32, "norm_label": "create an async engine against an in-memory sqlite db.", "id": "tests_test_post_suggestions_integration_rationale_61" }, { "label": "Yield a single AsyncSession per test.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L72", "community": 5, "norm_label": "yield a single asyncsession per test.", "id": "tests_test_post_suggestions_integration_rationale_72" }, { "label": "Yield a session factory for tests that need multiple sessions.", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L80", "community": 32, "norm_label": "yield a session factory for tests that need multiple sessions.", "id": "tests_test_post_suggestions_integration_rationale_80" }, { "label": "Seed a siege with 2 posts, 3 members, M2M preferences and conditions. Retur", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L90", "community": 32, "norm_label": "seed a siege with 2 posts, 3 members, m2m preferences and conditions. retur", "id": "tests_test_post_suggestions_integration_rationale_90" }, { "label": "Charge #12: selectinload chain works against real DB. Verifies that no Miss", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L191", "community": 32, "norm_label": "charge #12: selectinload chain works against real db. verifies that no miss", "id": "tests_test_post_suggestions_integration_rationale_191" }, { "label": "Second preview within TTL overwrites first in the DB JSON column. Asserts b", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L216", "community": 32, "norm_label": "second preview within ttl overwrites first in the db json column. asserts b", "id": "tests_test_post_suggestions_integration_rationale_216" }, { "label": "Charge #17: apply \u2192 re-read position from DB \u2192 matched_condition_id set. Wi", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L255", "community": 32, "norm_label": "charge #17: apply \u2192 re-read position from db \u2192 matched_condition_id set. wi", "id": "tests_test_post_suggestions_integration_rationale_255" }, { "label": "Charge #22: member_changed reason fires when position written between preview an", "file_type": "rationale", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L314", "community": 32, "norm_label": "charge #22: member_changed reason fires when position written between preview an", "id": "tests_test_post_suggestions_integration_rationale_314" }, { "label": "test_reference.py", "file_type": "code", "source_file": "backend/tests/test_reference.py", "source_location": "L1", "community": 65, "norm_label": "test_reference.py", "id": "backend_tests_test_reference_py" }, { "label": "_make_post_condition()", "file_type": "code", "source_file": "backend/tests/test_reference.py", "source_location": "L13", "community": 65, "norm_label": "_make_post_condition()", "id": "tests_test_reference_make_post_condition" }, { "label": "test_get_post_conditions_returns_list()", "file_type": "code", "source_file": "backend/tests/test_reference.py", "source_location": "L28", "community": 65, "norm_label": "test_get_post_conditions_returns_list()", "id": "tests_test_reference_test_get_post_conditions_returns_list" }, { "label": "test_get_building_types_returns_list()", "file_type": "code", "source_file": "backend/tests/test_reference.py", "source_location": "L54", "community": 65, "norm_label": "test_get_building_types_returns_list()", "id": "tests_test_reference_test_get_building_types_returns_list" }, { "label": "test_get_member_roles_returns_four_roles()", "file_type": "code", "source_file": "backend/tests/test_reference.py", "source_location": "L90", "community": 65, "norm_label": "test_get_member_roles_returns_four_roles()", "id": "tests_test_reference_test_get_member_roles_returns_four_roles" }, { "label": "Endpoint tests for /api reference data endpoints.", "file_type": "rationale", "source_file": "backend/tests/test_reference.py", "source_location": "L1", "community": 65, "norm_label": "endpoint tests for /api reference data endpoints.", "id": "tests_test_reference_rationale_1" }, { "label": "test_schema.py", "file_type": "code", "source_file": "backend/tests/test_schema.py", "source_location": "L1", "community": 43, "norm_label": "test_schema.py", "id": "backend_tests_test_schema_py" }, { "label": "_enable_sqlite_fk()", "file_type": "code", "source_file": "backend/tests/test_schema.py", "source_location": "L21", "community": 30, "norm_label": "_enable_sqlite_fk()", "id": "tests_test_schema_enable_sqlite_fk" }, { "label": "db_session()", "file_type": "code", "source_file": "backend/tests/test_schema.py", "source_location": "L29", "community": 43, "norm_label": "db_session()", "id": "tests_test_schema_db_session" }, { "label": "test_member_name_unique()", "file_type": "code", "source_file": "backend/tests/test_schema.py", "source_location": "L50", "community": 43, "norm_label": "test_member_name_unique()", "id": "tests_test_schema_test_member_name_unique" }, { "label": "test_position_reserve_and_member_constraint_defined()", "file_type": "code", "source_file": "backend/tests/test_schema.py", "source_location": "L65", "community": 43, "norm_label": "test_position_reserve_and_member_constraint_defined()", "id": "tests_test_schema_test_position_reserve_and_member_constraint_defined" }, { "label": "test_building_group_slot_count_bounds()", "file_type": "code", "source_file": "backend/tests/test_schema.py", "source_location": "L78", "community": 43, "norm_label": "test_building_group_slot_count_bounds()", "id": "tests_test_schema_test_building_group_slot_count_bounds" }, { "label": "test_post_condition_count()", "file_type": "code", "source_file": "backend/tests/test_schema.py", "source_location": "L89", "community": 43, "norm_label": "test_post_condition_count()", "id": "tests_test_schema_test_post_condition_count" }, { "label": "test_building_type_config_count()", "file_type": "code", "source_file": "backend/tests/test_schema.py", "source_location": "L104", "community": 43, "norm_label": "test_building_type_config_count()", "id": "tests_test_schema_test_building_type_config_count" }, { "label": "test_siege_member_pk()", "file_type": "code", "source_file": "backend/tests/test_schema.py", "source_location": "L119", "community": 43, "norm_label": "test_siege_member_pk()", "id": "tests_test_schema_test_siege_member_pk" }, { "label": "Schema constraint and seed data tests using in-memory SQLite.", "file_type": "rationale", "source_file": "backend/tests/test_schema.py", "source_location": "L1", "community": 43, "norm_label": "schema constraint and seed data tests using in-memory sqlite.", "id": "tests_test_schema_rationale_1" }, { "label": "Enable SQLite foreign key enforcement.", "file_type": "rationale", "source_file": "backend/tests/test_schema.py", "source_location": "L22", "community": 30, "norm_label": "enable sqlite foreign key enforcement.", "id": "tests_test_schema_rationale_22" }, { "label": "Inserting two members with the same name must raise IntegrityError.", "file_type": "rationale", "source_file": "backend/tests/test_schema.py", "source_location": "L51", "community": 43, "norm_label": "inserting two members with the same name must raise integrityerror.", "id": "tests_test_schema_rationale_51" }, { "label": "The check constraint preventing is_reserve=True with a member_id is defined.", "file_type": "rationale", "source_file": "backend/tests/test_schema.py", "source_location": "L66", "community": 43, "norm_label": "the check constraint preventing is_reserve=true with a member_id is defined.", "id": "tests_test_schema_rationale_66" }, { "label": "slot_count check constraints (1\u20133) are declared on the table.", "file_type": "rationale", "source_file": "backend/tests/test_schema.py", "source_location": "L79", "community": 43, "norm_label": "slot_count check constraints (1\u20133) are declared on the table.", "id": "tests_test_schema_rationale_79" }, { "label": "seed_post_conditions populates exactly 36 rows.", "file_type": "rationale", "source_file": "backend/tests/test_schema.py", "source_location": "L90", "community": 43, "norm_label": "seed_post_conditions populates exactly 36 rows.", "id": "tests_test_schema_rationale_90" }, { "label": "seed_building_type_config populates exactly 5 rows.", "file_type": "rationale", "source_file": "backend/tests/test_schema.py", "source_location": "L105", "community": 43, "norm_label": "seed_building_type_config populates exactly 5 rows.", "id": "tests_test_schema_rationale_105" }, { "label": "Inserting a duplicate (siege_id, member_id) pair raises IntegrityError.", "file_type": "rationale", "source_file": "backend/tests/test_schema.py", "source_location": "L120", "community": 43, "norm_label": "inserting a duplicate (siege_id, member_id) pair raises integrityerror.", "id": "tests_test_schema_rationale_120" }, { "label": "test_seed_canonical.py", "file_type": "code", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L1", "community": 5, "norm_label": "test_seed_canonical.py", "id": "backend_tests_test_seed_canonical_py" }, { "label": "_run_canonical_seed()", "file_type": "code", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L57", "community": 5, "norm_label": "_run_canonical_seed()", "id": "tests_test_seed_canonical_run_canonical_seed" }, { "label": "TestCanonicalSeedPostConditions", "file_type": "code", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L71", "community": 16, "norm_label": "testcanonicalseedpostconditions", "id": "tests_test_seed_canonical_testcanonicalseedpostconditions" }, { "label": "test_seeds_36_post_conditions()", "file_type": "code", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L75", "community": 5, "norm_label": "test_seeds_36_post_conditions()", "id": "tests_test_seed_canonical_test_seeds_36_post_conditions" }, { "label": "test_idempotent_post_conditions()", "file_type": "code", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L84", "community": 5, "norm_label": "test_idempotent_post_conditions()", "id": "tests_test_seed_canonical_test_idempotent_post_conditions" }, { "label": "TestCanonicalSeedBuildingTypeConfig", "file_type": "code", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L94", "community": 16, "norm_label": "testcanonicalseedbuildingtypeconfig", "id": "tests_test_seed_canonical_testcanonicalseedbuildingtypeconfig" }, { "label": "test_seeds_building_type_configs()", "file_type": "code", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L98", "community": 5, "norm_label": "test_seeds_building_type_configs()", "id": "tests_test_seed_canonical_test_seeds_building_type_configs" }, { "label": "test_idempotent_building_type_config()", "file_type": "code", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L107", "community": 5, "norm_label": "test_idempotent_building_type_config()", "id": "tests_test_seed_canonical_test_idempotent_building_type_config" }, { "label": "TestCanonicalSeedPostPriorityConfig", "file_type": "code", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L120", "community": 16, "norm_label": "testcanonicalseedpostpriorityconfig", "id": "tests_test_seed_canonical_testcanonicalseedpostpriorityconfig" }, { "label": "test_seeds_18_post_priority_configs()", "file_type": "code", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L128", "community": 5, "norm_label": "test_seeds_18_post_priority_configs()", "id": "tests_test_seed_canonical_test_seeds_18_post_priority_configs" }, { "label": "test_priority_configs_cover_posts_1_through_18()", "file_type": "code", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L137", "community": 5, "norm_label": "test_priority_configs_cover_posts_1_through_18()", "id": "tests_test_seed_canonical_test_priority_configs_cover_posts_1_through_18" }, { "label": "test_priority_configs_default_priority_is_2()", "file_type": "code", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L145", "community": 5, "norm_label": "test_priority_configs_default_priority_is_2()", "id": "tests_test_seed_canonical_test_priority_configs_default_priority_is_2" }, { "label": "test_idempotent_post_priority_config()", "file_type": "code", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L153", "community": 5, "norm_label": "test_idempotent_post_priority_config()", "id": "tests_test_seed_canonical_test_idempotent_post_priority_config" }, { "label": "Regression tests for scripts/seed.py (the canonical seed entry point). These te", "file_type": "rationale", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L1", "community": 5, "norm_label": "regression tests for scripts/seed.py (the canonical seed entry point). these te", "id": "tests_test_seed_canonical_rationale_1" }, { "label": "Run the three seed functions called by scripts/seed.py.", "file_type": "rationale", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L58", "community": 5, "norm_label": "run the three seed functions called by scripts/seed.py.", "id": "tests_test_seed_canonical_rationale_58" }, { "label": "PostCondition seeding via the canonical script.", "file_type": "rationale", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L72", "community": 16, "norm_label": "postcondition seeding via the canonical script.", "id": "tests_test_seed_canonical_rationale_72" }, { "label": "Canonical seed must insert all 36 PostCondition rows.", "file_type": "rationale", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L76", "community": 113, "norm_label": "canonical seed must insert all 36 postcondition rows.", "id": "tests_test_seed_canonical_rationale_76" }, { "label": "Running twice must not create duplicate PostCondition rows.", "file_type": "rationale", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L85", "community": 114, "norm_label": "running twice must not create duplicate postcondition rows.", "id": "tests_test_seed_canonical_rationale_85" }, { "label": "BuildingTypeConfig seeding via the canonical script.", "file_type": "rationale", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L95", "community": 16, "norm_label": "buildingtypeconfig seeding via the canonical script.", "id": "tests_test_seed_canonical_rationale_95" }, { "label": "Canonical seed must insert BuildingTypeConfig rows.", "file_type": "rationale", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L99", "community": 115, "norm_label": "canonical seed must insert buildingtypeconfig rows.", "id": "tests_test_seed_canonical_rationale_99" }, { "label": "Running twice must not create duplicate BuildingTypeConfig rows.", "file_type": "rationale", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L108", "community": 116, "norm_label": "running twice must not create duplicate buildingtypeconfig rows.", "id": "tests_test_seed_canonical_rationale_108" }, { "label": "PostPriorityConfig seeding via the canonical script. This is the seed that", "file_type": "rationale", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L121", "community": 16, "norm_label": "postpriorityconfig seeding via the canonical script. this is the seed that", "id": "tests_test_seed_canonical_rationale_121" }, { "label": "Canonical seed must insert all 18 PostPriorityConfig rows.", "file_type": "rationale", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L129", "community": 117, "norm_label": "canonical seed must insert all 18 postpriorityconfig rows.", "id": "tests_test_seed_canonical_rationale_129" }, { "label": "PostPriorityConfig rows must cover post numbers 1 through 18.", "file_type": "rationale", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L138", "community": 118, "norm_label": "postpriorityconfig rows must cover post numbers 1 through 18.", "id": "tests_test_seed_canonical_rationale_138" }, { "label": "All PostPriorityConfig rows must have default priority of 2.", "file_type": "rationale", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L146", "community": 119, "norm_label": "all postpriorityconfig rows must have default priority of 2.", "id": "tests_test_seed_canonical_rationale_146" }, { "label": "Running twice must not create duplicate PostPriorityConfig rows.", "file_type": "rationale", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L154", "community": 120, "norm_label": "running twice must not create duplicate postpriorityconfig rows.", "id": "tests_test_seed_canonical_rationale_154" }, { "label": "test_seed_demo.py", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L1", "community": 5, "norm_label": "test_seed_demo.py", "id": "backend_tests_test_seed_demo_py" }, { "label": "session()", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L41", "community": 5, "norm_label": "session()", "id": "tests_test_seed_demo_session" }, { "label": "_run_seed()", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L59", "community": 5, "norm_label": "_run_seed()", "id": "tests_test_seed_demo_run_seed" }, { "label": "TestSeedDemoMembers", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L91", "community": 16, "norm_label": "testseeddemomembers", "id": "tests_test_seed_demo_testseeddemomembers" }, { "label": "test_creates_25_members()", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L95", "community": 5, "norm_label": "test_creates_25_members()", "id": "tests_test_seed_demo_test_creates_25_members" }, { "label": "test_members_have_demo_names()", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L101", "community": 5, "norm_label": "test_members_have_demo_names()", "id": "tests_test_seed_demo_test_members_have_demo_names" }, { "label": "test_idempotent_member_creation()", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L109", "community": 5, "norm_label": "test_idempotent_member_creation()", "id": "tests_test_seed_demo_test_idempotent_member_creation" }, { "label": "TestSeedDemoSiege", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L117", "community": 16, "norm_label": "testseeddemosiege", "id": "tests_test_seed_demo_testseeddemosiege" }, { "label": "test_creates_one_siege()", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L121", "community": 5, "norm_label": "test_creates_one_siege()", "id": "tests_test_seed_demo_test_creates_one_siege" }, { "label": "test_siege_has_active_status()", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L127", "community": 5, "norm_label": "test_siege_has_active_status()", "id": "tests_test_seed_demo_test_siege_has_active_status" }, { "label": "test_idempotent_siege_creation()", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L133", "community": 5, "norm_label": "test_idempotent_siege_creation()", "id": "tests_test_seed_demo_test_idempotent_siege_creation" }, { "label": "TestSeedDemoBuildingsAndPositions", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L141", "community": 16, "norm_label": "testseeddemobuildingsandpositions", "id": "tests_test_seed_demo_testseeddemobuildingsandpositions" }, { "label": "test_creates_buildings()", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L145", "community": 5, "norm_label": "test_creates_buildings()", "id": "tests_test_seed_demo_test_creates_buildings" }, { "label": "test_creates_positions()", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L151", "community": 5, "norm_label": "test_creates_positions()", "id": "tests_test_seed_demo_test_creates_positions" }, { "label": "test_some_positions_have_members()", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L157", "community": 5, "norm_label": "test_some_positions_have_members()", "id": "tests_test_seed_demo_test_some_positions_have_members" }, { "label": "test_idempotent_position_creation()", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L168", "community": 5, "norm_label": "test_idempotent_position_creation()", "id": "tests_test_seed_demo_test_idempotent_position_creation" }, { "label": "TestSeedDemosiegeMembers", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L181", "community": 16, "norm_label": "testseeddemosiegemembers", "id": "tests_test_seed_demo_testseeddemosiegemembers" }, { "label": "test_enrolls_all_members()", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L185", "community": 5, "norm_label": "test_enrolls_all_members()", "id": "tests_test_seed_demo_test_enrolls_all_members" }, { "label": "test_members_have_attack_days()", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L191", "community": 5, "norm_label": "test_members_have_attack_days()", "id": "tests_test_seed_demo_test_members_have_attack_days" }, { "label": "test_idempotent_siege_member_enrollment()", "file_type": "code", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L199", "community": 5, "norm_label": "test_idempotent_siege_member_enrollment()", "id": "tests_test_seed_demo_test_idempotent_siege_member_enrollment" }, { "label": "Smoke tests for scripts/seed_demo.py. These tests run against an in-memory SQLi", "file_type": "rationale", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L1", "community": 5, "norm_label": "smoke tests for scripts/seed_demo.py. these tests run against an in-memory sqli", "id": "tests_test_seed_demo_rationale_1" }, { "label": "Provide a fresh in-memory SQLite session for each test.", "file_type": "rationale", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L42", "community": 5, "norm_label": "provide a fresh in-memory sqlite session for each test.", "id": "tests_test_seed_demo_rationale_42" }, { "label": "Run the demo seed functions against the provided session.", "file_type": "rationale", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L60", "community": 5, "norm_label": "run the demo seed functions against the provided session.", "id": "tests_test_seed_demo_rationale_60" }, { "label": "Demo member creation.", "file_type": "rationale", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L92", "community": 16, "norm_label": "demo member creation.", "id": "tests_test_seed_demo_rationale_92" }, { "label": "Running twice must not create duplicate members.", "file_type": "rationale", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L110", "community": 121, "norm_label": "running twice must not create duplicate members.", "id": "tests_test_seed_demo_rationale_110" }, { "label": "Running twice must not create a second siege.", "file_type": "rationale", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L134", "community": 122, "norm_label": "running twice must not create a second siege.", "id": "tests_test_seed_demo_rationale_134" }, { "label": "Buildings and positions.", "file_type": "rationale", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L142", "community": 16, "norm_label": "buildings and positions.", "id": "tests_test_seed_demo_rationale_142" }, { "label": "Most positions should be filled with demo members.", "file_type": "rationale", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L158", "community": 123, "norm_label": "most positions should be filled with demo members.", "id": "tests_test_seed_demo_rationale_158" }, { "label": "Running twice must not double the building/position count.", "file_type": "rationale", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L169", "community": 124, "norm_label": "running twice must not double the building/position count.", "id": "tests_test_seed_demo_rationale_169" }, { "label": "Siege member enrollments.", "file_type": "rationale", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L182", "community": 16, "norm_label": "siege member enrollments.", "id": "tests_test_seed_demo_rationale_182" }, { "label": "Running twice must not double the siege_member count.", "file_type": "rationale", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L200", "community": 125, "norm_label": "running twice must not double the siege_member count.", "id": "tests_test_seed_demo_rationale_200" }, { "label": "test_sieges.py", "file_type": "code", "source_file": "backend/tests/test_sieges.py", "source_location": "L1", "community": 30, "norm_label": "test_sieges.py", "id": "backend_tests_test_sieges_py" }, { "label": "_make_siege()", "file_type": "code", "source_file": "backend/tests/test_sieges.py", "source_location": "L22", "community": 12, "norm_label": "_make_siege()", "id": "tests_test_sieges_make_siege" }, { "label": "test_list_sieges_returns_empty_list()", "file_type": "code", "source_file": "backend/tests/test_sieges.py", "source_location": "L48", "community": 30, "norm_label": "test_list_sieges_returns_empty_list()", "id": "tests_test_sieges_test_list_sieges_returns_empty_list" }, { "label": "test_create_siege_returns_201()", "file_type": "code", "source_file": "backend/tests/test_sieges.py", "source_location": "L64", "community": 30, "norm_label": "test_create_siege_returns_201()", "id": "tests_test_sieges_test_create_siege_returns_201" }, { "label": "test_get_siege_not_found_returns_404()", "file_type": "code", "source_file": "backend/tests/test_sieges.py", "source_location": "L94", "community": 30, "norm_label": "test_get_siege_not_found_returns_404()", "id": "tests_test_sieges_test_get_siege_not_found_returns_404" }, { "label": "test_delete_planning_siege_returns_204()", "file_type": "code", "source_file": "backend/tests/test_sieges.py", "source_location": "L110", "community": 30, "norm_label": "test_delete_planning_siege_returns_204()", "id": "tests_test_sieges_test_delete_planning_siege_returns_204" }, { "label": "test_delete_active_siege_returns_400()", "file_type": "code", "source_file": "backend/tests/test_sieges.py", "source_location": "L125", "community": 30, "norm_label": "test_delete_active_siege_returns_400()", "id": "tests_test_sieges_test_delete_active_siege_returns_400" }, { "label": "_seed_siege()", "file_type": "code", "source_file": "backend/tests/test_sieges.py", "source_location": "L168", "community": 32, "norm_label": "_seed_siege()", "id": "tests_test_sieges_seed_siege" }, { "label": "test_compute_scroll_count_sums_theoretical_capacity()", "file_type": "code", "source_file": "backend/tests/test_sieges.py", "source_location": "L205", "community": 30, "norm_label": "test_compute_scroll_count_sums_theoretical_capacity()", "id": "tests_test_sieges_test_compute_scroll_count_sums_theoretical_capacity" }, { "label": "test_compute_scroll_count_broken_building_unchanged()", "file_type": "code", "source_file": "backend/tests/test_sieges.py", "source_location": "L229", "community": 30, "norm_label": "test_compute_scroll_count_broken_building_unchanged()", "id": "tests_test_sieges_test_compute_scroll_count_broken_building_unchanged" }, { "label": "test_compute_scroll_count_level_change_updates_count()", "file_type": "code", "source_file": "backend/tests/test_sieges.py", "source_location": "L262", "community": 30, "norm_label": "test_compute_scroll_count_level_change_updates_count()", "id": "tests_test_sieges_test_compute_scroll_count_level_change_updates_count" }, { "label": "test_compute_scroll_count_post_buildings_contribute_one()", "file_type": "code", "source_file": "backend/tests/test_sieges.py", "source_location": "L292", "community": 30, "norm_label": "test_compute_scroll_count_post_buildings_contribute_one()", "id": "tests_test_sieges_test_compute_scroll_count_post_buildings_contribute_one" }, { "label": "Endpoint tests for /api/sieges \u2014 mocks the service layer directly.", "file_type": "rationale", "source_file": "backend/tests/test_sieges.py", "source_location": "L1", "community": 60, "norm_label": "endpoint tests for /api/sieges \u2014 mocks the service layer directly.", "id": "tests_test_sieges_rationale_1" }, { "label": "Insert a siege with the given buildings and return the siege id. Each dict", "file_type": "rationale", "source_file": "backend/tests/test_sieges.py", "source_location": "L169", "community": 32, "norm_label": "insert a siege with the given buildings and return the siege id. each dict", "id": "tests_test_sieges_rationale_169" }, { "label": "compute_scroll_count returns the sum of _LEVEL_TEAMS capacities for all building", "file_type": "rationale", "source_file": "backend/tests/test_sieges.py", "source_location": "L206", "community": 30, "norm_label": "compute_scroll_count returns the sum of _level_teams capacities for all building", "id": "tests_test_sieges_rationale_206" }, { "label": "Breaking a building must NOT change the scroll count (regression guard for issue", "file_type": "rationale", "source_file": "backend/tests/test_sieges.py", "source_location": "L230", "community": 30, "norm_label": "breaking a building must not change the scroll count (regression guard for issue", "id": "tests_test_sieges_rationale_230" }, { "label": "A level change must update the scroll count. One defense_tower at level 1 (", "file_type": "rationale", "source_file": "backend/tests/test_sieges.py", "source_location": "L263", "community": 30, "norm_label": "a level change must update the scroll count. one defense_tower at level 1 (", "id": "tests_test_sieges_rationale_263" }, { "label": "Post buildings (not in _LEVEL_TEAMS) must contribute 1 position each. One s", "file_type": "rationale", "source_file": "backend/tests/test_sieges.py", "source_location": "L293", "community": 30, "norm_label": "post buildings (not in _level_teams) must contribute 1 position each. one s", "id": "tests_test_sieges_rationale_293" }, { "label": "TestConfigureTelemetryNoop", "file_type": "code", "source_file": "backend/tests/test_telemetry.py", "source_location": "L17", "community": 18, "norm_label": "testconfiguretelemetrynoop", "id": "tests_test_telemetry_testconfiguretelemetrynoop" }, { "label": ".test_noop_when_env_var_missing()", "file_type": "code", "source_file": "backend/tests/test_telemetry.py", "source_location": "L20", "community": 18, "norm_label": ".test_noop_when_env_var_missing()", "id": "tests_test_telemetry_testconfiguretelemetrynoop_test_noop_when_env_var_missing" }, { "label": ".test_noop_when_env_var_empty_string()", "file_type": "code", "source_file": "backend/tests/test_telemetry.py", "source_location": "L42", "community": 18, "norm_label": ".test_noop_when_env_var_empty_string()", "id": "tests_test_telemetry_testconfiguretelemetrynoop_test_noop_when_env_var_empty_string" }, { "label": ".test_noop_when_env_var_whitespace_only()", "file_type": "code", "source_file": "backend/tests/test_telemetry.py", "source_location": "L61", "community": 18, "norm_label": ".test_noop_when_env_var_whitespace_only()", "id": "tests_test_telemetry_testconfiguretelemetrynoop_test_noop_when_env_var_whitespace_only" }, { "label": ".test_calls_configure_azure_monitor_when_env_var_set()", "file_type": "code", "source_file": "backend/tests/test_telemetry.py", "source_location": "L92", "community": 18, "norm_label": ".test_calls_configure_azure_monitor_when_env_var_set()", "id": "tests_test_telemetry_testconfiguretelemetryactive_test_calls_configure_azure_monitor_when_env_var_set" }, { "label": ".test_sdk_exception_does_not_propagate()", "file_type": "code", "source_file": "backend/tests/test_telemetry.py", "source_location": "L111", "community": 18, "norm_label": ".test_sdk_exception_does_not_propagate()", "id": "tests_test_telemetry_testconfiguretelemetryactive_test_sdk_exception_does_not_propagate" }, { "label": "TestConfigureTelemetryFastAPIInstrumentation", "file_type": "code", "source_file": "backend/tests/test_telemetry.py", "source_location": "L130", "community": 18, "norm_label": "testconfiguretelemetryfastapiinstrumentation", "id": "tests_test_telemetry_testconfiguretelemetryfastapiinstrumentation" }, { "label": ".test_instrument_app_called_when_connection_string_and_service_name_set()", "file_type": "code", "source_file": "backend/tests/test_telemetry.py", "source_location": "L143", "community": 18, "norm_label": ".test_instrument_app_called_when_connection_string_and_service_name_set()", "id": "tests_test_telemetry_testconfiguretelemetryfastapiinstrumentation_test_instrument_app_called_when_connection_string_and_service_name_set" }, { "label": ".test_configure_azure_monitor_called_when_both_env_vars_set()", "file_type": "code", "source_file": "backend/tests/test_telemetry.py", "source_location": "L182", "community": 18, "norm_label": ".test_configure_azure_monitor_called_when_both_env_vars_set()", "id": "tests_test_telemetry_testconfiguretelemetryfastapiinstrumentation_test_configure_azure_monitor_called_when_both_env_vars_set" }, { "label": ".test_instrument_app_not_called_when_app_is_none()", "file_type": "code", "source_file": "backend/tests/test_telemetry.py", "source_location": "L218", "community": 18, "norm_label": ".test_instrument_app_not_called_when_app_is_none()", "id": "tests_test_telemetry_testconfiguretelemetryfastapiinstrumentation_test_instrument_app_not_called_when_app_is_none" }, { "label": "TestConfigureTelemetrySQLAlchemyInstrumentation", "file_type": "code", "source_file": "backend/tests/test_telemetry.py", "source_location": "L258", "community": 18, "norm_label": "testconfiguretelemetrysqlalchemyinstrumentation", "id": "tests_test_telemetry_testconfiguretelemetrysqlalchemyinstrumentation" }, { "label": ".test_sqlalchemy_instrument_called_with_sync_engine()", "file_type": "code", "source_file": "backend/tests/test_telemetry.py", "source_location": "L273", "community": 18, "norm_label": ".test_sqlalchemy_instrument_called_with_sync_engine()", "id": "tests_test_telemetry_testconfiguretelemetrysqlalchemyinstrumentation_test_sqlalchemy_instrument_called_with_sync_engine" }, { "label": ".test_sqlalchemy_instrument_not_called_when_engine_is_none()", "file_type": "code", "source_file": "backend/tests/test_telemetry.py", "source_location": "L315", "community": 18, "norm_label": ".test_sqlalchemy_instrument_not_called_when_engine_is_none()", "id": "tests_test_telemetry_testconfiguretelemetrysqlalchemyinstrumentation_test_sqlalchemy_instrument_not_called_when_engine_is_none" }, { "label": ".test_sqlalchemy_instrument_not_called_when_telemetry_unconfigured()", "file_type": "code", "source_file": "backend/tests/test_telemetry.py", "source_location": "L353", "community": 18, "norm_label": ".test_sqlalchemy_instrument_not_called_when_telemetry_unconfigured()", "id": "tests_test_telemetry_testconfiguretelemetrysqlalchemyinstrumentation_test_sqlalchemy_instrument_not_called_when_telemetry_unconfigured" }, { "label": "TestConfigureTelemetryAsyncPGInstrumentation", "file_type": "code", "source_file": "backend/tests/test_telemetry.py", "source_location": "L391", "community": 18, "norm_label": "testconfiguretelemetryasyncpginstrumentation", "id": "tests_test_telemetry_testconfiguretelemetryasyncpginstrumentation" }, { "label": ".test_asyncpg_instrument_called_when_telemetry_configured()", "file_type": "code", "source_file": "backend/tests/test_telemetry.py", "source_location": "L405", "community": 18, "norm_label": ".test_asyncpg_instrument_called_when_telemetry_configured()", "id": "tests_test_telemetry_testconfiguretelemetryasyncpginstrumentation_test_asyncpg_instrument_called_when_telemetry_configured" }, { "label": ".test_asyncpg_instrument_not_called_when_telemetry_unconfigured()", "file_type": "code", "source_file": "backend/tests/test_telemetry.py", "source_location": "L443", "community": 18, "norm_label": ".test_asyncpg_instrument_not_called_when_telemetry_unconfigured()", "id": "tests_test_telemetry_testconfiguretelemetryasyncpginstrumentation_test_asyncpg_instrument_not_called_when_telemetry_unconfigured" }, { "label": "Tests for backend/app/telemetry.py. Verifies: - configure_telemetry() is a no-o", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L1", "community": 18, "norm_label": "tests for backend/app/telemetry.py. verifies: - configure_telemetry() is a no-o", "id": "tests_test_telemetry_rationale_1" }, { "label": "When APPLICATIONINSIGHTS_CONNECTION_STRING is absent, nothing should happen.", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L18", "community": 18, "norm_label": "when applicationinsights_connection_string is absent, nothing should happen.", "id": "tests_test_telemetry_rationale_18" }, { "label": "No exception and configure_azure_monitor is never imported or called.", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L21", "community": 18, "norm_label": "no exception and configure_azure_monitor is never imported or called.", "id": "tests_test_telemetry_rationale_21" }, { "label": "An explicitly empty string also results in a no-op.", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L43", "community": 18, "norm_label": "an explicitly empty string also results in a no-op.", "id": "tests_test_telemetry_rationale_43" }, { "label": "A whitespace-only string is treated the same as empty.", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L62", "community": 18, "norm_label": "a whitespace-only string is treated the same as empty.", "id": "tests_test_telemetry_rationale_62" }, { "label": "When env var is set, configure_azure_monitor() must be called.", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L82", "community": 18, "norm_label": "when env var is set, configure_azure_monitor() must be called.", "id": "tests_test_telemetry_rationale_82" }, { "label": "configure_azure_monitor() is called exactly once with logger_name='app'.", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L93", "community": 18, "norm_label": "configure_azure_monitor() is called exactly once with logger_name='app'.", "id": "tests_test_telemetry_rationale_93" }, { "label": "If configure_azure_monitor raises, the exception is swallowed.", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L112", "community": 18, "norm_label": "if configure_azure_monitor raises, the exception is swallowed.", "id": "tests_test_telemetry_rationale_112" }, { "label": "Regression tests: FastAPIInstrumentor.instrument_app() must be called. Issu", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L131", "community": 18, "norm_label": "regression tests: fastapiinstrumentor.instrument_app() must be called. issu", "id": "tests_test_telemetry_rationale_131" }, { "label": "FastAPIInstrumentor.instrument_app() is called with the FastAPI app. Wh", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L144", "community": 18, "norm_label": "fastapiinstrumentor.instrument_app() is called with the fastapi app. wh", "id": "tests_test_telemetry_rationale_144" }, { "label": "configure_azure_monitor() is called when both env vars are present. Reg", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L183", "community": 18, "norm_label": "configure_azure_monitor() is called when both env vars are present. reg", "id": "tests_test_telemetry_rationale_183" }, { "label": "FastAPIInstrumentor.instrument_app() is NOT called when app argument is None.", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L219", "community": 18, "norm_label": "fastapiinstrumentor.instrument_app() is not called when app argument is none.", "id": "tests_test_telemetry_rationale_219" }, { "label": "SQLAlchemyInstrumentor must be called when engine is provided. Issue #257:", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L259", "community": 18, "norm_label": "sqlalchemyinstrumentor must be called when engine is provided. issue #257:", "id": "tests_test_telemetry_rationale_259" }, { "label": "SQLAlchemyInstrumentor().instrument(engine=...) is called with the engin", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L274", "community": 18, "norm_label": "sqlalchemyinstrumentor().instrument(engine=...) is called with the engin", "id": "tests_test_telemetry_rationale_274" }, { "label": "SQLAlchemyInstrumentor().instrument() is NOT called when no engine argum", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L316", "community": 18, "norm_label": "sqlalchemyinstrumentor().instrument() is not called when no engine argum", "id": "tests_test_telemetry_rationale_316" }, { "label": "SQLAlchemyInstrumentor().instrument() is NOT called when APPLICATIONINSI", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L354", "community": 18, "norm_label": "sqlalchemyinstrumentor().instrument() is not called when applicationinsi", "id": "tests_test_telemetry_rationale_354" }, { "label": "AsyncPGInstrumentor must be called whenever telemetry is active. Issue #257", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L392", "community": 18, "norm_label": "asyncpginstrumentor must be called whenever telemetry is active. issue #257", "id": "tests_test_telemetry_rationale_392" }, { "label": "AsyncPGInstrumentor().instrument() is called when telemetry is active, r", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L406", "community": 18, "norm_label": "asyncpginstrumentor().instrument() is called when telemetry is active, r", "id": "tests_test_telemetry_rationale_406" }, { "label": "AsyncPGInstrumentor().instrument() is NOT called when APPLICATIONINSIGHT", "file_type": "rationale", "source_file": "backend/tests/test_telemetry.py", "source_location": "L444", "community": 18, "norm_label": "asyncpginstrumentor().instrument() is not called when applicationinsight", "id": "tests_test_telemetry_rationale_444" }, { "label": "test_validation.py", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L1", "community": 0, "norm_label": "test_validation.py", "id": "backend_tests_test_validation_py" }, { "label": "_make_condition()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L126", "community": 6, "norm_label": "_make_condition()", "id": "tests_test_validation_make_condition" }, { "label": "test_validate_endpoint_404()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L148", "community": 0, "norm_label": "test_validate_endpoint_404()", "id": "tests_test_validation_test_validate_endpoint_404" }, { "label": "test_validate_endpoint_returns_result()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L172", "community": 0, "norm_label": "test_validate_endpoint_returns_result()", "id": "tests_test_validation_test_validate_endpoint_returns_result" }, { "label": "test_rule1_inactive_member_error()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L215", "community": 0, "norm_label": "test_rule1_inactive_member_error()", "id": "tests_test_validation_test_rule1_inactive_member_error" }, { "label": "test_rule1_active_member_no_error()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L235", "community": 0, "norm_label": "test_rule1_active_member_no_error()", "id": "tests_test_validation_test_rule1_active_member_no_error" }, { "label": "test_rule2_broken_building_assignment_counts_toward_scroll_limit()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L255", "community": 0, "norm_label": "test_rule2_broken_building_assignment_counts_toward_scroll_limit()", "id": "tests_test_validation_test_rule2_broken_building_assignment_counts_toward_scroll_limit" }, { "label": "test_rule2_broken_and_healthy_both_count_toward_scroll_limit()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L293", "community": 0, "norm_label": "test_rule2_broken_and_healthy_both_count_toward_scroll_limit()", "id": "tests_test_validation_test_rule2_broken_and_healthy_both_count_toward_scroll_limit" }, { "label": "test_rule2_exceeds_scroll_count()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L340", "community": 0, "norm_label": "test_rule2_exceeds_scroll_count()", "id": "tests_test_validation_test_rule2_exceeds_scroll_count" }, { "label": "test_rule2_within_scroll_count()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L364", "community": 0, "norm_label": "test_rule2_within_scroll_count()", "id": "tests_test_validation_test_rule2_within_scroll_count" }, { "label": "test_rule3_valid_building_number()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L406", "community": 0, "norm_label": "test_rule3_valid_building_number()", "id": "tests_test_validation_test_rule3_valid_building_number" }, { "label": "test_rule4_invalid_group_number()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L420", "community": 0, "norm_label": "test_rule4_invalid_group_number()", "id": "tests_test_validation_test_rule4_invalid_group_number" }, { "label": "test_rule4_valid_group_number()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L437", "community": 0, "norm_label": "test_rule4_valid_group_number()", "id": "tests_test_validation_test_rule4_valid_group_number" }, { "label": "test_rule5_position_number_exceeds_slot_count()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L454", "community": 0, "norm_label": "test_rule5_position_number_exceeds_slot_count()", "id": "tests_test_validation_test_rule5_position_number_exceeds_slot_count" }, { "label": "test_rule5_valid_position_number()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L471", "community": 0, "norm_label": "test_rule5_valid_position_number()", "id": "tests_test_validation_test_rule5_valid_position_number" }, { "label": "test_rule6_valid_attack_day()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L501", "community": 12, "norm_label": "test_rule6_valid_attack_day()", "id": "tests_test_validation_test_rule6_valid_attack_day" }, { "label": "test_rule7_post_has_multiple_groups()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L514", "community": 0, "norm_label": "test_rule7_post_has_multiple_groups()", "id": "tests_test_validation_test_rule7_post_has_multiple_groups" }, { "label": "test_rule7_post_has_exactly_one_group()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L536", "community": 0, "norm_label": "test_rule7_post_has_exactly_one_group()", "id": "tests_test_validation_test_rule7_post_has_exactly_one_group" }, { "label": "test_rule8_disabled_with_member()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L552", "community": 0, "norm_label": "test_rule8_disabled_with_member()", "id": "tests_test_validation_test_rule8_disabled_with_member" }, { "label": "test_rule8_reserve_with_member()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L570", "community": 0, "norm_label": "test_rule8_reserve_with_member()", "id": "tests_test_validation_test_rule8_reserve_with_member" }, { "label": "test_rule8_valid_state()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L588", "community": 0, "norm_label": "test_rule8_valid_state()", "id": "tests_test_validation_test_rule8_valid_state" }, { "label": "test_rule9_wrong_building_count()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L606", "community": 0, "norm_label": "test_rule9_wrong_building_count()", "id": "tests_test_validation_test_rule9_wrong_building_count" }, { "label": "test_rule9_correct_building_count()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L618", "community": 0, "norm_label": "test_rule9_correct_building_count()", "id": "tests_test_validation_test_rule9_correct_building_count" }, { "label": "test_rule10_empty_unresolved_slot()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L643", "community": 0, "norm_label": "test_rule10_empty_unresolved_slot()", "id": "tests_test_validation_test_rule10_empty_unresolved_slot" }, { "label": "test_rule10_message_uses_position_name()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L660", "community": 0, "norm_label": "test_rule10_message_uses_position_name()", "id": "tests_test_validation_test_rule10_message_uses_position_name" }, { "label": "test_rule10_no_warning_when_disabled()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L687", "community": 0, "norm_label": "test_rule10_no_warning_when_disabled()", "id": "tests_test_validation_test_rule10_no_warning_when_disabled" }, { "label": "test_rule11_member_pref_no_match()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L704", "community": 0, "norm_label": "test_rule11_member_pref_no_match()", "id": "tests_test_validation_test_rule11_member_pref_no_match" }, { "label": "test_rule11_no_warning_when_no_preferences()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L732", "community": 0, "norm_label": "test_rule11_no_warning_when_no_preferences()", "id": "tests_test_validation_test_rule11_no_warning_when_no_preferences" }, { "label": "test_rule13_missing_attack_day_assigned_member()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L759", "community": 0, "norm_label": "test_rule13_missing_attack_day_assigned_member()", "id": "tests_test_validation_test_rule13_missing_attack_day_assigned_member" }, { "label": "test_rule13_attack_day_set()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L795", "community": 0, "norm_label": "test_rule13_attack_day_set()", "id": "tests_test_validation_test_rule13_attack_day_set" }, { "label": "test_rule14_fewer_than_10_day2()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L815", "community": 12, "norm_label": "test_rule14_fewer_than_10_day2()", "id": "tests_test_validation_test_rule14_fewer_than_10_day2" }, { "label": "test_rule14_ten_or_more_day2()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L830", "community": 12, "norm_label": "test_rule14_ten_or_more_day2()", "id": "tests_test_validation_test_rule14_ten_or_more_day2" }, { "label": "test_rule15_hh_no_reserve()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L845", "community": 0, "norm_label": "test_rule15_hh_no_reserve()", "id": "tests_test_validation_test_rule15_hh_no_reserve" }, { "label": "test_rule15_advanced_no_reserve()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L865", "community": 0, "norm_label": "test_rule15_advanced_no_reserve()", "id": "tests_test_validation_test_rule15_advanced_no_reserve" }, { "label": "test_rule15_hh_reserve_configured()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L885", "community": 0, "norm_label": "test_rule15_hh_reserve_configured()", "id": "tests_test_validation_test_rule15_hh_reserve_configured" }, { "label": "test_rule15_non_hh_no_reserve_no_warning()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L905", "community": 0, "norm_label": "test_rule15_non_hh_no_reserve_no_warning()", "id": "tests_test_validation_test_rule15_non_hh_no_reserve_no_warning" }, { "label": "test_rule16_post_fewer_than_3_conditions()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L925", "community": 6, "norm_label": "test_rule16_post_fewer_than_3_conditions()", "id": "tests_test_validation_test_rule16_post_fewer_than_3_conditions" }, { "label": "test_rule16_post_has_3_conditions()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L952", "community": 0, "norm_label": "test_rule16_post_has_3_conditions()", "id": "tests_test_validation_test_rule16_post_has_3_conditions" }, { "label": "_default_configs()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L977", "community": 54, "norm_label": "_default_configs()", "id": "tests_test_validation_default_configs" }, { "label": "_session_with_siege_and_configs()", "file_type": "code", "source_file": "backend/tests/test_validation.py", "source_location": "L987", "community": 0, "norm_label": "_session_with_siege_and_configs()", "id": "tests_test_validation_session_with_siege_and_configs" }, { "label": "Tests for the validation engine (all 16 rules) and the validate endpoint.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L1", "community": 0, "norm_label": "tests for the validation engine (all 16 rules) and the validate endpoint.", "id": "tests_test_validation_rationale_1" }, { "label": "Rule 1: assigned member who is inactive triggers an error.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L216", "community": 0, "norm_label": "rule 1: assigned member who is inactive triggers an error.", "id": "tests_test_validation_rationale_216" }, { "label": "Rule 1 pass: active member assigned \u2014 no rule 1 error.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L236", "community": 0, "norm_label": "rule 1 pass: active member assigned \u2014 no rule 1 error.", "id": "tests_test_validation_rationale_236" }, { "label": "Rule 2 regression (#253): assignments on broken buildings count toward scroll bu", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L256", "community": 0, "norm_label": "rule 2 regression (#253): assignments on broken buildings count toward scroll bu", "id": "tests_test_validation_rationale_256" }, { "label": "Rule 2: assignments on broken buildings add to healthy-building count. Memb", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L294", "community": 0, "norm_label": "rule 2: assignments on broken buildings add to healthy-building count. memb", "id": "tests_test_validation_rationale_294" }, { "label": "Rule 2: member assigned 4 times when scrolls_per_player limit is 3 \u2192 error.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L341", "community": 0, "norm_label": "rule 2: member assigned 4 times when scrolls_per_player limit is 3 \u2192 error.", "id": "tests_test_validation_rationale_341" }, { "label": "Rule 2 pass: member assigned once, scroll count 5 \u2192 no error.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L365", "community": 0, "norm_label": "rule 2 pass: member assigned once, scroll count 5 \u2192 no error.", "id": "tests_test_validation_rationale_365" }, { "label": "Rule 3: building_number=0 for stronghold \u2192 friendly label, no id= leak.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L385", "community": 0, "norm_label": "rule 3: building_number=0 for stronghold \u2192 friendly label, no id= leak.", "id": "tests_test_validation_rationale_385" }, { "label": "Rule 3 pass: building_number=1 for stronghold.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L407", "community": 0, "norm_label": "rule 3 pass: building_number=1 for stronghold.", "id": "tests_test_validation_rationale_407" }, { "label": "Rule 4: group_number=10 \u2192 error.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L421", "community": 0, "norm_label": "rule 4: group_number=10 \u2192 error.", "id": "tests_test_validation_rationale_421" }, { "label": "Rule 4 pass: group_number=1.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L438", "community": 0, "norm_label": "rule 4 pass: group_number=1.", "id": "tests_test_validation_rationale_438" }, { "label": "Rule 5: position_number=4 with slot_count=3 \u2192 error.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L455", "community": 0, "norm_label": "rule 5: position_number=4 with slot_count=3 \u2192 error.", "id": "tests_test_validation_rationale_455" }, { "label": "Rule 5 pass: position_number=2, slot_count=3.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L472", "community": 0, "norm_label": "rule 5 pass: position_number=2, slot_count=3.", "id": "tests_test_validation_rationale_472" }, { "label": "Rule 6: attack_day=3 \u2192 error.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L489", "community": 12, "norm_label": "rule 6: attack_day=3 \u2192 error.", "id": "tests_test_validation_rationale_489" }, { "label": "Rule 6 pass: attack_day=2.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L502", "community": 12, "norm_label": "rule 6 pass: attack_day=2.", "id": "tests_test_validation_rationale_502" }, { "label": "Rule 7: post building with 2 groups \u2192 error with correct message.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L515", "community": 0, "norm_label": "rule 7: post building with 2 groups \u2192 error with correct message.", "id": "tests_test_validation_rationale_515" }, { "label": "Rule 7 pass: post building with 1 group.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L537", "community": 0, "norm_label": "rule 7 pass: post building with 1 group.", "id": "tests_test_validation_rationale_537" }, { "label": "Rule 8: disabled position with member_id \u2192 error.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L553", "community": 0, "norm_label": "rule 8: disabled position with member_id \u2192 error.", "id": "tests_test_validation_rationale_553" }, { "label": "Rule 8: reserve position with member \u2192 error.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L571", "community": 0, "norm_label": "rule 8: reserve position with member \u2192 error.", "id": "tests_test_validation_rationale_571" }, { "label": "Rule 8 pass: position with member, not reserve, not disabled.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L589", "community": 0, "norm_label": "rule 8 pass: position with member, not reserve, not disabled.", "id": "tests_test_validation_rationale_589" }, { "label": "Rule 9: 0 strongholds when config expects 1 \u2192 error.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L607", "community": 0, "norm_label": "rule 9: 0 strongholds when config expects 1 \u2192 error.", "id": "tests_test_validation_rationale_607" }, { "label": "Rule 9 pass: exactly the right number of each building type.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L619", "community": 0, "norm_label": "rule 9 pass: exactly the right number of each building type.", "id": "tests_test_validation_rationale_619" }, { "label": "Rule 10: unassigned, non-disabled, non-reserve position \u2192 warning.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L644", "community": 0, "norm_label": "rule 10: unassigned, non-disabled, non-reserve position \u2192 warning.", "id": "tests_test_validation_rationale_644" }, { "label": "Rule 10 message uses friendly building label, not raw enum value.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L661", "community": 0, "norm_label": "rule 10 message uses friendly building label, not raw enum value.", "id": "tests_test_validation_rationale_661" }, { "label": "Rule 10 pass: disabled empty position \u2192 no rule 10 warning.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L688", "community": 0, "norm_label": "rule 10 pass: disabled empty position \u2192 no rule 10 warning.", "id": "tests_test_validation_rationale_688" }, { "label": "Rule 11: member has preferences but none match active conditions \u2192 warning.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L705", "community": 0, "norm_label": "rule 11: member has preferences but none match active conditions \u2192 warning.", "id": "tests_test_validation_rationale_705" }, { "label": "Rule 11 pass: member has no preferences \u2192 skip warning.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L733", "community": 0, "norm_label": "rule 11 pass: member has no preferences \u2192 skip warning.", "id": "tests_test_validation_rationale_733" }, { "label": "Rule 13: assigned member with no attack_day \u2192 error.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L760", "community": 0, "norm_label": "rule 13: assigned member with no attack_day \u2192 error.", "id": "tests_test_validation_rationale_760" }, { "label": "Rule 13: siege member not assigned to any position but has no attack_day \u2192 error", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L780", "community": 0, "norm_label": "rule 13: siege member not assigned to any position but has no attack_day \u2192 error", "id": "tests_test_validation_rationale_780" }, { "label": "Rule 13 pass: all siege members have attack_day set \u2192 no rule 13 error.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L796", "community": 0, "norm_label": "rule 13 pass: all siege members have attack_day set \u2192 no rule 13 error.", "id": "tests_test_validation_rationale_796" }, { "label": "Rule 14: 5 Day 2 attackers \u2192 warning.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L816", "community": 12, "norm_label": "rule 14: 5 day 2 attackers \u2192 warning.", "id": "tests_test_validation_rationale_816" }, { "label": "Rule 14 pass: 10 Day 2 attackers \u2192 no warning.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L831", "community": 12, "norm_label": "rule 14 pass: 10 day 2 attackers \u2192 no warning.", "id": "tests_test_validation_rationale_831" }, { "label": "Rule 15: HH member with has_reserve_set=None \u2192 warning.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L846", "community": 0, "norm_label": "rule 15: hh member with has_reserve_set=none \u2192 warning.", "id": "tests_test_validation_rationale_846" }, { "label": "Rule 15: Advanced Role member with has_reserve_set=None \u2192 warning.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L866", "community": 0, "norm_label": "rule 15: advanced role member with has_reserve_set=none \u2192 warning.", "id": "tests_test_validation_rationale_866" }, { "label": "Rule 15 pass: HH member with has_reserve_set=True \u2192 no warning.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L886", "community": 0, "norm_label": "rule 15 pass: hh member with has_reserve_set=true \u2192 no warning.", "id": "tests_test_validation_rationale_886" }, { "label": "Rule 15 pass: medium/novice member with has_reserve_set=None \u2192 no warning.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L906", "community": 0, "norm_label": "rule 15 pass: medium/novice member with has_reserve_set=none \u2192 no warning.", "id": "tests_test_validation_rationale_906" }, { "label": "Rule 16: post with 1 active condition \u2192 warning with correct message.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L926", "community": 6, "norm_label": "rule 16: post with 1 active condition \u2192 warning with correct message.", "id": "tests_test_validation_rationale_926" }, { "label": "Rule 16 pass: post with 3 active conditions \u2192 no rule 16 warning.", "file_type": "rationale", "source_file": "backend/tests/test_validation.py", "source_location": "L953", "community": 0, "norm_label": "rule 16 pass: post with 3 active conditions \u2192 no rule 16 warning.", "id": "tests_test_validation_rationale_953" }, { "label": "test_version.py", "file_type": "code", "source_file": "backend/tests/test_version.py", "source_location": "L1", "community": 29, "norm_label": "test_version.py", "id": "backend_tests_test_version_py" }, { "label": "_reload_version_module()", "file_type": "code", "source_file": "backend/tests/test_version.py", "source_location": "L16", "community": 29, "norm_label": "_reload_version_module()", "id": "tests_test_version_reload_version_module" }, { "label": "test_read_backend_version_semver_only()", "file_type": "code", "source_file": "backend/tests/test_version.py", "source_location": "L29", "community": 29, "norm_label": "test_read_backend_version_semver_only()", "id": "tests_test_version_test_read_backend_version_semver_only" }, { "label": "test_read_backend_version_with_build_info()", "file_type": "code", "source_file": "backend/tests/test_version.py", "source_location": "L53", "community": 29, "norm_label": "test_read_backend_version_with_build_info()", "id": "tests_test_version_test_read_backend_version_with_build_info" }, { "label": "test_read_backend_version_missing_version_file()", "file_type": "code", "source_file": "backend/tests/test_version.py", "source_location": "L70", "community": 29, "norm_label": "test_read_backend_version_missing_version_file()", "id": "tests_test_version_test_read_backend_version_missing_version_file" }, { "label": "test_read_backend_version_build_info_with_missing_file()", "file_type": "code", "source_file": "backend/tests/test_version.py", "source_location": "L87", "community": 29, "norm_label": "test_read_backend_version_build_info_with_missing_file()", "id": "tests_test_version_test_read_backend_version_build_info_with_missing_file" }, { "label": "test_get_version_returns_200_with_expected_keys()", "file_type": "code", "source_file": "backend/tests/test_version.py", "source_location": "L109", "community": 29, "norm_label": "test_get_version_returns_200_with_expected_keys()", "id": "tests_test_version_test_get_version_returns_200_with_expected_keys" }, { "label": "test_get_version_backend_version_has_build_suffix()", "file_type": "code", "source_file": "backend/tests/test_version.py", "source_location": "L128", "community": 29, "norm_label": "test_get_version_backend_version_has_build_suffix()", "id": "tests_test_version_test_get_version_backend_version_has_build_suffix" }, { "label": "test_get_version_backend_version_clean_in_local_dev()", "file_type": "code", "source_file": "backend/tests/test_version.py", "source_location": "L144", "community": 29, "norm_label": "test_get_version_backend_version_clean_in_local_dev()", "id": "tests_test_version_test_get_version_backend_version_clean_in_local_dev" }, { "label": "test_get_version_git_sha_field_preserved()", "file_type": "code", "source_file": "backend/tests/test_version.py", "source_location": "L159", "community": 29, "norm_label": "test_get_version_git_sha_field_preserved()", "id": "tests_test_version_test_get_version_git_sha_field_preserved" }, { "label": "test_get_version_bot_unreachable_returns_none()", "file_type": "code", "source_file": "backend/tests/test_version.py", "source_location": "L175", "community": 29, "norm_label": "test_get_version_bot_unreachable_returns_none()", "id": "tests_test_version_test_get_version_bot_unreachable_returns_none" }, { "label": "Tests for GET /api/version endpoint and _read_backend_version helper.", "file_type": "rationale", "source_file": "backend/tests/test_version.py", "source_location": "L1", "community": 29, "norm_label": "tests for get /api/version endpoint and _read_backend_version helper.", "id": "tests_test_version_rationale_1" }, { "label": "Force re-import of version module so env-var reads pick up monkeypatches.", "file_type": "rationale", "source_file": "backend/tests/test_version.py", "source_location": "L17", "community": 29, "norm_label": "force re-import of version module so env-var reads pick up monkeypatches.", "id": "tests_test_version_rationale_17" }, { "label": "When BUILD_NUMBER / GIT_SHA are absent, return bare semver.", "file_type": "rationale", "source_file": "backend/tests/test_version.py", "source_location": "L30", "community": 29, "norm_label": "when build_number / git_sha are absent, return bare semver.", "id": "tests_test_version_rationale_30" }, { "label": "When env vars are explicitly 'unknown', return bare semver.", "file_type": "rationale", "source_file": "backend/tests/test_version.py", "source_location": "L43", "community": 29, "norm_label": "when env vars are explicitly 'unknown', return bare semver.", "id": "tests_test_version_rationale_43" }, { "label": "When both BUILD_NUMBER and GIT_SHA are set, return combined string.", "file_type": "rationale", "source_file": "backend/tests/test_version.py", "source_location": "L54", "community": 29, "norm_label": "when both build_number and git_sha are set, return combined string.", "id": "tests_test_version_rationale_54" }, { "label": "When the VERSION file is missing, semver falls back to 'unknown'.", "file_type": "rationale", "source_file": "backend/tests/test_version.py", "source_location": "L71", "community": 29, "norm_label": "when the version file is missing, semver falls back to 'unknown'.", "id": "tests_test_version_rationale_71" }, { "label": "Even with a missing VERSION file, build suffix is appended if env vars are set.", "file_type": "rationale", "source_file": "backend/tests/test_version.py", "source_location": "L88", "community": 29, "norm_label": "even with a missing version file, build suffix is appended if env vars are set.", "id": "tests_test_version_rationale_88" }, { "label": "GET /api/version responds 200 with all required fields.", "file_type": "rationale", "source_file": "backend/tests/test_version.py", "source_location": "L110", "community": 29, "norm_label": "get /api/version responds 200 with all required fields.", "id": "tests_test_version_rationale_110" }, { "label": "backend_version includes build metadata when env vars are present.", "file_type": "rationale", "source_file": "backend/tests/test_version.py", "source_location": "L129", "community": 29, "norm_label": "backend_version includes build metadata when env vars are present.", "id": "tests_test_version_rationale_129" }, { "label": "backend_version is bare semver when BUILD_NUMBER/GIT_SHA are absent.", "file_type": "rationale", "source_file": "backend/tests/test_version.py", "source_location": "L145", "community": 29, "norm_label": "backend_version is bare semver when build_number/git_sha are absent.", "id": "tests_test_version_rationale_145" }, { "label": "git_sha top-level field is still returned for backward compatibility.", "file_type": "rationale", "source_file": "backend/tests/test_version.py", "source_location": "L160", "community": 29, "norm_label": "git_sha top-level field is still returned for backward compatibility.", "id": "tests_test_version_rationale_160" }, { "label": "bot_version is null when the bot sidecar is unreachable.", "file_type": "rationale", "source_file": "backend/tests/test_version.py", "source_location": "L176", "community": 29, "norm_label": "bot_version is null when the bot sidecar is unreachable.", "id": "tests_test_version_rationale_176" }, { "label": "config.py", "file_type": "code", "source_file": "bot/app/config.py", "source_location": "L1", "community": 10, "norm_label": "config.py", "id": "bot_app_config_py" }, { "label": "discord_client.py", "file_type": "code", "source_file": "bot/app/discord_client.py", "source_location": "L1", "community": 37, "norm_label": "discord_client.py", "id": "bot_app_discord_client_py" }, { "label": "SiegeBot", "file_type": "code", "source_file": "bot/app/discord_client.py", "source_location": "L6", "community": 37, "norm_label": "siegebot", "id": "app_discord_client_siegebot" }, { "label": ".on_ready()", "file_type": "code", "source_file": "bot/app/discord_client.py", "source_location": "L14", "community": 37, "norm_label": ".on_ready()", "id": "app_discord_client_siegebot_on_ready" }, { "label": "._require_guild()", "file_type": "code", "source_file": "bot/app/discord_client.py", "source_location": "L17", "community": 37, "norm_label": "._require_guild()", "id": "app_discord_client_siegebot_require_guild" }, { "label": "Discord client for the Siege Assignment System.", "file_type": "rationale", "source_file": "bot/app/discord_client.py", "source_location": "L7", "community": 37, "norm_label": "discord client for the siege assignment system.", "id": "app_discord_client_rationale_7" }, { "label": "Find member by username in the guild, open DM, send message.", "file_type": "rationale", "source_file": "bot/app/discord_client.py", "source_location": "L23", "community": 37, "norm_label": "find member by username in the guild, open dm, send message.", "id": "app_discord_client_rationale_23" }, { "label": "Find text channel by name, post message.", "file_type": "rationale", "source_file": "bot/app/discord_client.py", "source_location": "L34", "community": 37, "norm_label": "find text channel by name, post message.", "id": "app_discord_client_rationale_34" }, { "label": "Find text channel by name, post image as Discord file attachment. Retur", "file_type": "rationale", "source_file": "bot/app/discord_client.py", "source_location": "L47", "community": 37, "norm_label": "find text channel by name, post image as discord file attachment. retur", "id": "app_discord_client_rationale_47" }, { "label": "Return list of guild members as dicts with id, username, and display_name.", "file_type": "rationale", "source_file": "bot/app/discord_client.py", "source_location": "L62", "community": 57, "norm_label": "return list of guild members as dicts with id, username, and display_name.", "id": "app_discord_client_rationale_62" }, { "label": "http_api.py", "file_type": "code", "source_file": "bot/app/http_api.py", "source_location": "L1", "community": 50, "norm_label": "http_api.py", "id": "bot_app_http_api_py" }, { "label": "set_bot()", "file_type": "code", "source_file": "bot/app/http_api.py", "source_location": "L22", "community": 50, "norm_label": "set_bot()", "id": "app_http_api_set_bot" }, { "label": "_get_bot()", "file_type": "code", "source_file": "bot/app/http_api.py", "source_location": "L27", "community": 37, "norm_label": "_get_bot()", "id": "app_http_api_get_bot" }, { "label": "verify_api_key()", "file_type": "code", "source_file": "bot/app/http_api.py", "source_location": "L36", "community": 50, "norm_label": "verify_api_key()", "id": "app_http_api_verify_api_key" }, { "label": "NotifyRequest", "file_type": "code", "source_file": "bot/app/http_api.py", "source_location": "L46", "community": 50, "norm_label": "notifyrequest", "id": "app_http_api_notifyrequest" }, { "label": "PostMessageRequest", "file_type": "code", "source_file": "bot/app/http_api.py", "source_location": "L51", "community": 50, "norm_label": "postmessagerequest", "id": "app_http_api_postmessagerequest" }, { "label": "version()", "file_type": "code", "source_file": "bot/app/http_api.py", "source_location": "L57", "community": 40, "norm_label": "version()", "id": "app_http_api_version" }, { "label": "notify()", "file_type": "code", "source_file": "bot/app/http_api.py", "source_location": "L83", "community": 61, "norm_label": "notify()", "id": "app_http_api_notify" }, { "label": "post_message()", "file_type": "code", "source_file": "bot/app/http_api.py", "source_location": "L97", "community": 37, "norm_label": "post_message()", "id": "app_http_api_post_message" }, { "label": "post_image()", "file_type": "code", "source_file": "bot/app/http_api.py", "source_location": "L111", "community": 37, "norm_label": "post_image()", "id": "app_http_api_post_image" }, { "label": "get_guild_member()", "file_type": "code", "source_file": "bot/app/http_api.py", "source_location": "L136", "community": 50, "norm_label": "get_guild_member()", "id": "app_http_api_get_guild_member" }, { "label": "Validate the Bearer token against the configured bot API key.", "file_type": "rationale", "source_file": "bot/app/http_api.py", "source_location": "L37", "community": 50, "norm_label": "validate the bearer token against the configured bot api key.", "id": "app_http_api_rationale_37" }, { "label": "Return the bot version \u2014 no authentication required. Returns ``1.0.1+42.abc", "file_type": "rationale", "source_file": "bot/app/http_api.py", "source_location": "L58", "community": 40, "norm_label": "return the bot version \u2014 no authentication required. returns ``1.0.1+42.abc", "id": "app_http_api_rationale_58" }, { "label": "Health check \u2014 no authentication required.", "file_type": "rationale", "source_file": "bot/app/http_api.py", "source_location": "L78", "community": 50, "norm_label": "health check \u2014 no authentication required.", "id": "app_http_api_rationale_78" }, { "label": "Send a DM notification to a guild member.", "file_type": "rationale", "source_file": "bot/app/http_api.py", "source_location": "L87", "community": 61, "norm_label": "send a dm notification to a guild member.", "id": "app_http_api_rationale_87" }, { "label": "Post a text message to a guild channel.", "file_type": "rationale", "source_file": "bot/app/http_api.py", "source_location": "L101", "community": 37, "norm_label": "post a text message to a guild channel.", "id": "app_http_api_rationale_101" }, { "label": "Post an image to a guild channel.", "file_type": "rationale", "source_file": "bot/app/http_api.py", "source_location": "L116", "community": 37, "norm_label": "post an image to a guild channel.", "id": "app_http_api_rationale_116" }, { "label": "Retrieve guild member list.", "file_type": "rationale", "source_file": "bot/app/http_api.py", "source_location": "L130", "community": 57, "norm_label": "retrieve guild member list.", "id": "app_http_api_rationale_130" }, { "label": "Look up a single guild member by Discord user ID. Returns ``{\"is_member\": f", "file_type": "rationale", "source_file": "bot/app/http_api.py", "source_location": "L140", "community": 50, "norm_label": "look up a single guild member by discord user id. returns ``{\"is_member\": f", "id": "app_http_api_rationale_140" }, { "label": "main.py", "file_type": "code", "source_file": "bot/app/main.py", "source_location": "L1", "community": 5, "norm_label": "main.py", "id": "bot_app_main_py" }, { "label": "run_http_server()", "file_type": "code", "source_file": "bot/app/main.py", "source_location": "L18", "community": 5, "norm_label": "run_http_server()", "id": "app_main_run_http_server" }, { "label": "run_discord_client()", "file_type": "code", "source_file": "bot/app/main.py", "source_location": "L30", "community": 5, "norm_label": "run_discord_client()", "id": "app_main_run_discord_client" }, { "label": "main()", "file_type": "code", "source_file": "bot/app/main.py", "source_location": "L36", "community": 5, "norm_label": "main()", "id": "app_main_main" }, { "label": "Run the FastAPI/uvicorn HTTP sidecar on port 8001.", "file_type": "rationale", "source_file": "bot/app/main.py", "source_location": "L19", "community": 5, "norm_label": "run the fastapi/uvicorn http sidecar on port 8001.", "id": "app_main_rationale_19" }, { "label": "Connect and run the Discord client.", "file_type": "rationale", "source_file": "bot/app/main.py", "source_location": "L31", "community": 5, "norm_label": "connect and run the discord client.", "id": "app_main_rationale_31" }, { "label": "Start both the Discord client and HTTP server concurrently.", "file_type": "rationale", "source_file": "bot/app/main.py", "source_location": "L37", "community": 5, "norm_label": "start both the discord client and http server concurrently.", "id": "app_main_rationale_37" }, { "label": "telemetry.py", "file_type": "code", "source_file": "bot/app/telemetry.py", "source_location": "L1", "community": 69, "norm_label": "telemetry.py", "id": "bot_app_telemetry_py" }, { "label": "__init__.py", "file_type": "code", "source_file": "bot/app/__init__.py", "source_location": "L1", "community": 126, "norm_label": "__init__.py", "id": "bot_app_init_py" }, { "label": "conftest.py", "file_type": "code", "source_file": "bot/tests/conftest.py", "source_location": "L1", "community": 51, "norm_label": "conftest.py", "id": "bot_tests_conftest_py" }, { "label": "_FakeClient", "file_type": "code", "source_file": "bot/tests/conftest.py", "source_location": "L21", "community": 51, "norm_label": "_fakeclient", "id": "tests_conftest_fakeclient" }, { "label": ".__init__()", "file_type": "code", "source_file": "bot/tests/conftest.py", "source_location": "L22", "community": 51, "norm_label": ".__init__()", "id": "tests_conftest_fakeclient_init" }, { "label": "_FakeTextChannel", "file_type": "code", "source_file": "bot/tests/conftest.py", "source_location": "L26", "community": 51, "norm_label": "_faketextchannel", "id": "tests_conftest_faketextchannel" }, { "label": "_FakeHTTPException", "file_type": "code", "source_file": "bot/tests/conftest.py", "source_location": "L32", "community": 51, "norm_label": "_fakehttpexception", "id": "tests_conftest_fakehttpexception" }, { "label": "Exception", "file_type": "code", "source_file": "", "source_location": "", "community": 51, "norm_label": "exception", "id": "exception" }, { "label": "_FakeNotFound", "file_type": "code", "source_file": "bot/tests/conftest.py", "source_location": "L35", "community": 51, "norm_label": "_fakenotfound", "id": "tests_conftest_fakenotfound" }, { "label": "_find()", "file_type": "code", "source_file": "bot/tests/conftest.py", "source_location": "L45", "community": 51, "norm_label": "_find()", "id": "tests_conftest_find" }, { "label": "test_discord_client.py", "file_type": "code", "source_file": "bot/tests/test_discord_client.py", "source_location": "L1", "community": 47, "norm_label": "test_discord_client.py", "id": "bot_tests_test_discord_client_py" }, { "label": "_make_bot()", "file_type": "code", "source_file": "bot/tests/test_discord_client.py", "source_location": "L11", "community": 47, "norm_label": "_make_bot()", "id": "tests_test_discord_client_make_bot" }, { "label": "_make_text_channel()", "file_type": "code", "source_file": "bot/tests/test_discord_client.py", "source_location": "L35", "community": 47, "norm_label": "_make_text_channel()", "id": "tests_test_discord_client_make_text_channel" }, { "label": "_make_guild()", "file_type": "code", "source_file": "bot/tests/test_discord_client.py", "source_location": "L44", "community": 47, "norm_label": "_make_guild()", "id": "tests_test_discord_client_make_guild" }, { "label": "test_send_dm_finds_member_and_sends()", "file_type": "code", "source_file": "bot/tests/test_discord_client.py", "source_location": "L57", "community": 47, "norm_label": "test_send_dm_finds_member_and_sends()", "id": "tests_test_discord_client_test_send_dm_finds_member_and_sends" }, { "label": "test_send_dm_case_insensitive()", "file_type": "code", "source_file": "bot/tests/test_discord_client.py", "source_location": "L70", "community": 47, "norm_label": "test_send_dm_case_insensitive()", "id": "tests_test_discord_client_test_send_dm_case_insensitive" }, { "label": "test_send_dm_raises_value_error_if_member_not_found()", "file_type": "code", "source_file": "bot/tests/test_discord_client.py", "source_location": "L81", "community": 47, "norm_label": "test_send_dm_raises_value_error_if_member_not_found()", "id": "tests_test_discord_client_test_send_dm_raises_value_error_if_member_not_found" }, { "label": "test_post_message_finds_channel_and_sends()", "file_type": "code", "source_file": "bot/tests/test_discord_client.py", "source_location": "L95", "community": 47, "norm_label": "test_post_message_finds_channel_and_sends()", "id": "tests_test_discord_client_test_post_message_finds_channel_and_sends" }, { "label": "test_post_message_raises_value_error_if_channel_not_found()", "file_type": "code", "source_file": "bot/tests/test_discord_client.py", "source_location": "L106", "community": 47, "norm_label": "test_post_message_raises_value_error_if_channel_not_found()", "id": "tests_test_discord_client_test_post_message_raises_value_error_if_channel_not_found" }, { "label": "test_post_image_returns_cdn_url()", "file_type": "code", "source_file": "bot/tests/test_discord_client.py", "source_location": "L125", "community": 47, "norm_label": "test_post_image_returns_cdn_url()", "id": "tests_test_discord_client_test_post_image_returns_cdn_url" }, { "label": "test_get_members_returns_correct_dict_format()", "file_type": "code", "source_file": "bot/tests/test_discord_client.py", "source_location": "L143", "community": 47, "norm_label": "test_get_members_returns_correct_dict_format()", "id": "tests_test_discord_client_test_get_members_returns_correct_dict_format" }, { "label": "Unit tests for SiegeBot Discord client methods using mock guild/member objects.", "file_type": "rationale", "source_file": "bot/tests/test_discord_client.py", "source_location": "L1", "community": 47, "norm_label": "unit tests for siegebot discord client methods using mock guild/member objects.", "id": "tests_test_discord_client_rationale_1" }, { "label": "Create a SiegeBot instance with a pre-loaded guild (bypasses Discord connect).", "file_type": "rationale", "source_file": "bot/tests/test_discord_client.py", "source_location": "L12", "community": 47, "norm_label": "create a siegebot instance with a pre-loaded guild (bypasses discord connect).", "id": "tests_test_discord_client_rationale_12" }, { "label": "test_get_guild_member.py", "file_type": "code", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L1", "community": 9, "norm_label": "test_get_guild_member.py", "id": "bot_tests_test_get_guild_member_py" }, { "label": "patch_guild_id()", "file_type": "code", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L30", "community": 9, "norm_label": "patch_guild_id()", "id": "tests_test_get_guild_member_patch_guild_id" }, { "label": "_make_mock_member()", "file_type": "code", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L40", "community": 9, "norm_label": "_make_mock_member()", "id": "tests_test_get_guild_member_make_mock_member" }, { "label": "_make_mock_bot_with_guild()", "file_type": "code", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L75", "community": 9, "norm_label": "_make_mock_bot_with_guild()", "id": "tests_test_get_guild_member_make_mock_bot_with_guild" }, { "label": "test_get_guild_member_found_returns_200_with_member_data()", "file_type": "code", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L89", "community": 9, "norm_label": "test_get_guild_member_found_returns_200_with_member_data()", "id": "tests_test_get_guild_member_test_get_guild_member_found_returns_200_with_member_data" }, { "label": "test_get_guild_member_roles_exclude_everyone()", "file_type": "code", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L119", "community": 9, "norm_label": "test_get_guild_member_roles_exclude_everyone()", "id": "tests_test_get_guild_member_test_get_guild_member_roles_exclude_everyone" }, { "label": "test_get_guild_member_not_found_returns_200_is_member_false()", "file_type": "code", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L144", "community": 9, "norm_label": "test_get_guild_member_not_found_returns_200_is_member_false()", "id": "tests_test_get_guild_member_test_get_guild_member_not_found_returns_200_is_member_false" }, { "label": "test_get_guild_member_discord_http_exception_returns_503()", "file_type": "code", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L166", "community": 9, "norm_label": "test_get_guild_member_discord_http_exception_returns_503()", "id": "tests_test_get_guild_member_test_get_guild_member_discord_http_exception_returns_503" }, { "label": "test_get_guild_member_guild_none_returns_503()", "file_type": "code", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L188", "community": 9, "norm_label": "test_get_guild_member_guild_none_returns_503()", "id": "tests_test_get_guild_member_test_get_guild_member_guild_none_returns_503" }, { "label": "test_get_guild_member_bot_none_returns_503()", "file_type": "code", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L202", "community": 9, "norm_label": "test_get_guild_member_bot_none_returns_503()", "id": "tests_test_get_guild_member_test_get_guild_member_bot_none_returns_503" }, { "label": "test_get_guild_member_no_auth_returns_403()", "file_type": "code", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L218", "community": 9, "norm_label": "test_get_guild_member_no_auth_returns_403()", "id": "tests_test_get_guild_member_test_get_guild_member_no_auth_returns_403" }, { "label": "test_get_guild_member_wrong_api_key_returns_401()", "file_type": "code", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L228", "community": 9, "norm_label": "test_get_guild_member_wrong_api_key_returns_401()", "id": "tests_test_get_guild_member_test_get_guild_member_wrong_api_key_returns_401" }, { "label": "Tests for GET /api/members/{discord_user_id} \u2014 guild member lookup endpoint.", "file_type": "rationale", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L1", "community": 9, "norm_label": "tests for get /api/members/{discord_user_id} \u2014 guild member lookup endpoint.", "id": "tests_test_get_guild_member_rationale_1" }, { "label": "Override the discord_guild_id setting for all tests.", "file_type": "rationale", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L31", "community": 9, "norm_label": "override the discord_guild_id setting for all tests.", "id": "tests_test_get_guild_member_rationale_31" }, { "label": "Build a mock discord.Member with realistic attributes. ``role_ids`` default", "file_type": "rationale", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L46", "community": 9, "norm_label": "build a mock discord.member with realistic attributes. ``role_ids`` default", "id": "tests_test_get_guild_member_rationale_46" }, { "label": "Build a mock bot whose get_guild() returns the given guild object.", "file_type": "rationale", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L76", "community": 9, "norm_label": "build a mock bot whose get_guild() returns the given guild object.", "id": "tests_test_get_guild_member_rationale_76" }, { "label": "When the member exists, respond 200 with is_member=true and full payload.", "file_type": "rationale", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L90", "community": 9, "norm_label": "when the member exists, respond 200 with is_member=true and full payload.", "id": "tests_test_get_guild_member_rationale_90" }, { "label": "The @everyone role must never appear in the roles list.", "file_type": "rationale", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L120", "community": 9, "norm_label": "the @everyone role must never appear in the roles list.", "id": "tests_test_get_guild_member_rationale_120" }, { "label": "When Discord returns NotFound, respond 200 with is_member=false.", "file_type": "rationale", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L145", "community": 9, "norm_label": "when discord returns notfound, respond 200 with is_member=false.", "id": "tests_test_get_guild_member_rationale_145" }, { "label": "When Discord raises an unexpected HTTPException, respond 503.", "file_type": "rationale", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L167", "community": 9, "norm_label": "when discord raises an unexpected httpexception, respond 503.", "id": "tests_test_get_guild_member_rationale_167" }, { "label": "When get_guild() returns None (bot not in guild), respond 503.", "file_type": "rationale", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L189", "community": 9, "norm_label": "when get_guild() returns none (bot not in guild), respond 503.", "id": "tests_test_get_guild_member_rationale_189" }, { "label": "When _bot is None entirely, guild lookup yields None and we get 503.", "file_type": "rationale", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L203", "community": 9, "norm_label": "when _bot is none entirely, guild lookup yields none and we get 503.", "id": "tests_test_get_guild_member_rationale_203" }, { "label": "Requests without a Bearer token must be rejected (403 or 401).", "file_type": "rationale", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L219", "community": 9, "norm_label": "requests without a bearer token must be rejected (403 or 401).", "id": "tests_test_get_guild_member_rationale_219" }, { "label": "Requests with a wrong Bearer token must be rejected with 401.", "file_type": "rationale", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L229", "community": 9, "norm_label": "requests with a wrong bearer token must be rejected with 401.", "id": "tests_test_get_guild_member_rationale_229" }, { "label": "test_http_api.py", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L1", "community": 9, "norm_label": "test_http_api.py", "id": "bot_tests_test_http_api_py" }, { "label": "patch_api_key()", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L18", "community": 9, "norm_label": "patch_api_key()", "id": "tests_test_http_api_patch_api_key" }, { "label": "_make_mock_bot()", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L28", "community": 9, "norm_label": "_make_mock_bot()", "id": "tests_test_http_api_make_mock_bot" }, { "label": "test_version_returns_200()", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L44", "community": 9, "norm_label": "test_version_returns_200()", "id": "tests_test_http_api_test_version_returns_200" }, { "label": "test_version_bare_semver_in_local_dev()", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L54", "community": 9, "norm_label": "test_version_bare_semver_in_local_dev()", "id": "tests_test_http_api_test_version_bare_semver_in_local_dev" }, { "label": "test_version_includes_build_suffix_when_env_vars_set()", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L74", "community": 9, "norm_label": "test_version_includes_build_suffix_when_env_vars_set()", "id": "tests_test_http_api_test_version_includes_build_suffix_when_env_vars_set" }, { "label": "test_version_unknown_when_version_file_missing()", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L94", "community": 9, "norm_label": "test_version_unknown_when_version_file_missing()", "id": "tests_test_http_api_test_version_unknown_when_version_file_missing" }, { "label": "test_version_bare_semver_when_env_vars_are_unknown_literal()", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L112", "community": 9, "norm_label": "test_version_bare_semver_when_env_vars_are_unknown_literal()", "id": "tests_test_http_api_test_version_bare_semver_when_env_vars_are_unknown_literal" }, { "label": "test_health_no_bot()", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L137", "community": 9, "norm_label": "test_health_no_bot()", "id": "tests_test_http_api_test_health_no_bot" }, { "label": "test_health_with_bot_connected()", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L148", "community": 9, "norm_label": "test_health_with_bot_connected()", "id": "tests_test_http_api_test_health_with_bot_connected" }, { "label": "test_notify_success()", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L163", "community": 9, "norm_label": "test_notify_success()", "id": "tests_test_http_api_test_notify_success" }, { "label": "test_notify_bot_not_ready_returns_503()", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L179", "community": 9, "norm_label": "test_notify_bot_not_ready_returns_503()", "id": "tests_test_http_api_test_notify_bot_not_ready_returns_503" }, { "label": "test_notify_member_not_found_returns_404()", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L191", "community": 9, "norm_label": "test_notify_member_not_found_returns_404()", "id": "tests_test_http_api_test_notify_member_not_found_returns_404" }, { "label": "test_post_message_success()", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L212", "community": 9, "norm_label": "test_post_message_success()", "id": "tests_test_http_api_test_post_message_success" }, { "label": "test_post_message_bot_not_ready_returns_503()", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L228", "community": 9, "norm_label": "test_post_message_bot_not_ready_returns_503()", "id": "tests_test_http_api_test_post_message_bot_not_ready_returns_503" }, { "label": "test_post_image_success()", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L245", "community": 9, "norm_label": "test_post_image_success()", "id": "tests_test_http_api_test_post_image_success" }, { "label": "test_post_image_bot_not_ready_returns_503()", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L264", "community": 9, "norm_label": "test_post_image_bot_not_ready_returns_503()", "id": "tests_test_http_api_test_post_image_bot_not_ready_returns_503" }, { "label": "test_get_members_returns_list()", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L281", "community": 9, "norm_label": "test_get_members_returns_list()", "id": "tests_test_http_api_test_get_members_returns_list" }, { "label": "test_get_members_bot_not_ready_returns_503()", "file_type": "code", "source_file": "bot/tests/test_http_api.py", "source_location": "L299", "community": 9, "norm_label": "test_get_members_bot_not_ready_returns_503()", "id": "tests_test_http_api_test_get_members_bot_not_ready_returns_503" }, { "label": "Tests for the bot HTTP API endpoints.", "file_type": "rationale", "source_file": "bot/tests/test_http_api.py", "source_location": "L1", "community": 9, "norm_label": "tests for the bot http api endpoints.", "id": "tests_test_http_api_rationale_1" }, { "label": "Override the bot_api_key setting for all tests.", "file_type": "rationale", "source_file": "bot/tests/test_http_api.py", "source_location": "L19", "community": 9, "norm_label": "override the bot_api_key setting for all tests.", "id": "tests_test_http_api_rationale_19" }, { "label": "GET /version responds 200 with a 'version' key.", "file_type": "rationale", "source_file": "bot/tests/test_http_api.py", "source_location": "L45", "community": 9, "norm_label": "get /version responds 200 with a 'version' key.", "id": "tests_test_http_api_rationale_45" }, { "label": "When BUILD_NUMBER / GIT_SHA are absent the version is the bare semver.", "file_type": "rationale", "source_file": "bot/tests/test_http_api.py", "source_location": "L55", "community": 9, "norm_label": "when build_number / git_sha are absent the version is the bare semver.", "id": "tests_test_http_api_rationale_55" }, { "label": "When BUILD_NUMBER and GIT_SHA are set, version is 'semver+build.sha7'.", "file_type": "rationale", "source_file": "bot/tests/test_http_api.py", "source_location": "L75", "community": 9, "norm_label": "when build_number and git_sha are set, version is 'semver+build.sha7'.", "id": "tests_test_http_api_rationale_75" }, { "label": "When the VERSION file is absent, semver falls back to 'unknown'.", "file_type": "rationale", "source_file": "bot/tests/test_http_api.py", "source_location": "L95", "community": 9, "norm_label": "when the version file is absent, semver falls back to 'unknown'.", "id": "tests_test_http_api_rationale_95" }, { "label": "Env vars explicitly set to 'unknown' should yield bare semver (no suffix).", "file_type": "rationale", "source_file": "bot/tests/test_http_api.py", "source_location": "L113", "community": 9, "norm_label": "env vars explicitly set to 'unknown' should yield bare semver (no suffix).", "id": "tests_test_http_api_rationale_113" }, { "label": "test_telemetry.py", "file_type": "code", "source_file": "bot/tests/test_telemetry.py", "source_location": "L1", "community": 18, "norm_label": "test_telemetry.py", "id": "bot_tests_test_telemetry_py" }, { "label": "When APPLICATIONINSIGHTS_CONNECTION_STRING is set, configure_azure_monitor() is", "file_type": "rationale", "source_file": "bot/tests/test_telemetry.py", "source_location": "L91", "community": 18, "norm_label": "when applicationinsights_connection_string is set, configure_azure_monitor() is", "id": "tests_test_telemetry_rationale_91" }, { "label": "eslint.config.js", "file_type": "code", "source_file": "frontend/eslint.config.js", "source_location": "L1", "community": 127, "norm_label": "eslint.config.js", "id": "frontend_eslint_config_js" }, { "label": "playwright.config.ts", "file_type": "code", "source_file": "frontend/playwright.config.ts", "source_location": "L1", "community": 128, "norm_label": "playwright.config.ts", "id": "frontend_playwright_config_ts" }, { "label": "postcss.config.js", "file_type": "code", "source_file": "frontend/postcss.config.js", "source_location": "L1", "community": 129, "norm_label": "postcss.config.js", "id": "frontend_postcss_config_js" }, { "label": "tailwind.config.ts", "file_type": "code", "source_file": "frontend/tailwind.config.ts", "source_location": "L1", "community": 22, "norm_label": "tailwind.config.ts", "id": "frontend_tailwind_config_ts" }, { "label": "vite.config.ts", "file_type": "code", "source_file": "frontend/vite.config.ts", "source_location": "L1", "community": 75, "norm_label": "vite.config.ts", "id": "frontend_vite_config_ts" }, { "label": "vitest.config.ts", "file_type": "code", "source_file": "frontend/vitest.config.ts", "source_location": "L1", "community": 75, "norm_label": "vitest.config.ts", "id": "frontend_vitest_config_ts" }, { "label": "board.spec.ts", "file_type": "code", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L1", "community": 35, "norm_label": "board.spec.ts", "id": "frontend_e2e_board_spec_ts" }, { "label": "apiCreateSiege()", "file_type": "code", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L13", "community": 35, "norm_label": "apicreatesiege()", "id": "e2e_board_spec_apicreatesiege" }, { "label": "apiAddBuilding()", "file_type": "code", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L27", "community": 35, "norm_label": "apiaddbuilding()", "id": "e2e_board_spec_apiaddbuilding" }, { "label": "apiCreateMember()", "file_type": "code", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L52", "community": 35, "norm_label": "apicreatemember()", "id": "e2e_board_spec_apicreatemember" }, { "label": "buildingsTab", "file_type": "code", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L127", "community": 35, "norm_label": "buildingstab", "id": "e2e_board_spec_buildingstab" }, { "label": "postsTab", "file_type": "code", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L128", "community": 38, "norm_label": "poststab", "id": "e2e_board_spec_poststab" }, { "label": "search", "file_type": "code", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L179", "community": 35, "norm_label": "search", "id": "e2e_board_spec_search" }, { "label": "roleSelect", "file_type": "code", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L198", "community": 35, "norm_label": "roleselect", "id": "e2e_board_spec_roleselect" }, { "label": "firstPositionSpan", "file_type": "code", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L238", "community": 35, "norm_label": "firstpositionspan", "id": "e2e_board_spec_firstpositionspan" }, { "label": "positionCell", "file_type": "code", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L239", "community": 35, "norm_label": "positioncell", "id": "e2e_board_spec_positioncell" }, { "label": "chevron", "file_type": "code", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L244", "community": 35, "norm_label": "chevron", "id": "e2e_board_spec_chevron" }, { "label": "autofillBtn", "file_type": "code", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L367", "community": 35, "norm_label": "autofillbtn", "id": "e2e_board_spec_autofillbtn" }, { "label": "members.spec.ts", "file_type": "code", "source_file": "frontend/e2e/members.spec.ts", "source_location": "L1", "community": 70, "norm_label": "members.spec.ts", "id": "frontend_e2e_members_spec_ts" }, { "label": "ensureMemberSlotsAvailable()", "file_type": "code", "source_file": "frontend/e2e/members.spec.ts", "source_location": "L20", "community": 70, "norm_label": "ensurememberslotsavailable()", "id": "e2e_members_spec_ensurememberslotsavailable" }, { "label": "activeCheckbox", "file_type": "code", "source_file": "frontend/e2e/members.spec.ts", "source_location": "L125", "community": 70, "norm_label": "activecheckbox", "id": "e2e_members_spec_activecheckbox" }, { "label": "editLinks", "file_type": "code", "source_file": "frontend/e2e/members.spec.ts", "source_location": "L131", "community": 70, "norm_label": "editlinks", "id": "e2e_members_spec_editlinks" }, { "label": "siege-lifecycle.spec.ts", "file_type": "code", "source_file": "frontend/e2e/siege-lifecycle.spec.ts", "source_location": "L1", "community": 35, "norm_label": "siege-lifecycle.spec.ts", "id": "frontend_e2e_siege_lifecycle_spec_ts" }, { "label": "dateInput", "file_type": "code", "source_file": "frontend/e2e/siege-lifecycle.spec.ts", "source_location": "L121", "community": 35, "norm_label": "dateinput", "id": "e2e_siege_lifecycle_spec_dateinput" }, { "label": "url", "file_type": "code", "source_file": "frontend/e2e/siege-lifecycle.spec.ts", "source_location": "L153", "community": 35, "norm_label": "url", "id": "e2e_siege_lifecycle_spec_url" }, { "label": "tabStrip", "file_type": "code", "source_file": "frontend/e2e/siege-lifecycle.spec.ts", "source_location": "L181", "community": 35, "norm_label": "tabstrip", "id": "e2e_siege_lifecycle_spec_tabstrip" }, { "label": "boardLink", "file_type": "code", "source_file": "frontend/e2e/siege-lifecycle.spec.ts", "source_location": "L203", "community": 35, "norm_label": "boardlink", "id": "e2e_siege_lifecycle_spec_boardlink" }, { "label": "activeBadge", "file_type": "code", "source_file": "frontend/e2e/siege-lifecycle.spec.ts", "source_location": "L382", "community": 35, "norm_label": "activebadge", "id": "e2e_siege_lifecycle_spec_activebadge" }, { "label": "errorBadge", "file_type": "code", "source_file": "frontend/e2e/siege-lifecycle.spec.ts", "source_location": "L383", "community": 35, "norm_label": "errorbadge", "id": "e2e_siege_lifecycle_spec_errorbadge" }, { "label": "smoke.spec.ts", "file_type": "code", "source_file": "frontend/e2e/smoke.spec.ts", "source_location": "L1", "community": 130, "norm_label": "smoke.spec.ts", "id": "frontend_e2e_smoke_spec_ts" }, { "label": "App.tsx", "file_type": "code", "source_file": "frontend/src/App.tsx", "source_location": "L1", "community": 22, "norm_label": "app.tsx", "id": "frontend_src_app_tsx" }, { "label": "App()", "file_type": "code", "source_file": "frontend/src/App.tsx", "source_location": "L19", "community": 22, "norm_label": "app()", "id": "src_app_app" }, { "label": "main.tsx", "file_type": "code", "source_file": "frontend/src/main.tsx", "source_location": "L1", "community": 22, "norm_label": "main.tsx", "id": "frontend_src_main_tsx" }, { "label": "queryClient", "file_type": "code", "source_file": "frontend/src/main.tsx", "source_location": "L9", "community": 22, "norm_label": "queryclient", "id": "src_main_queryclient" }, { "label": "vite-env.d.ts", "file_type": "code", "source_file": "frontend/src/vite-env.d.ts", "source_location": "L1", "community": 131, "norm_label": "vite-env.d.ts", "id": "frontend_src_vite_env_d_ts" }, { "label": "board.ts", "file_type": "code", "source_file": "frontend/src/api/board.ts", "source_location": "L1", "community": 8, "norm_label": "board.ts", "id": "frontend_src_api_board_ts" }, { "label": "getBoard()", "file_type": "code", "source_file": "frontend/src/api/board.ts", "source_location": "L4", "community": 8, "norm_label": "getboard()", "id": "api_board_getboard" }, { "label": "changelog.ts", "file_type": "code", "source_file": "frontend/src/api/changelog.ts", "source_location": "L1", "community": 41, "norm_label": "changelog.ts", "id": "frontend_src_api_changelog_ts" }, { "label": "ChangelogStatus", "file_type": "code", "source_file": "frontend/src/api/changelog.ts", "source_location": "L3", "community": 41, "norm_label": "changelogstatus", "id": "api_changelog_changelogstatus" }, { "label": "fetchChangelogStatus()", "file_type": "code", "source_file": "frontend/src/api/changelog.ts", "source_location": "L7", "community": 41, "norm_label": "fetchchangelogstatus()", "id": "api_changelog_fetchchangelogstatus" }, { "label": "markChangelogSeen()", "file_type": "code", "source_file": "frontend/src/api/changelog.ts", "source_location": "L12", "community": 49, "norm_label": "markchangelogseen()", "id": "api_changelog_markchangelogseen" }, { "label": "client.ts", "file_type": "code", "source_file": "frontend/src/api/client.ts", "source_location": "L1", "community": 22, "norm_label": "client.ts", "id": "frontend_src_api_client_ts" }, { "label": "apiClient", "file_type": "code", "source_file": "frontend/src/api/client.ts", "source_location": "L3", "community": 22, "norm_label": "apiclient", "id": "api_client_apiclient" }, { "label": "config.ts", "file_type": "code", "source_file": "frontend/src/api/config.ts", "source_location": "L1", "community": 22, "norm_label": "config.ts", "id": "frontend_src_api_config_ts" }, { "label": "AppConfig", "file_type": "code", "source_file": "frontend/src/api/config.ts", "source_location": "L3", "community": 22, "norm_label": "appconfig", "id": "api_config_appconfig" }, { "label": "fetchConfig()", "file_type": "code", "source_file": "frontend/src/api/config.ts", "source_location": "L7", "community": 22, "norm_label": "fetchconfig()", "id": "api_config_fetchconfig" }, { "label": "members.ts", "file_type": "code", "source_file": "frontend/src/api/members.ts", "source_location": "L1", "community": 15, "norm_label": "members.ts", "id": "frontend_src_api_members_ts" }, { "label": "getMember()", "file_type": "code", "source_file": "frontend/src/api/members.ts", "source_location": "L17", "community": 15, "norm_label": "getmember()", "id": "api_members_getmember" }, { "label": "createMember()", "file_type": "code", "source_file": "frontend/src/api/members.ts", "source_location": "L22", "community": 15, "norm_label": "createmember()", "id": "api_members_createmember" }, { "label": "updateMember()", "file_type": "code", "source_file": "frontend/src/api/members.ts", "source_location": "L32", "community": 15, "norm_label": "updatemember()", "id": "api_members_updatemember" }, { "label": "deleteMember()", "file_type": "code", "source_file": "frontend/src/api/members.ts", "source_location": "L46", "community": 15, "norm_label": "deletemember()", "id": "api_members_deletemember" }, { "label": "getMemberPreferences()", "file_type": "code", "source_file": "frontend/src/api/members.ts", "source_location": "L50", "community": 57, "norm_label": "getmemberpreferences()", "id": "api_members_getmemberpreferences" }, { "label": "updateMemberPreferences()", "file_type": "code", "source_file": "frontend/src/api/members.ts", "source_location": "L59", "community": 15, "norm_label": "updatememberpreferences()", "id": "api_members_updatememberpreferences" }, { "label": "getPostConditions()", "file_type": "code", "source_file": "frontend/src/api/members.ts", "source_location": "L72", "community": 15, "norm_label": "getpostconditions()", "id": "api_members_getpostconditions" }, { "label": "getMemberRoles()", "file_type": "code", "source_file": "frontend/src/api/members.ts", "source_location": "L77", "community": 15, "norm_label": "getmemberroles()", "id": "api_members_getmemberroles" }, { "label": "previewDiscordSync()", "file_type": "code", "source_file": "frontend/src/api/members.ts", "source_location": "L82", "community": 13, "norm_label": "previewdiscordsync()", "id": "api_members_previewdiscordsync" }, { "label": "applyDiscordSync()", "file_type": "code", "source_file": "frontend/src/api/members.ts", "source_location": "L89", "community": 13, "norm_label": "applydiscordsync()", "id": "api_members_applydiscordsync" }, { "label": "notifySiegeMembers()", "file_type": "code", "source_file": "frontend/src/api/notifications.ts", "source_location": "L8", "community": 34, "norm_label": "notifysiegemembers()", "id": "api_notifications_notifysiegemembers" }, { "label": "getNotificationBatch()", "file_type": "code", "source_file": "frontend/src/api/notifications.ts", "source_location": "L17", "community": 34, "norm_label": "getnotificationbatch()", "id": "api_notifications_getnotificationbatch" }, { "label": "postToChannel()", "file_type": "code", "source_file": "frontend/src/api/notifications.ts", "source_location": "L27", "community": 34, "norm_label": "posttochannel()", "id": "api_notifications_posttochannel" }, { "label": "posts.ts", "file_type": "code", "source_file": "frontend/src/api/posts.ts", "source_location": "L1", "community": 38, "norm_label": "posts.ts", "id": "frontend_src_api_posts_ts" }, { "label": "PostPriorityConfig", "file_type": "code", "source_file": "frontend/src/api/posts.ts", "source_location": "L4", "community": 16, "norm_label": "postpriorityconfig", "id": "api_posts_postpriorityconfig" }, { "label": "getPostPriorities()", "file_type": "code", "source_file": "frontend/src/api/posts.ts", "source_location": "L11", "community": 38, "norm_label": "getpostpriorities()", "id": "api_posts_getpostpriorities" }, { "label": "updatePostPriority()", "file_type": "code", "source_file": "frontend/src/api/posts.ts", "source_location": "L16", "community": 38, "norm_label": "updatepostpriority()", "id": "api_posts_updatepostpriority" }, { "label": "getPosts()", "file_type": "code", "source_file": "frontend/src/api/posts.ts", "source_location": "L27", "community": 38, "norm_label": "getposts()", "id": "api_posts_getposts" }, { "label": "updatePost()", "file_type": "code", "source_file": "frontend/src/api/posts.ts", "source_location": "L32", "community": 39, "norm_label": "updatepost()", "id": "api_posts_updatepost" }, { "label": "setPostConditions()", "file_type": "code", "source_file": "frontend/src/api/posts.ts", "source_location": "L44", "community": 39, "norm_label": "setpostconditions()", "id": "api_posts_setpostconditions" }, { "label": "sieges.ts", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L1", "community": 3, "norm_label": "sieges.ts", "id": "frontend_src_api_sieges_ts" }, { "label": "getSieges()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L20", "community": 7, "norm_label": "getsieges()", "id": "api_sieges_getsieges" }, { "label": "getSiege()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L27", "community": 3, "norm_label": "getsiege()", "id": "api_sieges_getsiege" }, { "label": "createSiege()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L32", "community": 7, "norm_label": "createsiege()", "id": "api_sieges_createsiege" }, { "label": "updateSiege()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L37", "community": 42, "norm_label": "updatesiege()", "id": "api_sieges_updatesiege" }, { "label": "deleteSiege()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L45", "community": 3, "norm_label": "deletesiege()", "id": "api_sieges_deletesiege" }, { "label": "activateSiege()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L49", "community": 3, "norm_label": "activatesiege()", "id": "api_sieges_activatesiege" }, { "label": "completeSiege()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L54", "community": 3, "norm_label": "completesiege()", "id": "api_sieges_completesiege" }, { "label": "cloneSiege()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L59", "community": 3, "norm_label": "clonesiege()", "id": "api_sieges_clonesiege" }, { "label": "reopenSiege()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L64", "community": 3, "norm_label": "reopensiege()", "id": "api_sieges_reopensiege" }, { "label": "validateSiege()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L69", "community": 3, "norm_label": "validatesiege()", "id": "api_sieges_validatesiege" }, { "label": "getBuildings()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L76", "community": 45, "norm_label": "getbuildings()", "id": "api_sieges_getbuildings" }, { "label": "createBuilding()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L83", "community": 3, "norm_label": "createbuilding()", "id": "api_sieges_createbuilding" }, { "label": "updateBuilding()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L94", "community": 45, "norm_label": "updatebuilding()", "id": "api_sieges_updatebuilding" }, { "label": "deleteBuilding()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L106", "community": 45, "norm_label": "deletebuilding()", "id": "api_sieges_deletebuilding" }, { "label": "getSiegeMembers()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L120", "community": 3, "norm_label": "getsiegemembers()", "id": "api_sieges_getsiegemembers" }, { "label": "getSiegeMemberPreferences()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L127", "community": 38, "norm_label": "getsiegememberpreferences()", "id": "api_sieges_getsiegememberpreferences" }, { "label": "previewAutofill()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L165", "community": 42, "norm_label": "previewautofill()", "id": "api_sieges_previewautofill" }, { "label": "applyAutofill()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L174", "community": 24, "norm_label": "applyautofill()", "id": "api_sieges_applyautofill" }, { "label": "previewAttackDay()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L183", "community": 24, "norm_label": "previewattackday()", "id": "api_sieges_previewattackday" }, { "label": "applyAttackDay()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L192", "community": 3, "norm_label": "applyattackday()", "id": "api_sieges_applyattackday" }, { "label": "compareSieges()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L201", "community": 25, "norm_label": "comparesieges()", "id": "api_sieges_comparesieges" }, { "label": "compareSiegesSpecific()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L210", "community": 7, "norm_label": "comparesiegesspecific()", "id": "api_sieges_comparesiegesspecific" }, { "label": "previewPostSuggestions()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L220", "community": 24, "norm_label": "previewpostsuggestions()", "id": "api_sieges_previewpostsuggestions" }, { "label": "applyPostSuggestions()", "file_type": "code", "source_file": "frontend/src/api/sieges.ts", "source_location": "L229", "community": 24, "norm_label": "applypostsuggestions()", "id": "api_sieges_applypostsuggestions" }, { "label": "types.ts", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L1", "community": 8, "norm_label": "types.ts", "id": "frontend_src_api_types_ts" }, { "label": "MemberRole", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L2", "community": 52, "norm_label": "memberrole", "id": "api_types_memberrole" }, { "label": "SiegeStatus", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L3", "community": 16, "norm_label": "siegestatus", "id": "api_types_siegestatus" }, { "label": "BuildingType", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L4", "community": 8, "norm_label": "buildingtype", "id": "api_types_buildingtype" }, { "label": "Member", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L12", "community": 16, "norm_label": "member", "id": "api_types_member" }, { "label": "SyncMatch", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L23", "community": 52, "norm_label": "syncmatch", "id": "api_types_syncmatch" }, { "label": "SyncPreviewResponse", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L32", "community": 52, "norm_label": "syncpreviewresponse", "id": "api_types_syncpreviewresponse" }, { "label": "SyncApplyItem", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L38", "community": 15, "norm_label": "syncapplyitem", "id": "api_types_syncapplyitem" }, { "label": "PostCondition", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L44", "community": 16, "norm_label": "postcondition", "id": "api_types_postcondition" }, { "label": "Siege", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L51", "community": 16, "norm_label": "siege", "id": "api_types_siege" }, { "label": "Building", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L62", "community": 16, "norm_label": "building", "id": "api_types_building" }, { "label": "MemberPreferenceSummary", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L72", "community": 8, "norm_label": "memberpreferencesummary", "id": "api_types_memberpreferencesummary" }, { "label": "PositionResponse", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L79", "community": 8, "norm_label": "positionresponse", "id": "api_types_positionresponse" }, { "label": "BuildingGroupResponse", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L89", "community": 8, "norm_label": "buildinggroupresponse", "id": "api_types_buildinggroupresponse" }, { "label": "BuildingResponse", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L96", "community": 8, "norm_label": "buildingresponse", "id": "api_types_buildingresponse" }, { "label": "BoardResponse", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L105", "community": 34, "norm_label": "boardresponse", "id": "api_types_boardresponse" }, { "label": "SiegeMember", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L111", "community": 3, "norm_label": "siegemember", "id": "api_types_siegemember" }, { "label": "Post", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L129", "community": 16, "norm_label": "post", "id": "api_types_post" }, { "label": "ValidationIssue", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L140", "community": 3, "norm_label": "validationissue", "id": "api_types_validationissue" }, { "label": "ValidationResult", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L146", "community": 3, "norm_label": "validationresult", "id": "api_types_validationresult" }, { "label": "AutofillAssignment", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L152", "community": 8, "norm_label": "autofillassignment", "id": "api_types_autofillassignment" }, { "label": "AutofillPreviewResult", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L158", "community": 8, "norm_label": "autofillpreviewresult", "id": "api_types_autofillpreviewresult" }, { "label": "AutofillApplyResult", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L163", "community": 8, "norm_label": "autofillapplyresult", "id": "api_types_autofillapplyresult" }, { "label": "AttackDayAssignment", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L168", "community": 24, "norm_label": "attackdayassignment", "id": "api_types_attackdayassignment" }, { "label": "AttackDayPreviewResult", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L173", "community": 3, "norm_label": "attackdaypreviewresult", "id": "api_types_attackdaypreviewresult" }, { "label": "AttackDayApplyResult", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L178", "community": 24, "norm_label": "attackdayapplyresult", "id": "api_types_attackdayapplyresult" }, { "label": "PositionKey", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L183", "community": 8, "norm_label": "positionkey", "id": "api_types_positionkey" }, { "label": "MemberDiff", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L190", "community": 8, "norm_label": "memberdiff", "id": "api_types_memberdiff" }, { "label": "ComparisonResult", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L198", "community": 8, "norm_label": "comparisonresult", "id": "api_types_comparisonresult" }, { "label": "NotificationResultItem", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L205", "community": 34, "norm_label": "notificationresultitem", "id": "api_types_notificationresultitem" }, { "label": "NotificationBatchResponse", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L214", "community": 34, "norm_label": "notificationbatchresponse", "id": "api_types_notificationbatchresponse" }, { "label": "NotifyResponse", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L220", "community": 34, "norm_label": "notifyresponse", "id": "api_types_notifyresponse" }, { "label": "GenerateImagesResponse", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L227", "community": 34, "norm_label": "generateimagesresponse", "id": "api_types_generateimagesresponse" }, { "label": "VersionInfo", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L233", "community": 40, "norm_label": "versioninfo", "id": "api_types_versioninfo" }, { "label": "BuildingTypeInfo", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L241", "community": 8, "norm_label": "buildingtypeinfo", "id": "api_types_buildingtypeinfo" }, { "label": "MemberRoleInfo", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L249", "community": 15, "norm_label": "memberroleinfo", "id": "api_types_memberroleinfo" }, { "label": "PostSuggestionSkipReason", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L256", "community": 8, "norm_label": "postsuggestionskipreason", "id": "api_types_postsuggestionskipreason" }, { "label": "PostSuggestionEntry", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L262", "community": 8, "norm_label": "postsuggestionentry", "id": "api_types_postsuggestionentry" }, { "label": "PostSuggestionPreviewResult", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L279", "community": 36, "norm_label": "postsuggestionpreviewresult", "id": "api_types_postsuggestionpreviewresult" }, { "label": "PostSuggestionStaleReason", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L284", "community": 8, "norm_label": "postsuggestionstalereason", "id": "api_types_postsuggestionstalereason" }, { "label": "PostSuggestionStaleEntry", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L291", "community": 14, "norm_label": "postsuggestionstaleentry", "id": "api_types_postsuggestionstaleentry" }, { "label": "PostSuggestionApplyResult", "file_type": "code", "source_file": "frontend/src/api/types.ts", "source_location": "L298", "community": 8, "norm_label": "postsuggestionapplyresult", "id": "api_types_postsuggestionapplyresult" }, { "label": "getVersion()", "file_type": "code", "source_file": "frontend/src/api/version.ts", "source_location": "L5", "community": 40, "norm_label": "getversion()", "id": "api_version_getversion" }, { "label": "useVersion()", "file_type": "code", "source_file": "frontend/src/api/version.ts", "source_location": "L10", "community": 40, "norm_label": "useversion()", "id": "api_version_useversion" }, { "label": "CarouselSlide", "file_type": "code", "source_file": "frontend/src/components/Carousel.tsx", "source_location": "L10", "community": 1, "norm_label": "carouselslide", "id": "components_carousel_carouselslide" }, { "label": "CarouselProps", "file_type": "code", "source_file": "frontend/src/components/Carousel.tsx", "source_location": "L22", "community": 1, "norm_label": "carouselprops", "id": "components_carousel_carouselprops" }, { "label": "Carousel()", "file_type": "code", "source_file": "frontend/src/components/Carousel.tsx", "source_location": "L35", "community": 1, "norm_label": "carousel()", "id": "components_carousel_carousel" }, { "label": "ChangelogDropdown.tsx", "file_type": "code", "source_file": "frontend/src/components/ChangelogDropdown.tsx", "source_location": "L1", "community": 41, "norm_label": "changelogdropdown.tsx", "id": "frontend_src_components_changelogdropdown_tsx" }, { "label": "hasUnread()", "file_type": "code", "source_file": "frontend/src/components/ChangelogDropdown.tsx", "source_location": "L29", "community": 41, "norm_label": "hasunread()", "id": "components_changelogdropdown_hasunread" }, { "label": "DiscordSyncModal.tsx", "file_type": "code", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L1", "community": 7, "norm_label": "discordsyncmodal.tsx", "id": "frontend_src_components_discordsyncmodal_tsx" }, { "label": "ConfidenceVariant", "file_type": "code", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L31", "community": 7, "norm_label": "confidencevariant", "id": "components_discordsyncmodal_confidencevariant" }, { "label": "CONFIDENCE_LABEL", "file_type": "code", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L39", "community": 7, "norm_label": "confidence_label", "id": "components_discordsyncmodal_confidence_label" }, { "label": "Props", "file_type": "code", "source_file": "frontend/src/components/GroupByToggle.tsx", "source_location": "L11", "community": 15, "norm_label": "props", "id": "components_groupbytoggle_props" }, { "label": "GroupByToggle()", "file_type": "code", "source_file": "frontend/src/components/GroupByToggle.tsx", "source_location": "L31", "community": 15, "norm_label": "groupbytoggle()", "id": "components_groupbytoggle_groupbytoggle" }, { "label": "Layout.tsx", "file_type": "code", "source_file": "frontend/src/components/Layout.tsx", "source_location": "L1", "community": 22, "norm_label": "layout.tsx", "id": "frontend_src_components_layout_tsx" }, { "label": "navLinkClass()", "file_type": "code", "source_file": "frontend/src/components/Layout.tsx", "source_location": "L9", "community": 22, "norm_label": "navlinkclass()", "id": "components_layout_navlinkclass" }, { "label": "Layout()", "file_type": "code", "source_file": "frontend/src/components/Layout.tsx", "source_location": "L17", "community": 22, "norm_label": "layout()", "id": "components_layout_layout" }, { "label": "MemberWithMatches", "file_type": "code", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L57", "community": 38, "norm_label": "memberwithmatches", "id": "components_poststab_memberwithmatches" }, { "label": "DuplicateConditionMap", "file_type": "code", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L64", "community": 38, "norm_label": "duplicateconditionmap", "id": "components_poststab_duplicateconditionmap" }, { "label": "buildDuplicateConditionMap()", "file_type": "code", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L68", "community": 38, "norm_label": "buildduplicateconditionmap()", "id": "components_poststab_buildduplicateconditionmap" }, { "label": "findPostPosition()", "file_type": "code", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L85", "community": 15, "norm_label": "findpostposition()", "id": "components_poststab_findpostposition" }, { "label": "MemberAssignRow()", "file_type": "code", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L100", "community": 38, "norm_label": "memberassignrow()", "id": "components_poststab_memberassignrow" }, { "label": "PostSuggestionsModal.tsx", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L1", "community": 14, "norm_label": "postsuggestionsmodal.tsx", "id": "frontend_src_components_postsuggestionsmodal_tsx" }, { "label": "OutcomeFilter", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L30", "community": 14, "norm_label": "outcomefilter", "id": "components_postsuggestionsmodal_outcomefilter" }, { "label": "Classification", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L32", "community": 14, "norm_label": "classification", "id": "components_postsuggestionsmodal_classification" }, { "label": "PRIORITY_META", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L42", "community": 14, "norm_label": "priority_meta", "id": "components_postsuggestionsmodal_priority_meta" }, { "label": "getPriorityMeta()", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L64", "community": 14, "norm_label": "getprioritymeta()", "id": "components_postsuggestionsmodal_getprioritymeta" }, { "label": "SKIP_REASON_LABEL", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L70", "community": 14, "norm_label": "skip_reason_label", "id": "components_postsuggestionsmodal_skip_reason_label" }, { "label": "STALE_REASON_LABEL", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L82", "community": 14, "norm_label": "stale_reason_label", "id": "components_postsuggestionsmodal_stale_reason_label" }, { "label": "TileConfig", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L93", "community": 14, "norm_label": "tileconfig", "id": "components_postsuggestionsmodal_tileconfig" }, { "label": "classify()", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L159", "community": 14, "norm_label": "classify()", "id": "components_postsuggestionsmodal_classify" }, { "label": "Pill()", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L169", "community": 14, "norm_label": "pill()", "id": "components_postsuggestionsmodal_pill" }, { "label": "ChangeCell()", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L197", "community": 14, "norm_label": "changecell()", "id": "components_postsuggestionsmodal_changecell" }, { "label": "SkipIcon()", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L248", "community": 14, "norm_label": "skipicon()", "id": "components_postsuggestionsmodal_skipicon" }, { "label": "ConditionCell()", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L259", "community": 14, "norm_label": "conditioncell()", "id": "components_postsuggestionsmodal_conditioncell" }, { "label": "SummaryTile()", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L290", "community": 14, "norm_label": "summarytile()", "id": "components_postsuggestionsmodal_summarytile" }, { "label": "StateLoading()", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L345", "community": 14, "norm_label": "stateloading()", "id": "components_postsuggestionsmodal_stateloading" }, { "label": "StateEmpty()", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L355", "community": 14, "norm_label": "stateempty()", "id": "components_postsuggestionsmodal_stateempty" }, { "label": "StateStaleConflict()", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L379", "community": 14, "norm_label": "statestaleconflict()", "id": "components_postsuggestionsmodal_statestaleconflict" }, { "label": "ExpiryCountdown", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L476", "community": 14, "norm_label": "expirycountdown", "id": "components_postsuggestionsmodal_expirycountdown" }, { "label": "useExpiryCountdown()", "file_type": "code", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L486", "community": 14, "norm_label": "useexpirycountdown()", "id": "components_postsuggestionsmodal_useexpirycountdown" }, { "label": "RequireAuth.tsx", "file_type": "code", "source_file": "frontend/src/components/RequireAuth.tsx", "source_location": "L1", "community": 22, "norm_label": "requireauth.tsx", "id": "frontend_src_components_requireauth_tsx" }, { "label": "RequireAuth()", "file_type": "code", "source_file": "frontend/src/components/RequireAuth.tsx", "source_location": "L4", "community": 22, "norm_label": "requireauth()", "id": "components_requireauth_requireauth" }, { "label": "SiegeLayout.tsx", "file_type": "code", "source_file": "frontend/src/components/SiegeLayout.tsx", "source_location": "L1", "community": 22, "norm_label": "siegelayout.tsx", "id": "frontend_src_components_siegelayout_tsx" }, { "label": "SiegeLayout()", "file_type": "code", "source_file": "frontend/src/components/SiegeLayout.tsx", "source_location": "L13", "community": 22, "norm_label": "siegelayout()", "id": "components_siegelayout_siegelayout" }, { "label": "badge.tsx", "file_type": "code", "source_file": "frontend/src/components/ui/badge.tsx", "source_location": "L1", "community": 7, "norm_label": "badge.tsx", "id": "frontend_src_components_ui_badge_tsx" }, { "label": "badgeVariants", "file_type": "code", "source_file": "frontend/src/components/ui/badge.tsx", "source_location": "L5", "community": 7, "norm_label": "badgevariants", "id": "ui_badge_badgevariants" }, { "label": "BadgeProps", "file_type": "code", "source_file": "frontend/src/components/ui/badge.tsx", "source_location": "L29", "community": 7, "norm_label": "badgeprops", "id": "ui_badge_badgeprops" }, { "label": "Badge()", "file_type": "code", "source_file": "frontend/src/components/ui/badge.tsx", "source_location": "L34", "community": 7, "norm_label": "badge()", "id": "ui_badge_badge" }, { "label": "button.tsx", "file_type": "code", "source_file": "frontend/src/components/ui/button.tsx", "source_location": "L1", "community": 7, "norm_label": "button.tsx", "id": "frontend_src_components_ui_button_tsx" }, { "label": "buttonVariants", "file_type": "code", "source_file": "frontend/src/components/ui/button.tsx", "source_location": "L6", "community": 7, "norm_label": "buttonvariants", "id": "ui_button_buttonvariants" }, { "label": "ButtonProps", "file_type": "code", "source_file": "frontend/src/components/ui/button.tsx", "source_location": "L36", "community": 7, "norm_label": "buttonprops", "id": "ui_button_buttonprops" }, { "label": "Button", "file_type": "code", "source_file": "frontend/src/components/ui/button.tsx", "source_location": "L43", "community": 7, "norm_label": "button", "id": "ui_button_button" }, { "label": "Checkbox", "file_type": "code", "source_file": "frontend/src/components/ui/checkbox.tsx", "source_location": "L6", "community": 15, "norm_label": "checkbox", "id": "ui_checkbox_checkbox" }, { "label": "dialog.tsx", "file_type": "code", "source_file": "frontend/src/components/ui/dialog.tsx", "source_location": "L1", "community": 3, "norm_label": "dialog.tsx", "id": "frontend_src_components_ui_dialog_tsx" }, { "label": "DialogOverlay", "file_type": "code", "source_file": "frontend/src/components/ui/dialog.tsx", "source_location": "L11", "community": 3, "norm_label": "dialogoverlay", "id": "ui_dialog_dialogoverlay" }, { "label": "DialogContent", "file_type": "code", "source_file": "frontend/src/components/ui/dialog.tsx", "source_location": "L26", "community": 3, "norm_label": "dialogcontent", "id": "ui_dialog_dialogcontent" }, { "label": "DialogHeader()", "file_type": "code", "source_file": "frontend/src/components/ui/dialog.tsx", "source_location": "L50", "community": 3, "norm_label": "dialogheader()", "id": "ui_dialog_dialogheader" }, { "label": "DialogFooter()", "file_type": "code", "source_file": "frontend/src/components/ui/dialog.tsx", "source_location": "L66", "community": 14, "norm_label": "dialogfooter()", "id": "ui_dialog_dialogfooter" }, { "label": "DialogTitle", "file_type": "code", "source_file": "frontend/src/components/ui/dialog.tsx", "source_location": "L82", "community": 3, "norm_label": "dialogtitle", "id": "ui_dialog_dialogtitle" }, { "label": "DialogDescription", "file_type": "code", "source_file": "frontend/src/components/ui/dialog.tsx", "source_location": "L97", "community": 3, "norm_label": "dialogdescription", "id": "ui_dialog_dialogdescription" }, { "label": "dropdown-menu.tsx", "file_type": "code", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L1", "community": 41, "norm_label": "dropdown-menu.tsx", "id": "frontend_src_components_ui_dropdown_menu_tsx" }, { "label": "DropdownMenuSubTrigger", "file_type": "code", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L20", "community": 41, "norm_label": "dropdownmenusubtrigger", "id": "ui_dropdown_menu_dropdownmenusubtrigger" }, { "label": "DropdownMenuSubContent", "file_type": "code", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L42", "community": 41, "norm_label": "dropdownmenusubcontent", "id": "ui_dropdown_menu_dropdownmenusubcontent" }, { "label": "DropdownMenuContent", "file_type": "code", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L58", "community": 41, "norm_label": "dropdownmenucontent", "id": "ui_dropdown_menu_dropdownmenucontent" }, { "label": "DropdownMenuItem", "file_type": "code", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L76", "community": 41, "norm_label": "dropdownmenuitem", "id": "ui_dropdown_menu_dropdownmenuitem" }, { "label": "DropdownMenuCheckboxItem", "file_type": "code", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L94", "community": 41, "norm_label": "dropdownmenucheckboxitem", "id": "ui_dropdown_menu_dropdownmenucheckboxitem" }, { "label": "DropdownMenuRadioItem", "file_type": "code", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L118", "community": 41, "norm_label": "dropdownmenuradioitem", "id": "ui_dropdown_menu_dropdownmenuradioitem" }, { "label": "DropdownMenuLabel", "file_type": "code", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L140", "community": 41, "norm_label": "dropdownmenulabel", "id": "ui_dropdown_menu_dropdownmenulabel" }, { "label": "DropdownMenuSeparator", "file_type": "code", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L158", "community": 41, "norm_label": "dropdownmenuseparator", "id": "ui_dropdown_menu_dropdownmenuseparator" }, { "label": "DropdownMenuShortcut()", "file_type": "code", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L170", "community": 41, "norm_label": "dropdownmenushortcut()", "id": "ui_dropdown_menu_dropdownmenushortcut" }, { "label": "input.tsx", "file_type": "code", "source_file": "frontend/src/components/ui/input.tsx", "source_location": "L1", "community": 15, "norm_label": "input.tsx", "id": "frontend_src_components_ui_input_tsx" }, { "label": "InputProps", "file_type": "code", "source_file": "frontend/src/components/ui/input.tsx", "source_location": "L4", "community": 15, "norm_label": "inputprops", "id": "ui_input_inputprops" }, { "label": "Input", "file_type": "code", "source_file": "frontend/src/components/ui/input.tsx", "source_location": "L6", "community": 15, "norm_label": "input", "id": "ui_input_input" }, { "label": "label.tsx", "file_type": "code", "source_file": "frontend/src/components/ui/label.tsx", "source_location": "L1", "community": 7, "norm_label": "label.tsx", "id": "frontend_src_components_ui_label_tsx" }, { "label": "Label", "file_type": "code", "source_file": "frontend/src/components/ui/label.tsx", "source_location": "L5", "community": 7, "norm_label": "label", "id": "ui_label_label" }, { "label": "select.tsx", "file_type": "code", "source_file": "frontend/src/components/ui/select.tsx", "source_location": "L1", "community": 7, "norm_label": "select.tsx", "id": "frontend_src_components_ui_select_tsx" }, { "label": "SelectTrigger", "file_type": "code", "source_file": "frontend/src/components/ui/select.tsx", "source_location": "L10", "community": 7, "norm_label": "selecttrigger", "id": "ui_select_selecttrigger" }, { "label": "SelectScrollUpButton", "file_type": "code", "source_file": "frontend/src/components/ui/select.tsx", "source_location": "L30", "community": 7, "norm_label": "selectscrollupbutton", "id": "ui_select_selectscrollupbutton" }, { "label": "SelectScrollDownButton", "file_type": "code", "source_file": "frontend/src/components/ui/select.tsx", "source_location": "L47", "community": 7, "norm_label": "selectscrolldownbutton", "id": "ui_select_selectscrolldownbutton" }, { "label": "SelectContent", "file_type": "code", "source_file": "frontend/src/components/ui/select.tsx", "source_location": "L65", "community": 7, "norm_label": "selectcontent", "id": "ui_select_selectcontent" }, { "label": "SelectLabel", "file_type": "code", "source_file": "frontend/src/components/ui/select.tsx", "source_location": "L97", "community": 7, "norm_label": "selectlabel", "id": "ui_select_selectlabel" }, { "label": "SelectItem", "file_type": "code", "source_file": "frontend/src/components/ui/select.tsx", "source_location": "L109", "community": 7, "norm_label": "selectitem", "id": "ui_select_selectitem" }, { "label": "SelectSeparator", "file_type": "code", "source_file": "frontend/src/components/ui/select.tsx", "source_location": "L131", "community": 7, "norm_label": "selectseparator", "id": "ui_select_selectseparator" }, { "label": "table.tsx", "file_type": "code", "source_file": "frontend/src/components/ui/table.tsx", "source_location": "L1", "community": 7, "norm_label": "table.tsx", "id": "frontend_src_components_ui_table_tsx" }, { "label": "Table", "file_type": "code", "source_file": "frontend/src/components/ui/table.tsx", "source_location": "L4", "community": 7, "norm_label": "table", "id": "ui_table_table" }, { "label": "TableBody", "file_type": "code", "source_file": "frontend/src/components/ui/table.tsx", "source_location": "L26", "community": 7, "norm_label": "tablebody", "id": "ui_table_tablebody" }, { "label": "TableFooter", "file_type": "code", "source_file": "frontend/src/components/ui/table.tsx", "source_location": "L38", "community": 7, "norm_label": "tablefooter", "id": "ui_table_tablefooter" }, { "label": "TableRow", "file_type": "code", "source_file": "frontend/src/components/ui/table.tsx", "source_location": "L53", "community": 7, "norm_label": "tablerow", "id": "ui_table_tablerow" }, { "label": "TableHead", "file_type": "code", "source_file": "frontend/src/components/ui/table.tsx", "source_location": "L68", "community": 7, "norm_label": "tablehead", "id": "ui_table_tablehead" }, { "label": "TableCell", "file_type": "code", "source_file": "frontend/src/components/ui/table.tsx", "source_location": "L83", "community": 7, "norm_label": "tablecell", "id": "ui_table_tablecell" }, { "label": "TableCaption", "file_type": "code", "source_file": "frontend/src/components/ui/table.tsx", "source_location": "L98", "community": 7, "norm_label": "tablecaption", "id": "ui_table_tablecaption" }, { "label": "textarea.tsx", "file_type": "code", "source_file": "frontend/src/components/ui/textarea.tsx", "source_location": "L1", "community": 14, "norm_label": "textarea.tsx", "id": "frontend_src_components_ui_textarea_tsx" }, { "label": "TextareaProps", "file_type": "code", "source_file": "frontend/src/components/ui/textarea.tsx", "source_location": "L4", "community": 14, "norm_label": "textareaprops", "id": "ui_textarea_textareaprops" }, { "label": "Textarea", "file_type": "code", "source_file": "frontend/src/components/ui/textarea.tsx", "source_location": "L6", "community": 14, "norm_label": "textarea", "id": "ui_textarea_textarea" }, { "label": "AuthContext.tsx", "file_type": "code", "source_file": "frontend/src/context/AuthContext.tsx", "source_location": "L1", "community": 22, "norm_label": "authcontext.tsx", "id": "frontend_src_context_authcontext_tsx" }, { "label": "AuthUser", "file_type": "code", "source_file": "frontend/src/context/AuthContext.tsx", "source_location": "L11", "community": 22, "norm_label": "authuser", "id": "context_authcontext_authuser" }, { "label": "AuthContextValue", "file_type": "code", "source_file": "frontend/src/context/AuthContext.tsx", "source_location": "L18", "community": 22, "norm_label": "authcontextvalue", "id": "context_authcontext_authcontextvalue" }, { "label": "AuthContext", "file_type": "code", "source_file": "frontend/src/context/AuthContext.tsx", "source_location": "L25", "community": 22, "norm_label": "authcontext", "id": "context_authcontext_authcontext" }, { "label": "AuthProvider()", "file_type": "code", "source_file": "frontend/src/context/AuthContext.tsx", "source_location": "L27", "community": 22, "norm_label": "authprovider()", "id": "context_authcontext_authprovider" }, { "label": "useAuth()", "file_type": "code", "source_file": "frontend/src/context/AuthContext.tsx", "source_location": "L63", "community": 22, "norm_label": "useauth()", "id": "context_authcontext_useauth" }, { "label": "buildingColors.ts", "file_type": "code", "source_file": "frontend/src/lib/buildingColors.ts", "source_location": "L1", "community": 3, "norm_label": "buildingcolors.ts", "id": "frontend_src_lib_buildingcolors_ts" }, { "label": "BuildingColorClass", "file_type": "code", "source_file": "frontend/src/lib/buildingColors.ts", "source_location": "L3", "community": 3, "norm_label": "buildingcolorclass", "id": "lib_buildingcolors_buildingcolorclass" }, { "label": "BUILDING_LABELS", "file_type": "code", "source_file": "frontend/src/lib/buildingColors.ts", "source_location": "L49", "community": 3, "norm_label": "building_labels", "id": "lib_buildingcolors_building_labels" }, { "label": "groupPostConditions.ts", "file_type": "code", "source_file": "frontend/src/lib/groupPostConditions.ts", "source_location": "L1", "community": 15, "norm_label": "grouppostconditions.ts", "id": "frontend_src_lib_grouppostconditions_ts" }, { "label": "GroupByMode", "file_type": "code", "source_file": "frontend/src/lib/groupPostConditions.ts", "source_location": "L17", "community": 15, "norm_label": "groupbymode", "id": "lib_grouppostconditions_groupbymode" }, { "label": "ConditionGroup", "file_type": "code", "source_file": "frontend/src/lib/groupPostConditions.ts", "source_location": "L20", "community": 15, "norm_label": "conditiongroup", "id": "lib_grouppostconditions_conditiongroup" }, { "label": "groupByLevel()", "file_type": "code", "source_file": "frontend/src/lib/groupPostConditions.ts", "source_location": "L53", "community": 15, "norm_label": "groupbylevel()", "id": "lib_grouppostconditions_groupbylevel" }, { "label": "groupByType()", "file_type": "code", "source_file": "frontend/src/lib/groupPostConditions.ts", "source_location": "L74", "community": 15, "norm_label": "groupbytype()", "id": "lib_grouppostconditions_groupbytype" }, { "label": "post-priority.ts", "file_type": "code", "source_file": "frontend/src/lib/post-priority.ts", "source_location": "L1", "community": 38, "norm_label": "post-priority.ts", "id": "frontend_src_lib_post_priority_ts" }, { "label": "priorityLabel()", "file_type": "code", "source_file": "frontend/src/lib/post-priority.ts", "source_location": "L23", "community": 38, "norm_label": "prioritylabel()", "id": "lib_post_priority_prioritylabel" }, { "label": "priorityBadgeColor()", "file_type": "code", "source_file": "frontend/src/lib/post-priority.ts", "source_location": "L27", "community": 38, "norm_label": "prioritybadgecolor()", "id": "lib_post_priority_prioritybadgecolor" }, { "label": "useGroupByPreference.ts", "file_type": "code", "source_file": "frontend/src/lib/useGroupByPreference.ts", "source_location": "L1", "community": 15, "norm_label": "usegroupbypreference.ts", "id": "frontend_src_lib_usegroupbypreference_ts" }, { "label": "VALID_MODES", "file_type": "code", "source_file": "frontend/src/lib/useGroupByPreference.ts", "source_location": "L14", "community": 15, "norm_label": "valid_modes", "id": "lib_usegroupbypreference_valid_modes" }, { "label": "utils.ts", "file_type": "code", "source_file": "frontend/src/lib/utils.ts", "source_location": "L1", "community": 1, "norm_label": "utils.ts", "id": "frontend_src_lib_utils_ts" }, { "label": "cn()", "file_type": "code", "source_file": "frontend/src/lib/utils.ts", "source_location": "L4", "community": 14, "norm_label": "cn()", "id": "lib_utils_cn" }, { "label": "ROLE_LABELS", "file_type": "code", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L58", "community": 38, "norm_label": "role_labels", "id": "pages_boardpage_role_labels" }, { "label": "ROLE_PRIORITY", "file_type": "code", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L65", "community": 38, "norm_label": "role_priority", "id": "pages_boardpage_role_priority" }, { "label": "ROLE_COLORS", "file_type": "code", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L72", "community": 3, "norm_label": "role_colors", "id": "pages_boardpage_role_colors" }, { "label": "ROLE_BADGE_COLORS", "file_type": "code", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L79", "community": 38, "norm_label": "role_badge_colors", "id": "pages_boardpage_role_badge_colors" }, { "label": "ROLE_CHIP_COLORS", "file_type": "code", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L87", "community": 3, "norm_label": "role_chip_colors", "id": "pages_boardpage_role_chip_colors" }, { "label": "POWER_LABELS", "file_type": "code", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L94", "community": 38, "norm_label": "power_labels", "id": "pages_boardpage_power_labels" }, { "label": "BUILDING_TYPE_ORDER", "file_type": "code", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L103", "community": 3, "norm_label": "building_type_order", "id": "pages_boardpage_building_type_order" }, { "label": "DraggableMemberRow()", "file_type": "code", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L254", "community": 3, "norm_label": "draggablememberrow()", "id": "pages_boardpage_draggablememberrow" }, { "label": "MemberDragOverlay()", "file_type": "code", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L322", "community": 3, "norm_label": "memberdragoverlay()", "id": "pages_boardpage_memberdragoverlay" }, { "label": "RoleFilter", "file_type": "code", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L347", "community": 3, "norm_label": "rolefilter", "id": "pages_boardpage_rolefilter" }, { "label": "ROLE_FILTER_OPTIONS", "file_type": "code", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L349", "community": 3, "norm_label": "role_filter_options", "id": "pages_boardpage_role_filter_options" }, { "label": "MemberBucket()", "file_type": "code", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L357", "community": 3, "norm_label": "memberbucket()", "id": "pages_boardpage_memberbucket" }, { "label": "BuildingTableRow()", "file_type": "code", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L457", "community": 3, "norm_label": "buildingtablerow()", "id": "pages_boardpage_buildingtablerow" }, { "label": "BuildingTypeSection()", "file_type": "code", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L553", "community": 3, "norm_label": "buildingtypesection()", "id": "pages_boardpage_buildingtypesection" }, { "label": "ConditionalDndContext()", "file_type": "code", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L679", "community": 3, "norm_label": "conditionaldndcontext()", "id": "pages_boardpage_conditionaldndcontext" }, { "label": "ActiveTab", "file_type": "code", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L711", "community": 3, "norm_label": "activetab", "id": "pages_boardpage_activetab" }, { "label": "BoardPage()", "file_type": "code", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L713", "community": 3, "norm_label": "boardpage()", "id": "pages_boardpage_boardpage" }, { "label": "formatPosition()", "file_type": "code", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L17", "community": 7, "norm_label": "formatposition()", "id": "pages_comparisonpage_formatposition" }, { "label": "PositionTag()", "file_type": "code", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L26", "community": 7, "norm_label": "positiontag()", "id": "pages_comparisonpage_positiontag" }, { "label": "MemberPositionsCell()", "file_type": "code", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L41", "community": 7, "norm_label": "memberpositionscell()", "id": "pages_comparisonpage_memberpositionscell" }, { "label": "ComparisonPage()", "file_type": "code", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L67", "community": 7, "norm_label": "comparisonpage()", "id": "pages_comparisonpage_comparisonpage" }, { "label": "LandingPage.tsx", "file_type": "code", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L1", "community": 1, "norm_label": "landingpage.tsx", "id": "frontend_src_pages_landingpage_tsx" }, { "label": "LandingOrSieges()", "file_type": "code", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L10", "community": 22, "norm_label": "landingorsieges()", "id": "pages_landingpage_landingorsieges" }, { "label": "SLIDES", "file_type": "code", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L26", "community": 1, "norm_label": "slides", "id": "pages_landingpage_slides" }, { "label": "ShieldIcon()", "file_type": "code", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L68", "community": 1, "norm_label": "shieldicon()", "id": "pages_landingpage_shieldicon" }, { "label": "GitHubIcon()", "file_type": "code", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L88", "community": 1, "norm_label": "githubicon()", "id": "pages_landingpage_githubicon" }, { "label": "CheckIcon()", "file_type": "code", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L108", "community": 1, "norm_label": "checkicon()", "id": "pages_landingpage_checkicon" }, { "label": "ExternalLinkIcon()", "file_type": "code", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L128", "community": 1, "norm_label": "externallinkicon()", "id": "pages_landingpage_externallinkicon" }, { "label": "COLORS", "file_type": "code", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L150", "community": 1, "norm_label": "colors", "id": "pages_landingpage_colors" }, { "label": "LandingPage()", "file_type": "code", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L157", "community": 1, "norm_label": "landingpage()", "id": "pages_landingpage_landingpage" }, { "label": "ERROR_MESSAGES", "file_type": "code", "source_file": "frontend/src/pages/LoginPage.tsx", "source_location": "L7", "community": 1, "norm_label": "error_messages", "id": "pages_loginpage_error_messages" }, { "label": "MEMBERSHIP_ERRORS", "file_type": "code", "source_file": "frontend/src/pages/LoginPage.tsx", "source_location": "L15", "community": 1, "norm_label": "membership_errors", "id": "pages_loginpage_membership_errors" }, { "label": "MobileBanner()", "file_type": "code", "source_file": "frontend/src/pages/LoginPage.tsx", "source_location": "L18", "community": 1, "norm_label": "mobilebanner()", "id": "pages_loginpage_mobilebanner" }, { "label": "LoginPage()", "file_type": "code", "source_file": "frontend/src/pages/LoginPage.tsx", "source_location": "L34", "community": 1, "norm_label": "loginpage()", "id": "pages_loginpage_loginpage" }, { "label": "MemberDetailPage.tsx", "file_type": "code", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L1", "community": 15, "norm_label": "memberdetailpage.tsx", "id": "frontend_src_pages_memberdetailpage_tsx" }, { "label": "ROLE_OPTIONS", "file_type": "code", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L41", "community": 15, "norm_label": "role_options", "id": "pages_memberdetailpage_role_options" }, { "label": "RoleBadgeVariant", "file_type": "code", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L43", "community": 7, "norm_label": "rolebadgevariant", "id": "pages_memberspage_rolebadgevariant" }, { "label": "ROLE_VARIANTS", "file_type": "code", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L45", "community": 7, "norm_label": "role_variants", "id": "pages_memberspage_role_variants" }, { "label": "MembersPage()", "file_type": "code", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L52", "community": 7, "norm_label": "memberspage()", "id": "pages_memberspage_memberspage" }, { "label": "PostPrioritiesPage.tsx", "file_type": "code", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L1", "community": 7, "norm_label": "postprioritiespage.tsx", "id": "frontend_src_pages_postprioritiespage_tsx" }, { "label": "DescriptionCell()", "file_type": "code", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L30", "community": 7, "norm_label": "descriptioncell()", "id": "pages_postprioritiespage_descriptioncell" }, { "label": "Tab", "file_type": "code", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L64", "community": 7, "norm_label": "tab", "id": "pages_postprioritiespage_tab" }, { "label": "PostRow()", "file_type": "code", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L30", "community": 15, "norm_label": "postrow()", "id": "pages_postspage_postrow" }, { "label": "PostsPage()", "file_type": "code", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L265", "community": 15, "norm_label": "postspage()", "id": "pages_postspage_postspage" }, { "label": "nextTuesdayFrom()", "file_type": "code", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L19", "community": 7, "norm_label": "nexttuesdayfrom()", "id": "pages_siegecreatepage_nexttuesdayfrom" }, { "label": "formatDateLocal()", "file_type": "code", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L27", "community": 7, "norm_label": "formatdatelocal()", "id": "pages_siegecreatepage_formatdatelocal" }, { "label": "suggestNextSiegeDate()", "file_type": "code", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L34", "community": 7, "norm_label": "suggestnextsiegedate()", "id": "pages_siegecreatepage_suggestnextsiegedate" }, { "label": "SiegeCreatePage()", "file_type": "code", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L46", "community": 7, "norm_label": "siegecreatepage()", "id": "pages_siegecreatepage_siegecreatepage" }, { "label": "AttackDaySelect()", "file_type": "code", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L41", "community": 3, "norm_label": "attackdayselect()", "id": "pages_siegememberspage_attackdayselect" }, { "label": "SiegeSettingsPage.tsx", "file_type": "code", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L1", "community": 3, "norm_label": "siegesettingspage.tsx", "id": "frontend_src_pages_siegesettingspage_tsx" }, { "label": "SiegesPage.tsx", "file_type": "code", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L1", "community": 7, "norm_label": "siegespage.tsx", "id": "frontend_src_pages_siegespage_tsx" }, { "label": "StatusBadgeVariant", "file_type": "code", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L17", "community": 7, "norm_label": "statusbadgevariant", "id": "pages_siegespage_statusbadgevariant" }, { "label": "STATUS_VARIANTS", "file_type": "code", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L19", "community": 7, "norm_label": "status_variants", "id": "pages_siegespage_status_variants" }, { "label": "STATUS_LABELS", "file_type": "code", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L25", "community": 7, "norm_label": "status_labels", "id": "pages_siegespage_status_labels" }, { "label": "SiegesPage()", "file_type": "code", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L31", "community": 7, "norm_label": "siegespage()", "id": "pages_siegespage_siegespage" }, { "label": "UI_LIBRARIES", "file_type": "code", "source_file": "frontend/src/pages/SystemPage.tsx", "source_location": "L6", "community": 40, "norm_label": "ui_libraries", "id": "pages_systempage_ui_libraries" }, { "label": "SectionPanel()", "file_type": "code", "source_file": "frontend/src/pages/SystemPage.tsx", "source_location": "L16", "community": 40, "norm_label": "sectionpanel()", "id": "pages_systempage_sectionpanel" }, { "label": "DataRow()", "file_type": "code", "source_file": "frontend/src/pages/SystemPage.tsx", "source_location": "L47", "community": 14, "norm_label": "datarow()", "id": "pages_systempage_datarow" }, { "label": "LibraryRow()", "file_type": "code", "source_file": "frontend/src/pages/SystemPage.tsx", "source_location": "L80", "community": 40, "norm_label": "libraryrow()", "id": "pages_systempage_libraryrow" }, { "label": "SystemPage()", "file_type": "code", "source_file": "frontend/src/pages/SystemPage.tsx", "source_location": "L100", "community": 40, "norm_label": "systempage()", "id": "pages_systempage_systempage" }, { "label": "handlers.ts", "file_type": "code", "source_file": "frontend/src/test/handlers.ts", "source_location": "L1", "community": 8, "norm_label": "handlers.ts", "id": "frontend_src_test_handlers_ts" }, { "label": "handlers", "file_type": "code", "source_file": "frontend/src/test/handlers.ts", "source_location": "L42", "community": 8, "norm_label": "handlers", "id": "test_handlers_handlers" }, { "label": "server.ts", "file_type": "code", "source_file": "frontend/src/test/server.ts", "source_location": "L1", "community": 1, "norm_label": "server.ts", "id": "frontend_src_test_server_ts" }, { "label": "server", "file_type": "code", "source_file": "frontend/src/test/server.ts", "source_location": "L4", "community": 1, "norm_label": "server", "id": "test_server_server" }, { "label": "setup.ts", "file_type": "code", "source_file": "frontend/src/test/setup.ts", "source_location": "L1", "community": 132, "norm_label": "setup.ts", "id": "frontend_src_test_setup_ts" }, { "label": "TestRenderOptions", "file_type": "code", "source_file": "frontend/src/test/utils.tsx", "source_location": "L7", "community": 1, "norm_label": "testrenderoptions", "id": "test_utils_testrenderoptions" }, { "label": "renderWithProviders()", "file_type": "code", "source_file": "frontend/src/test/utils.tsx", "source_location": "L11", "community": 1, "norm_label": "renderwithproviders()", "id": "test_utils_renderwithproviders" }, { "label": "renderCarousel()", "file_type": "code", "source_file": "frontend/src/test/components/Carousel.test.tsx", "source_location": "L13", "community": 1, "norm_label": "rendercarousel()", "id": "components_carousel_test_rendercarousel" }, { "label": "track", "file_type": "code", "source_file": "frontend/src/test/components/Carousel.test.tsx", "source_location": "L20", "community": 1, "norm_label": "track", "id": "components_carousel_test_track" }, { "label": "dot0", "file_type": "code", "source_file": "frontend/src/test/components/Carousel.test.tsx", "source_location": "L40", "community": 1, "norm_label": "dot0", "id": "components_carousel_test_dot0" }, { "label": "viewport", "file_type": "code", "source_file": "frontend/src/test/components/Carousel.test.tsx", "source_location": "L116", "community": 1, "norm_label": "viewport", "id": "components_carousel_test_viewport" }, { "label": "ChangelogDropdown.test.tsx", "file_type": "code", "source_file": "frontend/src/test/components/ChangelogDropdown.test.tsx", "source_location": "L1", "community": 1, "norm_label": "changelogdropdown.test.tsx", "id": "frontend_src_test_components_changelogdropdown_test_tsx" }, { "label": "renderDropdown()", "file_type": "code", "source_file": "frontend/src/test/components/ChangelogDropdown.test.tsx", "source_location": "L58", "community": 1, "norm_label": "renderdropdown()", "id": "components_changelogdropdown_test_renderdropdown" }, { "label": "GroupByConditions.test.tsx", "file_type": "code", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L1", "community": 1, "norm_label": "groupbyconditions.test.tsx", "id": "frontend_src_test_components_groupbyconditions_test_tsx" }, { "label": "setupConditions()", "file_type": "code", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L100", "community": 1, "norm_label": "setupconditions()", "id": "components_groupbyconditions_test_setupconditions" }, { "label": "setupMember()", "file_type": "code", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L107", "community": 1, "norm_label": "setupmember()", "id": "components_groupbyconditions_test_setupmember" }, { "label": "openConditionsTab()", "file_type": "code", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L130", "community": 1, "norm_label": "openconditionstab()", "id": "components_groupbyconditions_test_openconditionstab" }, { "label": "elements", "file_type": "code", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L184", "community": 1, "norm_label": "elements", "id": "components_groupbyconditions_test_elements" }, { "label": "renderMemberDetail()", "file_type": "code", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L240", "community": 1, "norm_label": "rendermemberdetail()", "id": "components_groupbyconditions_test_rendermemberdetail" }, { "label": "waitForPreferences()", "file_type": "code", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L249", "community": 1, "norm_label": "waitforpreferences()", "id": "components_groupbyconditions_test_waitforpreferences" }, { "label": "headingTexts", "file_type": "code", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L278", "community": 1, "norm_label": "headingtexts", "id": "components_groupbyconditions_test_headingtexts" }, { "label": "GroupByToggle.test.tsx", "file_type": "code", "source_file": "frontend/src/test/components/GroupByToggle.test.tsx", "source_location": "L1", "community": 1, "norm_label": "groupbytoggle.test.tsx", "id": "frontend_src_test_components_groupbytoggle_test_tsx" }, { "label": "onChange", "file_type": "code", "source_file": "frontend/src/test/components/GroupByToggle.test.tsx", "source_location": "L59", "community": 1, "norm_label": "onchange", "id": "components_groupbytoggle_test_onchange" }, { "label": "renderLanding()", "file_type": "code", "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L18", "community": 1, "norm_label": "renderlanding()", "id": "components_landingpage_test_renderlanding" }, { "label": "signIn", "file_type": "code", "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L55", "community": 1, "norm_label": "signin", "id": "components_landingpage_test_signin" }, { "label": "list", "file_type": "code", "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L71", "community": 42, "norm_label": "list", "id": "components_landingpage_test_list" }, { "label": "bullets", "file_type": "code", "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L72", "community": 1, "norm_label": "bullets", "id": "components_landingpage_test_bullets" }, { "label": "ghLink", "file_type": "code", "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L127", "community": 1, "norm_label": "ghlink", "id": "components_landingpage_test_ghlink" }, { "label": "scrollIntoViewMock", "file_type": "code", "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L192", "community": 1, "norm_label": "scrollintoviewmock", "id": "components_landingpage_test_scrollintoviewmock" }, { "label": "renderLayout()", "file_type": "code", "source_file": "frontend/src/test/components/Layout.test.tsx", "source_location": "L13", "community": 22, "norm_label": "renderlayout()", "id": "components_layout_test_renderlayout" }, { "label": "PostsTab.test.tsx", "file_type": "code", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L1", "community": 36, "norm_label": "poststab.test.tsx", "id": "frontend_src_test_components_poststab_test_tsx" }, { "label": "makePostBoard()", "file_type": "code", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L65", "community": 36, "norm_label": "makepostboard()", "id": "components_poststab_test_makepostboard" }, { "label": "setupHandlers()", "file_type": "code", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L133", "community": 1, "norm_label": "setuphandlers()", "id": "components_poststab_test_setuphandlers" }, { "label": "navigateToPostsTab()", "file_type": "code", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L159", "community": 36, "norm_label": "navigatetopoststab()", "id": "components_poststab_test_navigatetopoststab" }, { "label": "makeTwoPostBoard()", "file_type": "code", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L299", "community": 36, "norm_label": "maketwopostboard()", "id": "components_poststab_test_maketwopostboard" }, { "label": "board", "file_type": "code", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L351", "community": 36, "norm_label": "board", "id": "components_poststab_test_board" }, { "label": "post1", "file_type": "code", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L352", "community": 36, "norm_label": "post1", "id": "components_poststab_test_post1" }, { "label": "post2", "file_type": "code", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L359", "community": 36, "norm_label": "post2", "id": "components_poststab_test_post2" }, { "label": "postRefs", "file_type": "code", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L391", "community": 36, "norm_label": "postrefs", "id": "components_poststab_test_postrefs" }, { "label": "labels", "file_type": "code", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L441", "community": 36, "norm_label": "labels", "id": "components_poststab_test_labels" }, { "label": "btn", "file_type": "code", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L604", "community": 36, "norm_label": "btn", "id": "components_poststab_test_btn" }, { "label": "makePostPreviewResult()", "file_type": "code", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L611", "community": 36, "norm_label": "makepostpreviewresult()", "id": "components_poststab_test_makepostpreviewresult" }, { "label": "makeOptimalAssignment()", "file_type": "code", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L621", "community": 36, "norm_label": "makeoptimalassignment()", "id": "components_poststab_test_makeoptimalassignment" }, { "label": "makeSuggestionAssignment()", "file_type": "code", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L640", "community": 36, "norm_label": "makesuggestionassignment()", "id": "components_poststab_test_makesuggestionassignment" }, { "label": "chip", "file_type": "code", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L684", "community": 36, "norm_label": "chip", "id": "components_poststab_test_chip" }, { "label": "suggestBtn", "file_type": "code", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L762", "community": 36, "norm_label": "suggestbtn", "id": "components_poststab_test_suggestbtn" }, { "label": "applyBtn", "file_type": "code", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L773", "community": 36, "norm_label": "applybtn", "id": "components_poststab_test_applybtn" }, { "label": "renderModal()", "file_type": "code", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L93", "community": 14, "norm_label": "rendermodal()", "id": "components_postsuggestionsmodal_test_rendermodal" }, { "label": "rows", "file_type": "code", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L143", "community": 14, "norm_label": "rows", "id": "components_postsuggestionsmodal_test_rows" }, { "label": "twoSuggestions", "file_type": "code", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L157", "community": 14, "norm_label": "twosuggestions", "id": "components_postsuggestionsmodal_test_twosuggestions" }, { "label": "onClose", "file_type": "code", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L233", "community": 14, "norm_label": "onclose", "id": "components_postsuggestionsmodal_test_onclose" }, { "label": "regenerateBtns", "file_type": "code", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L360", "community": 14, "norm_label": "regeneratebtns", "id": "components_postsuggestionsmodal_test_regeneratebtns" }, { "label": "skippedTile", "file_type": "code", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L390", "community": 14, "norm_label": "skippedtile", "id": "components_postsuggestionsmodal_test_skippedtile" }, { "label": "allTile", "file_type": "code", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L400", "community": 14, "norm_label": "alltile", "id": "components_postsuggestionsmodal_test_alltile" }, { "label": "optimalPreview", "file_type": "code", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L411", "community": 14, "norm_label": "optimalpreview", "id": "components_postsuggestionsmodal_test_optimalpreview" }, { "label": "twoRows", "file_type": "code", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L516", "community": 14, "norm_label": "tworows", "id": "components_postsuggestionsmodal_test_tworows" }, { "label": "applyRemainingBtn", "file_type": "code", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L598", "community": 14, "norm_label": "applyremainingbtn", "id": "components_postsuggestionsmodal_test_applyremainingbtn" }, { "label": "expiresAt", "file_type": "code", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L616", "community": 14, "norm_label": "expiresat", "id": "components_postsuggestionsmodal_test_expiresat" }, { "label": "subtitle", "file_type": "code", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L631", "community": 14, "norm_label": "subtitle", "id": "components_postsuggestionsmodal_test_subtitle" }, { "label": "slidersIcons", "file_type": "code", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L724", "community": 14, "norm_label": "slidersicons", "id": "components_postsuggestionsmodal_test_slidersicons" }, { "label": "infoIcons", "file_type": "code", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L725", "community": 14, "norm_label": "infoicons", "id": "components_postsuggestionsmodal_test_infoicons" }, { "label": "postsLink", "file_type": "code", "source_file": "frontend/src/test/components/SiegeLayout.test.tsx", "source_location": "L73", "community": 22, "norm_label": "postslink", "id": "components_siegelayout_test_postslink" }, { "label": "settingsLink", "file_type": "code", "source_file": "frontend/src/test/components/SiegeLayout.test.tsx", "source_location": "L79", "community": 22, "norm_label": "settingslink", "id": "components_siegelayout_test_settingslink" }, { "label": "TestConsumer()", "file_type": "code", "source_file": "frontend/src/test/context/AuthContext.test.tsx", "source_location": "L12", "community": 22, "norm_label": "testconsumer()", "id": "context_authcontext_test_testconsumer" }, { "label": "makeCond()", "file_type": "code", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L17", "community": 15, "norm_label": "makecond()", "id": "lib_grouppostconditions_test_makecond" }, { "label": "MIXED", "file_type": "code", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L27", "community": 15, "norm_label": "mixed", "id": "lib_grouppostconditions_test_mixed" }, { "label": "groups", "file_type": "code", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L38", "community": 15, "norm_label": "groups", "id": "lib_grouppostconditions_test_groups" }, { "label": "levels", "file_type": "code", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L39", "community": 15, "norm_label": "levels", "id": "lib_grouppostconditions_test_levels" }, { "label": "descriptions", "file_type": "code", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L53", "community": 15, "norm_label": "descriptions", "id": "lib_grouppostconditions_test_descriptions" }, { "label": "l1Only", "file_type": "code", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L59", "community": 15, "norm_label": "l1only", "id": "lib_grouppostconditions_test_l1only" }, { "label": "types", "file_type": "code", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L72", "community": 15, "norm_label": "types", "id": "lib_grouppostconditions_test_types" }, { "label": "headings", "file_type": "code", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L80", "community": 1, "norm_label": "headings", "id": "lib_grouppostconditions_test_headings" }, { "label": "factions", "file_type": "code", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L98", "community": 15, "norm_label": "factions", "id": "lib_grouppostconditions_test_factions" }, { "label": "unknown", "file_type": "code", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L111", "community": 15, "norm_label": "unknown", "id": "lib_grouppostconditions_test_unknown" }, { "label": "ids", "file_type": "code", "source_file": "frontend/src/test/lib/postConditionTypes.test.ts", "source_location": "L25", "community": 16, "norm_label": "ids", "id": "lib_postconditiontypes_test_ids" }, { "label": "unique", "file_type": "code", "source_file": "frontend/src/test/lib/postConditionTypes.test.ts", "source_location": "L45", "community": 16, "norm_label": "unique", "id": "lib_postconditiontypes_test_unique" }, { "label": "count()", "file_type": "code", "source_file": "frontend/src/test/lib/postConditionTypes.test.ts", "source_location": "L51", "community": 16, "norm_label": "count()", "id": "lib_postconditiontypes_test_count" }, { "label": "BoardPage.test.tsx", "file_type": "code", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L1", "community": 1, "norm_label": "boardpage.test.tsx", "id": "frontend_src_test_pages_boardpage_test_tsx" }, { "label": "makeBoard()", "file_type": "code", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L54", "community": 2, "norm_label": "makeboard()", "id": "pages_boardpage_test_makeboard" }, { "label": "makeSiegeMember()", "file_type": "code", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L90", "community": 12, "norm_label": "makesiegemember()", "id": "pages_boardpage_test_makesiegemember" }, { "label": "setupDefaultHandlers()", "file_type": "code", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L107", "community": 1, "norm_label": "setupdefaulthandlers()", "id": "pages_boardpage_test_setupdefaulthandlers" }, { "label": "renderBoard()", "file_type": "code", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L120", "community": 1, "norm_label": "renderboard()", "id": "pages_boardpage_test_renderboard" }, { "label": "ones", "file_type": "code", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L174", "community": 1, "norm_label": "ones", "id": "pages_boardpage_test_ones" }, { "label": "disabledEl", "file_type": "code", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L217", "community": 1, "norm_label": "disabledel", "id": "pages_boardpage_test_disabledel" }, { "label": "user", "file_type": "code", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L239", "community": 1, "norm_label": "user", "id": "pages_boardpage_test_user" }, { "label": "disabledSpan", "file_type": "code", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L341", "community": 1, "norm_label": "disabledspan", "id": "pages_boardpage_test_disabledspan" }, { "label": "cell", "file_type": "code", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L342", "community": 1, "norm_label": "cell", "id": "pages_boardpage_test_cell" }, { "label": "members", "file_type": "code", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L382", "community": 1, "norm_label": "members", "id": "pages_boardpage_test_members" }, { "label": "searchInput", "file_type": "code", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L420", "community": 1, "norm_label": "searchinput", "id": "pages_boardpage_test_searchinput" }, { "label": "memberRows", "file_type": "code", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L508", "community": 35, "norm_label": "memberrows", "id": "pages_boardpage_test_memberrows" }, { "label": "bucketRow", "file_type": "code", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L510", "community": 1, "norm_label": "bucketrow", "id": "pages_boardpage_test_bucketrow" }, { "label": "link", "file_type": "code", "source_file": "frontend/src/test/pages/LoginPage.test.tsx", "source_location": "L147", "community": 1, "norm_label": "link", "id": "pages_loginpage_test_link" }, { "label": "PostsPage.groupBy.test.tsx", "file_type": "code", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L1", "community": 1, "norm_label": "postspage.groupby.test.tsx", "id": "frontend_src_test_pages_postspage_groupby_test_tsx" }, { "label": "SAMPLE_CONDITIONS", "file_type": "code", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L52", "community": 1, "norm_label": "sample_conditions", "id": "pages_postspage_groupby_test_sample_conditions" }, { "label": "TWO_POSTS", "file_type": "code", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L111", "community": 1, "norm_label": "two_posts", "id": "pages_postspage_groupby_test_two_posts" }, { "label": "expandFirstPost()", "file_type": "code", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L150", "community": 1, "norm_label": "expandfirstpost()", "id": "pages_postspage_groupby_test_expandfirstpost" }, { "label": "expandAllPosts()", "file_type": "code", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L167", "community": 1, "norm_label": "expandallposts()", "id": "pages_postspage_groupby_test_expandallposts" }, { "label": "rowToggle", "file_type": "code", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L204", "community": 1, "norm_label": "rowtoggle", "id": "pages_postspage_groupby_test_rowtoggle" }, { "label": "masterGroup", "file_type": "code", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L274", "community": 1, "norm_label": "mastergroup", "id": "pages_postspage_groupby_test_mastergroup" }, { "label": "rowGroups", "file_type": "code", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L299", "community": 1, "norm_label": "rowgroups", "id": "pages_postspage_groupby_test_rowgroups" }, { "label": "renderPostsPage()", "file_type": "code", "source_file": "frontend/src/test/pages/PostsPage.test.tsx", "source_location": "L41", "community": 1, "norm_label": "renderpostspage()", "id": "pages_postspage_test_renderpostspage" }, { "label": "posts", "file_type": "code", "source_file": "frontend/src/test/pages/PostsPage.test.tsx", "source_location": "L63", "community": 15, "norm_label": "posts", "id": "pages_postspage_test_posts" }, { "label": "postHeadings", "file_type": "code", "source_file": "frontend/src/test/pages/PostsPage.test.tsx", "source_location": "L93", "community": 15, "norm_label": "postheadings", "id": "pages_postspage_test_postheadings" }, { "label": "makePreview()", "file_type": "code", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L61", "community": 3, "norm_label": "makepreview()", "id": "pages_siegememberspage_test_makepreview" }, { "label": "registerHandlers()", "file_type": "code", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L75", "community": 3, "norm_label": "registerhandlers()", "id": "pages_siegememberspage_test_registerhandlers" }, { "label": "renderPage()", "file_type": "code", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L93", "community": 3, "norm_label": "renderpage()", "id": "pages_siegememberspage_test_renderpage" }, { "label": "openPreviewDialog()", "file_type": "code", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L104", "community": 3, "norm_label": "openpreviewdialog()", "id": "pages_siegememberspage_test_openpreviewdialog" }, { "label": "allCells", "file_type": "code", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L139", "community": 3, "norm_label": "allcells", "id": "pages_siegememberspage_test_allcells" }, { "label": "nameCells", "file_type": "code", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L158", "community": 3, "norm_label": "namecells", "id": "pages_siegememberspage_test_namecells" }, { "label": "day2Header", "file_type": "code", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L164", "community": 3, "norm_label": "day2header", "id": "pages_siegememberspage_test_day2header" }, { "label": "day1Names", "file_type": "code", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L184", "community": 3, "norm_label": "day1names", "id": "pages_siegememberspage_test_day1names" }, { "label": "makeNotifyResponse()", "file_type": "code", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L71", "community": 3, "norm_label": "makenotifyresponse()", "id": "pages_siegesettingspage_test_makenotifyresponse" }, { "label": "makeResult()", "file_type": "code", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L82", "community": 3, "norm_label": "makeresult()", "id": "pages_siegesettingspage_test_makeresult" }, { "label": "makeBatchResponse()", "file_type": "code", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L96", "community": 3, "norm_label": "makebatchresponse()", "id": "pages_siegesettingspage_test_makebatchresponse" }, { "label": "emptyValidation", "file_type": "code", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L115", "community": 3, "norm_label": "emptyvalidation", "id": "pages_siegesettingspage_test_emptyvalidation" }, { "label": "waitForPageLoad()", "file_type": "code", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L151", "community": 3, "norm_label": "waitforpageload()", "id": "pages_siegesettingspage_test_waitforpageload" }, { "label": "dialog", "file_type": "code", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L182", "community": 3, "norm_label": "dialog", "id": "pages_siegesettingspage_test_dialog" }, { "label": "notifyBtn", "file_type": "code", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L223", "community": 3, "norm_label": "notifybtn", "id": "pages_siegesettingspage_test_notifybtn" }, { "label": "statusEl", "file_type": "code", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L277", "community": 3, "norm_label": "statusel", "id": "pages_siegesettingspage_test_statusel" }, { "label": "SiegesPage.test.tsx", "file_type": "code", "source_file": "frontend/src/test/pages/SiegesPage.test.tsx", "source_location": "L1", "community": 1, "norm_label": "siegespage.test.tsx", "id": "frontend_src_test_pages_siegespage_test_tsx" }, { "label": "sieges", "file_type": "code", "source_file": "frontend/src/test/pages/SiegesPage.test.tsx", "source_location": "L51", "community": 1, "norm_label": "sieges", "id": "pages_siegespage_test_sieges" }, { "label": "changelog.d.ts", "file_type": "code", "source_file": "frontend/src/types/changelog.d.ts", "source_location": "L1", "community": 98, "norm_label": "changelog.d.ts", "id": "frontend_src_types_changelog_d_ts" }, { "label": "ChangelogEntry", "file_type": "code", "source_file": "frontend/src/types/changelog.d.ts", "source_location": "L13", "community": 98, "norm_label": "changelogentry", "id": "types_changelog_d_changelogentry" }, { "label": "bootstrap-db.ps1", "file_type": "code", "source_file": "scripts/bootstrap-db.ps1", "source_location": "L1", "community": 133, "norm_label": "bootstrap-db.ps1", "id": "scripts_bootstrap_db_ps1" }, { "label": "bootstrap-excel-import.ps1", "file_type": "code", "source_file": "scripts/bootstrap-excel-import.ps1", "source_location": "L1", "community": 134, "norm_label": "bootstrap-excel-import.ps1", "id": "scripts_bootstrap_excel_import_ps1" }, { "label": "bootstrap-images.ps1", "file_type": "code", "source_file": "scripts/bootstrap-images.ps1", "source_location": "L1", "community": 135, "norm_label": "bootstrap-images.ps1", "id": "scripts_bootstrap_images_ps1" }, { "label": "bootstrap-keyvault.ps1", "file_type": "code", "source_file": "scripts/bootstrap-keyvault.ps1", "source_location": "L1", "community": 136, "norm_label": "bootstrap-keyvault.ps1", "id": "scripts_bootstrap_keyvault_ps1" }, { "label": "bootstrap-reimport.ps1", "file_type": "code", "source_file": "scripts/bootstrap-reimport.ps1", "source_location": "L1", "community": 137, "norm_label": "bootstrap-reimport.ps1", "id": "scripts_bootstrap_reimport_ps1" }, { "label": "generate-origin-pfx.ps1", "file_type": "code", "source_file": "scripts/generate-origin-pfx.ps1", "source_location": "L1", "community": 138, "norm_label": "generate-origin-pfx.ps1", "id": "scripts_generate_origin_pfx_ps1" }, { "label": "rebuild.ps1", "file_type": "code", "source_file": "scripts/rebuild.ps1", "source_location": "L1", "community": 139, "norm_label": "rebuild.ps1", "id": "scripts_rebuild_ps1" }, { "label": "import_excel.py", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L1", "community": 21, "norm_label": "import_excel.py", "id": "scripts_excel_import_import_excel_py" }, { "label": "ParsedMember", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L160", "community": 16, "norm_label": "parsedmember", "id": "excel_import_import_excel_parsedmember" }, { "label": "ParsedAssignment", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L169", "community": 16, "norm_label": "parsedassignment", "id": "excel_import_import_excel_parsedassignment" }, { "label": "ParsedReserve", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L178", "community": 16, "norm_label": "parsedreserve", "id": "excel_import_import_excel_parsedreserve" }, { "label": "ParsedPostConfig", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L185", "community": 16, "norm_label": "parsedpostconfig", "id": "excel_import_import_excel_parsedpostconfig" }, { "label": "ParsedPostConditions", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L192", "community": 16, "norm_label": "parsedpostconditions", "id": "excel_import_import_excel_parsedpostconditions" }, { "label": "ImportStats", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L198", "community": 16, "norm_label": "importstats", "id": "excel_import_import_excel_importstats" }, { "label": "parse_filename_date()", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L224", "community": 21, "norm_label": "parse_filename_date()", "id": "excel_import_import_excel_parse_filename_date" }, { "label": "map_role()", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L236", "community": 21, "norm_label": "map_role()", "id": "excel_import_import_excel_map_role" }, { "label": "map_building_alias()", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L241", "community": 21, "norm_label": "map_building_alias()", "id": "excel_import_import_excel_map_building_alias" }, { "label": "parse_members_sheet()", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L265", "community": 21, "norm_label": "parse_members_sheet()", "id": "excel_import_import_excel_parse_members_sheet" }, { "label": "parse_assignments_sheet()", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L337", "community": 21, "norm_label": "parse_assignments_sheet()", "id": "excel_import_import_excel_parse_assignments_sheet" }, { "label": "parse_reserves_sheet()", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L445", "community": 21, "norm_label": "parse_reserves_sheet()", "id": "excel_import_import_excel_parse_reserves_sheet" }, { "label": "parse_posts_sheet_config()", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L489", "community": 21, "norm_label": "parse_posts_sheet_config()", "id": "excel_import_import_excel_parse_posts_sheet_config" }, { "label": "parse_posts_sheet_conditions()", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L534", "community": 21, "norm_label": "parse_posts_sheet_conditions()", "id": "excel_import_import_excel_parse_posts_sheet_conditions" }, { "label": "build_group_structure()", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L570", "community": 21, "norm_label": "build_group_structure()", "id": "excel_import_import_excel_build_group_structure" }, { "label": "compute_building_group_structure()", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L592", "community": 21, "norm_label": "compute_building_group_structure()", "id": "excel_import_import_excel_compute_building_group_structure" }, { "label": "infer_building_level()", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L677", "community": 21, "norm_label": "infer_building_level()", "id": "excel_import_import_excel_infer_building_level" }, { "label": "create_building_with_groups_and_positions()", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L719", "community": 21, "norm_label": "create_building_with_groups_and_positions()", "id": "excel_import_import_excel_create_building_with_groups_and_positions" }, { "label": "import_file()", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L776", "community": 21, "norm_label": "import_file()", "id": "excel_import_import_excel_import_file" }, { "label": "collect_xlsm_files()", "file_type": "code", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L1146", "community": 42, "norm_label": "collect_xlsm_files()", "id": "excel_import_import_excel_collect_xlsm_files" }, { "label": "Excel import script for Raid Shadow Legends Siege Assignment Web App. Imports h", "file_type": "rationale", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L1", "community": 21, "norm_label": "excel import script for raid shadow legends siege assignment web app. imports h", "id": "excel_import_import_excel_rationale_1" }, { "label": "Extract the siege date from a filename like clan_siege_MM_DD_YYYY.xlsm.", "file_type": "rationale", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L225", "community": 21, "norm_label": "extract the siege date from a filename like clan_siege_mm_dd_yyyy.xlsm.", "id": "excel_import_import_excel_rationale_225" }, { "label": "Map a display role string to its enum value.", "file_type": "rationale", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L237", "community": 21, "norm_label": "map a display role string to its enum value.", "id": "excel_import_import_excel_rationale_237" }, { "label": "Map a raw building type string to its canonical enum value and optional building", "file_type": "rationale", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L242", "community": 21, "norm_label": "map a raw building type string to its canonical enum value and optional building", "id": "excel_import_import_excel_rationale_242" }, { "label": "Parse the 'Members' worksheet. Expected columns: A: name, B: level (i", "file_type": "rationale", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L266", "community": 21, "norm_label": "parse the 'members' worksheet. expected columns: a: name, b: level (i", "id": "excel_import_import_excel_rationale_266" }, { "label": "Parse the 'Assignments' worksheet in its visual grid format. Layout:", "file_type": "rationale", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L338", "community": 21, "norm_label": "parse the 'assignments' worksheet in its visual grid format. layout:", "id": "excel_import_import_excel_rationale_338" }, { "label": "Parse the 'Reserves' worksheet. Expected columns: A: member_name, B:", "file_type": "rationale", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L446", "community": 21, "norm_label": "parse the 'reserves' worksheet. expected columns: a: member_name, b:", "id": "excel_import_import_excel_rationale_446" }, { "label": "Parse post priority and descriptions from the Posts sheet, rows 2\u201317, columns B\u2013", "file_type": "rationale", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L490", "community": 21, "norm_label": "parse post priority and descriptions from the posts sheet, rows 2\u201317, columns b\u2013", "id": "excel_import_import_excel_rationale_490" }, { "label": "Parse post active conditions from the Posts sheet, rows 34\u201351, columns D\u2013F.", "file_type": "rationale", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L535", "community": 21, "norm_label": "parse post active conditions from the posts sheet, rows 34\u201351, columns d\u2013f.", "id": "excel_import_import_excel_rationale_535" }, { "label": "Return a list of slot_counts for each group of the given building type. e.g", "file_type": "rationale", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L571", "community": 21, "norm_label": "return a list of slot_counts for each group of the given building type. e.g", "id": "excel_import_import_excel_rationale_571" }, { "label": "Scan the given list of ParsedAssignments and return {group_number: slot_count}", "file_type": "rationale", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L597", "community": 21, "norm_label": "scan the given list of parsedassignments and return {group_number: slot_count}", "id": "excel_import_import_excel_rationale_597" }, { "label": "Sum all slot counts in group_structure and look up the level for that building t", "file_type": "rationale", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L678", "community": 21, "norm_label": "sum all slot counts in group_structure and look up the level for that building t", "id": "excel_import_import_excel_rationale_678" }, { "label": "Return (member, created). Looks up by name (case-insensitive). Creates if no", "file_type": "rationale", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L691", "community": 21, "norm_label": "return (member, created). looks up by name (case-insensitive). creates if no", "id": "excel_import_import_excel_rationale_691" }, { "label": "Create a Building, its BuildingGroups, and their Positions. Uses the provid", "file_type": "rationale", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L727", "community": 21, "norm_label": "create a building, its buildinggroups, and their positions. uses the provid", "id": "excel_import_import_excel_rationale_727" }, { "label": "Import a single .xlsm file. Returns ImportStats.", "file_type": "rationale", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L781", "community": 21, "norm_label": "import a single .xlsm file. returns importstats.", "id": "excel_import_import_excel_rationale_781" }, { "label": "Import a list of .xlsm files into the database.", "file_type": "rationale", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L1073", "community": 21, "norm_label": "import a list of .xlsm files into the database.", "id": "excel_import_import_excel_rationale_1073" }, { "label": "Return a sorted list of .xlsm files from a file path or directory.", "file_type": "rationale", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L1147", "community": 42, "norm_label": "return a sorted list of .xlsm files from a file path or directory.", "id": "excel_import_import_excel_rationale_1147" }, { "label": "test_import_excel.py", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L1", "community": 28, "norm_label": "test_import_excel.py", "id": "scripts_excel_import_tests_test_import_excel_py" }, { "label": "test_parse_filename()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L28", "community": 85, "norm_label": "test_parse_filename()", "id": "tests_test_import_excel_test_parse_filename" }, { "label": "test_parse_filename_with_path_prefix()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L34", "community": 86, "norm_label": "test_parse_filename_with_path_prefix()", "id": "tests_test_import_excel_test_parse_filename_with_path_prefix" }, { "label": "test_parse_filename_invalid_random()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L51", "community": 73, "norm_label": "test_parse_filename_invalid_random()", "id": "tests_test_import_excel_test_parse_filename_invalid_random" }, { "label": "test_parse_filename_invalid_impossible_date()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L57", "community": 28, "norm_label": "test_parse_filename_invalid_impossible_date()", "id": "tests_test_import_excel_test_parse_filename_invalid_impossible_date" }, { "label": "test_role_mapping_heavy_hitter()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L68", "community": 28, "norm_label": "test_role_mapping_heavy_hitter()", "id": "tests_test_import_excel_test_role_mapping_heavy_hitter" }, { "label": "test_role_mapping_advanced()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L72", "community": 28, "norm_label": "test_role_mapping_advanced()", "id": "tests_test_import_excel_test_role_mapping_advanced" }, { "label": "test_role_mapping_medium()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L76", "community": 28, "norm_label": "test_role_mapping_medium()", "id": "tests_test_import_excel_test_role_mapping_medium" }, { "label": "test_role_mapping_novice()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L80", "community": 28, "norm_label": "test_role_mapping_novice()", "id": "tests_test_import_excel_test_role_mapping_novice" }, { "label": "test_role_mapping_unknown_returns_none()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L84", "community": 28, "norm_label": "test_role_mapping_unknown_returns_none()", "id": "tests_test_import_excel_test_role_mapping_unknown_returns_none" }, { "label": "test_building_alias_stronghold()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L93", "community": 28, "norm_label": "test_building_alias_stronghold()", "id": "tests_test_import_excel_test_building_alias_stronghold" }, { "label": "test_building_alias_mana_shrine_full()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L97", "community": 28, "norm_label": "test_building_alias_mana_shrine_full()", "id": "tests_test_import_excel_test_building_alias_mana_shrine_full" }, { "label": "test_building_alias_mana_short()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L101", "community": 28, "norm_label": "test_building_alias_mana_short()", "id": "tests_test_import_excel_test_building_alias_mana_short" }, { "label": "test_building_alias_magic_short()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L109", "community": 28, "norm_label": "test_building_alias_magic_short()", "id": "tests_test_import_excel_test_building_alias_magic_short" }, { "label": "test_building_alias_defense_tower_full()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L113", "community": 28, "norm_label": "test_building_alias_defense_tower_full()", "id": "tests_test_import_excel_test_building_alias_defense_tower_full" }, { "label": "test_building_alias_defense_short()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L117", "community": 28, "norm_label": "test_building_alias_defense_short()", "id": "tests_test_import_excel_test_building_alias_defense_short" }, { "label": "test_building_alias_post()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L121", "community": 28, "norm_label": "test_building_alias_post()", "id": "tests_test_import_excel_test_building_alias_post" }, { "label": "test_building_alias_unknown_returns_none()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L125", "community": 28, "norm_label": "test_building_alias_unknown_returns_none()", "id": "tests_test_import_excel_test_building_alias_unknown_returns_none" }, { "label": "_make_worksheet()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L134", "community": 48, "norm_label": "_make_worksheet()", "id": "tests_test_import_excel_make_worksheet" }, { "label": "test_parse_members_sheet_basic()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L141", "community": 48, "norm_label": "test_parse_members_sheet_basic()", "id": "tests_test_import_excel_test_parse_members_sheet_basic" }, { "label": "test_parse_members_sheet_skips_empty_rows()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L169", "community": 48, "norm_label": "test_parse_members_sheet_skips_empty_rows()", "id": "tests_test_import_excel_test_parse_members_sheet_skips_empty_rows" }, { "label": "test_parse_members_sheet_strips_whitespace()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L183", "community": 48, "norm_label": "test_parse_members_sheet_strips_whitespace()", "id": "tests_test_import_excel_test_parse_members_sheet_strips_whitespace" }, { "label": "test_parse_members_sheet_post_preferences()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L198", "community": 48, "norm_label": "test_parse_members_sheet_post_preferences()", "id": "tests_test_import_excel_test_parse_members_sheet_post_preferences" }, { "label": "_make_assignments_worksheet()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L237", "community": 58, "norm_label": "_make_assignments_worksheet()", "id": "tests_test_import_excel_make_assignments_worksheet" }, { "label": "test_parse_assignments_sheet_member_assignment()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L252", "community": 58, "norm_label": "test_parse_assignments_sheet_member_assignment()", "id": "tests_test_import_excel_test_parse_assignments_sheet_member_assignment" }, { "label": "test_parse_assignments_sheet_skips_unknown_building_type()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L288", "community": 58, "norm_label": "test_parse_assignments_sheet_skips_unknown_building_type()", "id": "tests_test_import_excel_test_parse_assignments_sheet_skips_unknown_building_type" }, { "label": "test_parse_assignments_sheet_skips_incomplete_rows()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L303", "community": 58, "norm_label": "test_parse_assignments_sheet_skips_incomplete_rows()", "id": "tests_test_import_excel_test_parse_assignments_sheet_skips_incomplete_rows" }, { "label": "test_parse_assignments_sheet_empty_value_is_none()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L315", "community": 58, "norm_label": "test_parse_assignments_sheet_empty_value_is_none()", "id": "tests_test_import_excel_test_parse_assignments_sheet_empty_value_is_none" }, { "label": "test_parse_reserves_sheet_basic()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L331", "community": 48, "norm_label": "test_parse_reserves_sheet_basic()", "id": "tests_test_import_excel_test_parse_reserves_sheet_basic" }, { "label": "test_parse_reserves_sheet_skips_empty_rows()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L354", "community": 48, "norm_label": "test_parse_reserves_sheet_skips_empty_rows()", "id": "tests_test_import_excel_test_parse_reserves_sheet_skips_empty_rows" }, { "label": "test_parse_reserves_sheet_invalid_attack_day_ignored()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L366", "community": 48, "norm_label": "test_parse_reserves_sheet_invalid_attack_day_ignored()", "id": "tests_test_import_excel_test_parse_reserves_sheet_invalid_attack_day_ignored" }, { "label": "test_parse_reserves_sheet_case_insensitive_yes_no()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L372", "community": 48, "norm_label": "test_parse_reserves_sheet_case_insensitive_yes_no()", "id": "tests_test_import_excel_test_parse_reserves_sheet_case_insensitive_yes_no" }, { "label": "test_build_group_structure_stronghold()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L389", "community": 28, "norm_label": "test_build_group_structure_stronghold()", "id": "tests_test_import_excel_test_build_group_structure_stronghold" }, { "label": "test_build_group_structure_mana_shrine()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L395", "community": 87, "norm_label": "test_build_group_structure_mana_shrine()", "id": "tests_test_import_excel_test_build_group_structure_mana_shrine" }, { "label": "test_build_group_structure_magic_tower()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L401", "community": 94, "norm_label": "test_build_group_structure_magic_tower()", "id": "tests_test_import_excel_test_build_group_structure_magic_tower" }, { "label": "test_build_group_structure_defense_tower()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L407", "community": 88, "norm_label": "test_build_group_structure_defense_tower()", "id": "tests_test_import_excel_test_build_group_structure_defense_tower" }, { "label": "test_build_group_structure_post()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L413", "community": 95, "norm_label": "test_build_group_structure_post()", "id": "tests_test_import_excel_test_build_group_structure_post" }, { "label": "test_compute_building_group_structure_basic()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L424", "community": 67, "norm_label": "test_compute_building_group_structure_basic()", "id": "tests_test_import_excel_test_compute_building_group_structure_basic" }, { "label": "test_compute_building_group_structure_post_no_inflation()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L472", "community": 89, "norm_label": "test_compute_building_group_structure_post_no_inflation()", "id": "tests_test_import_excel_test_compute_building_group_structure_post_no_inflation" }, { "label": "test_compute_building_group_structure_filters_by_building_number()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L485", "community": 28, "norm_label": "test_compute_building_group_structure_filters_by_building_number()", "id": "tests_test_import_excel_test_compute_building_group_structure_filters_by_building_number" }, { "label": "test_compute_building_group_structure_mana_shrine_level2()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L540", "community": 72, "norm_label": "test_compute_building_group_structure_mana_shrine_level2()", "id": "tests_test_import_excel_test_compute_building_group_structure_mana_shrine_level2" }, { "label": "test_compute_building_group_structure_magic_tower_level3()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L575", "community": 71, "norm_label": "test_compute_building_group_structure_magic_tower_level3()", "id": "tests_test_import_excel_test_compute_building_group_structure_magic_tower_level3" }, { "label": "test_infer_building_level_stronghold_level1()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L615", "community": 97, "norm_label": "test_infer_building_level_stronghold_level1()", "id": "tests_test_import_excel_test_infer_building_level_stronghold_level1" }, { "label": "test_infer_building_level_mana_shrine_level2()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L635", "community": 90, "norm_label": "test_infer_building_level_mana_shrine_level2()", "id": "tests_test_import_excel_test_infer_building_level_mana_shrine_level2" }, { "label": "test_infer_building_level_magic_tower_level1()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L641", "community": 91, "norm_label": "test_infer_building_level_magic_tower_level1()", "id": "tests_test_import_excel_test_infer_building_level_magic_tower_level1" }, { "label": "test_infer_building_level_defense_tower_level4()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L647", "community": 92, "norm_label": "test_infer_building_level_defense_tower_level4()", "id": "tests_test_import_excel_test_infer_building_level_defense_tower_level4" }, { "label": "test_infer_building_level_post()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L653", "community": 28, "norm_label": "test_infer_building_level_post()", "id": "tests_test_import_excel_test_infer_building_level_post" }, { "label": "test_infer_building_level_fallback()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L659", "community": 96, "norm_label": "test_infer_building_level_fallback()", "id": "tests_test_import_excel_test_infer_building_level_fallback" }, { "label": "test_infer_building_level_unknown_building_type_fallback()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L665", "community": 93, "norm_label": "test_infer_building_level_unknown_building_type_fallback()", "id": "tests_test_import_excel_test_infer_building_level_unknown_building_type_fallback" }, { "label": "_make_posts_config_worksheet()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L676", "community": 59, "norm_label": "_make_posts_config_worksheet()", "id": "tests_test_import_excel_make_posts_config_worksheet" }, { "label": "test_parse_posts_sheet_config_basic()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L689", "community": 59, "norm_label": "test_parse_posts_sheet_config_basic()", "id": "tests_test_import_excel_test_parse_posts_sheet_config_basic" }, { "label": "test_parse_posts_sheet_config_default_priority()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L708", "community": 59, "norm_label": "test_parse_posts_sheet_config_default_priority()", "id": "tests_test_import_excel_test_parse_posts_sheet_config_default_priority" }, { "label": "test_parse_posts_sheet_config_multiple_sections()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L720", "community": 59, "norm_label": "test_parse_posts_sheet_config_multiple_sections()", "id": "tests_test_import_excel_test_parse_posts_sheet_config_multiple_sections" }, { "label": "_make_posts_conditions_worksheet()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L745", "community": 64, "norm_label": "_make_posts_conditions_worksheet()", "id": "tests_test_import_excel_make_posts_conditions_worksheet" }, { "label": "test_parse_posts_sheet_conditions_basic()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L757", "community": 64, "norm_label": "test_parse_posts_sheet_conditions_basic()", "id": "tests_test_import_excel_test_parse_posts_sheet_conditions_basic" }, { "label": "test_parse_posts_sheet_conditions_skips_empty()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L777", "community": 64, "norm_label": "test_parse_posts_sheet_conditions_skips_empty()", "id": "tests_test_import_excel_test_parse_posts_sheet_conditions_skips_empty" }, { "label": "_make_empty_worksheet()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L796", "community": 56, "norm_label": "_make_empty_worksheet()", "id": "tests_test_import_excel_make_empty_worksheet" }, { "label": "_make_workbook_mock()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L803", "community": 56, "norm_label": "_make_workbook_mock()", "id": "tests_test_import_excel_make_workbook_mock" }, { "label": "_make_session_mock()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L839", "community": 56, "norm_label": "_make_session_mock()", "id": "tests_test_import_excel_make_session_mock" }, { "label": "test_import_file_section3c_skipped_when_not_most_recent()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L861", "community": 56, "norm_label": "test_import_file_section3c_skipped_when_not_most_recent()", "id": "tests_test_import_excel_test_import_file_section3c_skipped_when_not_most_recent" }, { "label": "test_import_file_section3c_runs_when_most_recent_but_finds_nothing()", "file_type": "code", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L880", "community": 56, "norm_label": "test_import_file_section3c_runs_when_most_recent_but_finds_nothing()", "id": "tests_test_import_excel_test_import_file_section3c_runs_when_most_recent_but_finds_nothing" }, { "label": "Tests for scripts/import_excel.py parsing logic. All tests are pure-function te", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L1", "community": 28, "norm_label": "tests for scripts/import_excel.py parsing logic. all tests are pure-function te", "id": "tests_test_import_excel_rationale_1" }, { "label": "Extracts a valid date from a canonical MM_DD_YYYY filename.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L29", "community": 85, "norm_label": "extracts a valid date from a canonical mm_dd_yyyy filename.", "id": "tests_test_import_excel_rationale_29" }, { "label": "Extracts date even when the filename has a path prefix passed as string.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L35", "community": 86, "norm_label": "extracts date even when the filename has a path prefix passed as string.", "id": "tests_test_import_excel_rationale_35" }, { "label": "Returns None for a filename that does not match the pattern.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L46", "community": 73, "norm_label": "returns none for a filename that does not match the pattern.", "id": "tests_test_import_excel_rationale_46" }, { "label": "Returns None for a completely unrelated filename.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L52", "community": 73, "norm_label": "returns none for a completely unrelated filename.", "id": "tests_test_import_excel_rationale_52" }, { "label": "Returns None when the extracted date components don't form a valid date.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L58", "community": 28, "norm_label": "returns none when the extracted date components don't form a valid date.", "id": "tests_test_import_excel_rationale_58" }, { "label": "Create a mock openpyxl worksheet that yields the given rows.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L135", "community": 48, "norm_label": "create a mock openpyxl worksheet that yields the given rows.", "id": "tests_test_import_excel_rationale_135" }, { "label": "Parses name, power_level bucket, and role from correct column positions.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L142", "community": 48, "norm_label": "parses name, power_level bucket, and role from correct column positions.", "id": "tests_test_import_excel_rationale_142" }, { "label": "Column E is parsed as a slash-separated list of keyword strings.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L199", "community": 48, "norm_label": "column e is parsed as a slash-separated list of keyword strings.", "id": "tests_test_import_excel_rationale_199" }, { "label": "Empty or None column E results in an empty list.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L212", "community": 48, "norm_label": "empty or none column e results in an empty list.", "id": "tests_test_import_excel_rationale_212" }, { "label": "Build a mock assignments worksheet with the proper two header rows prepended.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L238", "community": 58, "norm_label": "build a mock assignments worksheet with the proper two header rows prepended.", "id": "tests_test_import_excel_rationale_238" }, { "label": "Rows with a None group cell are skipped.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L304", "community": 58, "norm_label": "rows with a none group cell are skipped.", "id": "tests_test_import_excel_rationale_304" }, { "label": "Whitespace-only cell values normalise to None.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L316", "community": 58, "norm_label": "whitespace-only cell values normalise to none.", "id": "tests_test_import_excel_rationale_316" }, { "label": "Stronghold: 4 groups all with 3 slots.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L390", "community": 28, "norm_label": "stronghold: 4 groups all with 3 slots.", "id": "tests_test_import_excel_rationale_390" }, { "label": "Mana shrine: 2 groups both with 3 slots.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L396", "community": 87, "norm_label": "mana shrine: 2 groups both with 3 slots.", "id": "tests_test_import_excel_rationale_396" }, { "label": "Magic tower: 1 group with 2 slots.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L402", "community": 94, "norm_label": "magic tower: 1 group with 2 slots.", "id": "tests_test_import_excel_rationale_402" }, { "label": "Defense tower: 1 group with 2 slots.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L408", "community": 88, "norm_label": "defense tower: 1 group with 2 slots.", "id": "tests_test_import_excel_rationale_408" }, { "label": "Post: 1 group with 1 slot.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L414", "community": 95, "norm_label": "post: 1 group with 1 slot.", "id": "tests_test_import_excel_rationale_414" }, { "label": "Mana shrine with 2 groups: position 3 is an empty trailing sheet column for grou", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L425", "community": 67, "norm_label": "mana shrine with 2 groups: position 3 is an empty trailing sheet column for grou", "id": "tests_test_import_excel_rationale_425" }, { "label": "Magic tower (base_last_slots=2): position 3 is a trailing empty sheet column and", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L445", "community": 71, "norm_label": "magic tower (base_last_slots=2): position 3 is a trailing empty sheet column and", "id": "tests_test_import_excel_rationale_445" }, { "label": "Magic tower at a higher level where position 3 is genuinely filled: slot_cou", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L459", "community": 71, "norm_label": "magic tower at a higher level where position 3 is genuinely filled: slot_cou", "id": "tests_test_import_excel_rationale_459" }, { "label": "Post (base_last_slots=1): positions 2 and 3 are always empty trailing columns.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L473", "community": 89, "norm_label": "post (base_last_slots=1): positions 2 and 3 are always empty trailing columns.", "id": "tests_test_import_excel_rationale_473" }, { "label": "Only assignments for the specified (type, number) pair are counted.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L486", "community": 28, "norm_label": "only assignments for the specified (type, number) pair are counted.", "id": "tests_test_import_excel_rationale_486" }, { "label": "Stronghold level 2 = 16 total slots = 5 full groups (3 slots each) + 1 last grou", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L503", "community": 67, "norm_label": "stronghold level 2 = 16 total slots = 5 full groups (3 slots each) + 1 last grou", "id": "tests_test_import_excel_rationale_503" }, { "label": "Stronghold level 4 = 22 total slots = 7 full groups + 1 last group with 1 slot.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L524", "community": 67, "norm_label": "stronghold level 4 = 22 total slots = 7 full groups + 1 last group with 1 slot.", "id": "tests_test_import_excel_rationale_524" }, { "label": "Mana Shrine level 2 = 7 total slots = 2 full groups + 1 last group with 1 slot.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L541", "community": 72, "norm_label": "mana shrine level 2 = 7 total slots = 2 full groups + 1 last group with 1 slot.", "id": "tests_test_import_excel_rationale_541" }, { "label": "Mana Shrine level 4 = 11 total slots = 3 full groups + 1 last group with 2 slots", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L558", "community": 72, "norm_label": "mana shrine level 4 = 11 total slots = 3 full groups + 1 last group with 2 slots", "id": "tests_test_import_excel_rationale_558" }, { "label": "Magic Tower level 3 = 4 total slots = 1 full group (3 slots) + 1 last group with", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L576", "community": 71, "norm_label": "magic tower level 3 = 4 total slots = 1 full group (3 slots) + 1 last group with", "id": "tests_test_import_excel_rationale_576" }, { "label": "Defense Tower level 4 = 6 total slots = 2 full groups \u00d7 3 slots each. At lev", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L593", "community": 67, "norm_label": "defense tower level 4 = 6 total slots = 2 full groups \u00d7 3 slots each. at lev", "id": "tests_test_import_excel_rationale_593" }, { "label": "12 total positions in a stronghold -> level 1.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L616", "community": 97, "norm_label": "12 total positions in a stronghold -> level 1.", "id": "tests_test_import_excel_rationale_616" }, { "label": "7 total positions in a mana shrine -> level 2.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L636", "community": 90, "norm_label": "7 total positions in a mana shrine -> level 2.", "id": "tests_test_import_excel_rationale_636" }, { "label": "2 total positions in a magic tower -> level 1.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L642", "community": 91, "norm_label": "2 total positions in a magic tower -> level 1.", "id": "tests_test_import_excel_rationale_642" }, { "label": "6 total positions in a defense tower -> level 4.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L648", "community": 92, "norm_label": "6 total positions in a defense tower -> level 4.", "id": "tests_test_import_excel_rationale_648" }, { "label": "1 total position in a post -> level 1.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L654", "community": 28, "norm_label": "1 total position in a post -> level 1.", "id": "tests_test_import_excel_rationale_654" }, { "label": "An unknown total position count falls back to level 1.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L660", "community": 96, "norm_label": "an unknown total position count falls back to level 1.", "id": "tests_test_import_excel_rationale_660" }, { "label": "An unknown building type falls back to level 1.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L666", "community": 93, "norm_label": "an unknown building type falls back to level 1.", "id": "tests_test_import_excel_rationale_666" }, { "label": "Create a mock worksheet for parse_posts_sheet_config. The function calls ws", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L677", "community": 59, "norm_label": "create a mock worksheet for parse_posts_sheet_config. the function calls ws", "id": "tests_test_import_excel_rationale_677" }, { "label": "One high-priority section with two posts: both get priority=3 and correct descri", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L690", "community": 59, "norm_label": "one high-priority section with two posts: both get priority=3 and correct descri", "id": "tests_test_import_excel_rationale_690" }, { "label": "Rows before any priority header default to priority=1 (Low).", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L709", "community": 59, "norm_label": "rows before any priority header default to priority=1 (low).", "id": "tests_test_import_excel_rationale_709" }, { "label": "Posts fall into the correct priority section based on their position.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L721", "community": 59, "norm_label": "posts fall into the correct priority section based on their position.", "id": "tests_test_import_excel_rationale_721" }, { "label": "Create a mock worksheet for parse_posts_sheet_conditions. The function enum", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L746", "community": 64, "norm_label": "create a mock worksheet for parse_posts_sheet_conditions. the function enum", "id": "tests_test_import_excel_rationale_746" }, { "label": "Three post rows with 1\u20133 keywords each are parsed correctly.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L758", "community": 64, "norm_label": "three post rows with 1\u20133 keywords each are parsed correctly.", "id": "tests_test_import_excel_rationale_758" }, { "label": "A row with all-None cells is not included in the result.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L778", "community": 64, "norm_label": "a row with all-none cells is not included in the result.", "id": "tests_test_import_excel_rationale_778" }, { "label": "Worksheet that yields no rows.", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L797", "community": 56, "norm_label": "worksheet that yields no rows.", "id": "tests_test_import_excel_rationale_797" }, { "label": "Minimal openpyxl workbook mock. Members / Assignments / Reserves are empty", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L804", "community": 56, "norm_label": "minimal openpyxl workbook mock. members / assignments / reserves are empty", "id": "tests_test_import_excel_rationale_804" }, { "label": "AsyncMock session whose execute() returns a result whose scalars().all() is [].", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L840", "community": 56, "norm_label": "asyncmock session whose execute() returns a result whose scalars().all() is [].", "id": "tests_test_import_excel_rationale_840" }, { "label": "When is_most_recent=False, section 3c must not run even if the Posts sheet p", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L862", "community": 56, "norm_label": "when is_most_recent=false, section 3c must not run even if the posts sheet p", "id": "tests_test_import_excel_rationale_862" }, { "label": "When is_most_recent=True and the DB has no PostPriorityConfig rows yet, sect", "file_type": "rationale", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L881", "community": 56, "norm_label": "when is_most_recent=true and the db has no postpriorityconfig rows yet, sect", "id": "tests_test_import_excel_rationale_881" }, { "label": "run-graphify-dry-run.ps1", "file_type": "code", "source_file": "scripts/experiments/run-graphify-dry-run.ps1", "source_location": "L1", "community": 140, "norm_label": "run-graphify-dry-run.ps1", "id": "scripts_experiments_run_graphify_dry_run_ps1" } ], "links": [ { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/env.py", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_env_py", "target": "alembic_env_run_migrations_offline" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/env.py", "source_location": "L36", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_env_py", "target": "alembic_env_do_run_migrations" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/env.py", "source_location": "L42", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_env_py", "target": "alembic_env_run_async_migrations" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/env.py", "source_location": "L53", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_env_py", "target": "alembic_env_run_migrations_online" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/alembic/env.py", "source_location": "L54", "weight": 1.0, "confidence_score": 1.0, "source": "alembic_env_run_migrations_online", "target": "alembic_env_run_async_migrations" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0001_initial_schema.py", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0001_initial_schema_py", "target": "versions_0001_initial_schema_upgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0001_initial_schema.py", "source_location": "L273", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0001_initial_schema_py", "target": "versions_0001_initial_schema_downgrade" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0001_initial_schema.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "versions_0001_initial_schema_rationale_1", "target": "backend_alembic_versions_0001_initial_schema_py" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0002_add_preview_columns.py", "source_location": "L18", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0002_add_preview_columns_py", "target": "versions_0001_initial_schema_upgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0003_make_siege_date_nullable.py", "source_location": "L18", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0003_make_siege_date_nullable_py", "target": "versions_0001_initial_schema_upgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0004_add_post_priority_config.py", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0004_add_post_priority_config_py", "target": "versions_0001_initial_schema_upgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0005_add_description_to_post_priority_config.py", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0005_add_description_to_post_priority_config_py", "target": "versions_0001_initial_schema_upgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0006_power_level_and_drop_sort_value.py", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0006_power_level_and_drop_sort_value_py", "target": "versions_0001_initial_schema_upgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0007_fix_group_number_max.py", "source_location": "L20", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0007_fix_group_number_max_py", "target": "versions_0001_initial_schema_upgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0008_add_matched_condition_id_to_position.py", "source_location": "L20", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0008_add_matched_condition_id_to_position_py", "target": "versions_0001_initial_schema_upgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0009_add_discord_id_to_member.py", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0009_add_discord_id_to_member_py", "target": "versions_0001_initial_schema_upgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0010_add_last_seen_changelog_at_to_member.py", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0010_add_last_seen_changelog_at_to_member_py", "target": "versions_0001_initial_schema_upgrade" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0010_add_last_seen_changelog_at_to_member.py", "source_location": "L25", "weight": 1.0, "confidence_score": 1.0, "source": "versions_0010_add_last_seen_changelog_at_to_member_rationale_25", "target": "versions_0001_initial_schema_upgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0011_add_post_suggest_preview.py", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0011_add_post_suggest_preview_py", "target": "versions_0001_initial_schema_upgrade" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0011_add_post_suggest_preview.py", "source_location": "L23", "weight": 1.0, "confidence_score": 1.0, "source": "versions_0011_add_post_suggest_preview_rationale_23", "target": "versions_0001_initial_schema_upgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0002_add_preview_columns.py", "source_location": "L25", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0002_add_preview_columns_py", "target": "versions_0001_initial_schema_downgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0003_make_siege_date_nullable.py", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0003_make_siege_date_nullable_py", "target": "versions_0001_initial_schema_downgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0004_add_post_priority_config.py", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0004_add_post_priority_config_py", "target": "versions_0001_initial_schema_downgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0005_add_description_to_post_priority_config.py", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0005_add_description_to_post_priority_config_py", "target": "versions_0001_initial_schema_downgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0006_power_level_and_drop_sort_value.py", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0006_power_level_and_drop_sort_value_py", "target": "versions_0001_initial_schema_downgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0007_fix_group_number_max.py", "source_location": "L29", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0007_fix_group_number_max_py", "target": "versions_0001_initial_schema_downgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0008_add_matched_condition_id_to_position.py", "source_location": "L32", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0008_add_matched_condition_id_to_position_py", "target": "versions_0001_initial_schema_downgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0009_add_discord_id_to_member.py", "source_location": "L29", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0009_add_discord_id_to_member_py", "target": "versions_0001_initial_schema_downgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0010_add_last_seen_changelog_at_to_member.py", "source_location": "L32", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0010_add_last_seen_changelog_at_to_member_py", "target": "versions_0001_initial_schema_downgrade" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0010_add_last_seen_changelog_at_to_member.py", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "versions_0010_add_last_seen_changelog_at_to_member_rationale_33", "target": "versions_0001_initial_schema_downgrade" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0011_add_post_suggest_preview.py", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "backend_alembic_versions_0011_add_post_suggest_preview_py", "target": "versions_0001_initial_schema_downgrade" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0011_add_post_suggest_preview.py", "source_location": "L34", "weight": 1.0, "confidence_score": 1.0, "source": "versions_0011_add_post_suggest_preview_rationale_34", "target": "versions_0001_initial_schema_downgrade" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0002_add_preview_columns.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "versions_0002_add_preview_columns_rationale_1", "target": "backend_alembic_versions_0002_add_preview_columns_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0003_make_siege_date_nullable.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "versions_0003_make_siege_date_nullable_rationale_1", "target": "backend_alembic_versions_0003_make_siege_date_nullable_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0004_add_post_priority_config.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "versions_0004_add_post_priority_config_rationale_1", "target": "backend_alembic_versions_0004_add_post_priority_config_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0005_add_description_to_post_priority_config.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "versions_0005_add_description_to_post_priority_config_rationale_1", "target": "backend_alembic_versions_0005_add_description_to_post_priority_config_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0006_power_level_and_drop_sort_value.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "versions_0006_power_level_and_drop_sort_value_rationale_1", "target": "backend_alembic_versions_0006_power_level_and_drop_sort_value_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0007_fix_group_number_max.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "versions_0007_fix_group_number_max_rationale_1", "target": "backend_alembic_versions_0007_fix_group_number_max_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0008_add_matched_condition_id_to_position.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "versions_0008_add_matched_condition_id_to_position_rationale_1", "target": "backend_alembic_versions_0008_add_matched_condition_id_to_position_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0009_add_discord_id_to_member.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "versions_0009_add_discord_id_to_member_rationale_1", "target": "backend_alembic_versions_0009_add_discord_id_to_member_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0010_add_last_seen_changelog_at_to_member.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "versions_0010_add_last_seen_changelog_at_to_member_rationale_1", "target": "backend_alembic_versions_0010_add_last_seen_changelog_at_to_member_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/alembic/versions/0011_add_post_suggest_preview.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "versions_0011_add_post_suggest_preview_rationale_1", "target": "backend_alembic_versions_0011_add_post_suggest_preview_py" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/app/config.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_config_py", "target": "app_config_settings" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "bot/app/config.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "app_config_settings", "target": "basesettings" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_config.py", "source_location": "L212", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_config_testsettingsdefaults", "target": "app_config_settings" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_config.py", "source_location": "L212", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_config_testenvironmentrequired", "target": "app_config_settings" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_config.py", "source_location": "L212", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_config_testlifespanauthguard", "target": "app_config_settings" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L14", "weight": 0.8, "confidence_score": 0.5, "source": "backend_tests_test_config_endpoint_py", "target": "app_config_settings" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L14", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_config_endpoint_teststartupsessionsecretguard", "target": "app_config_settings" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/main.py", "source_location": "L47", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_main_py", "target": "app_main_lifespan" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/main.py", "source_location": "L48", "weight": 1.0, "confidence_score": 1.0, "source": "app_main_rationale_48", "target": "app_main_lifespan" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/main.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "app_main_rationale_1", "target": "bot_app_main_py" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/middleware.py", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_middleware_py", "target": "app_middleware_requestloggingmiddleware" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/middleware.py", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "app_middleware_requestloggingmiddleware", "target": "basehttpmiddleware" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/app/middleware.py", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "app_middleware_requestloggingmiddleware", "target": "app_middleware_requestloggingmiddleware_dispatch" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/rate_limit.py", "source_location": "L52", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_rate_limit_py", "target": "app_rate_limit_get_client_ip" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/rate_limit.py", "source_location": "L154", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_rate_limit_py", "target": "app_rate_limit_rate_limit_key" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/rate_limit.py", "source_location": "L179", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_rate_limit_py", "target": "app_rate_limit_parse_retry_after_seconds" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/rate_limit.py", "source_location": "L217", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_rate_limit_py", "target": "app_rate_limit_rate_limit_exceeded_handler" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/rate_limit.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "app_rate_limit_rationale_1", "target": "backend_app_rate_limit_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/rate_limit.py", "source_location": "L176", "weight": 1.0, "confidence_score": 1.0, "source": "app_rate_limit_rate_limit_key", "target": "app_rate_limit_get_client_ip" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/rate_limit.py", "source_location": "L53", "weight": 1.0, "confidence_score": 1.0, "source": "app_rate_limit_rationale_53", "target": "app_rate_limit_get_client_ip" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/rate_limit.py", "source_location": "L155", "weight": 1.0, "confidence_score": 1.0, "source": "app_rate_limit_rationale_155", "target": "app_rate_limit_rate_limit_key" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/rate_limit.py", "source_location": "L267", "weight": 1.0, "confidence_score": 1.0, "source": "app_rate_limit_rate_limit_exceeded_handler", "target": "app_rate_limit_parse_retry_after_seconds" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/rate_limit.py", "source_location": "L180", "weight": 1.0, "confidence_score": 1.0, "source": "app_rate_limit_rationale_180", "target": "app_rate_limit_parse_retry_after_seconds" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/rate_limit.py", "source_location": "L218", "weight": 1.0, "confidence_score": 1.0, "source": "app_rate_limit_rationale_218", "target": "app_rate_limit_rate_limit_exceeded_handler" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/app/telemetry.py", "source_location": "L25", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_telemetry_py", "target": "app_telemetry_configure_telemetry" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/telemetry.py", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "app_telemetry_rationale_32", "target": "app_telemetry_configure_telemetry" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/telemetry.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "app_telemetry_rationale_1", "target": "bot_app_telemetry_py" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/attack_day.py", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_attack_day_py", "target": "api_sieges_previewattackday" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/attack_day.py", "source_location": "L130", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_attack_day_py", "target": "api_sieges_applyattackday" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/attack_day.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_attack_day_py", "target": "api_types_attackdayassignment" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/attack_day.py", "source_location": "L9", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_attack_day_py", "target": "api_types_attackdaypreviewresult" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/attack_day.py", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_attack_day_py", "target": "api_types_attackdayapplyresult" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/attack_day.py", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_attack_day_py", "target": "services_autofill_now_utc" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/attack_day.py", "source_location": "L114", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_attack_day_py", "target": "services_attack_day_build_preview" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_auth_py", "target": "api_auth_autherror" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L41", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_auth_py", "target": "api_auth_exchange_code_for_token" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L59", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_auth_py", "target": "api_auth_get_discord_user" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L70", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_auth_py", "target": "api_auth_check_guild_membership" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L77", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_auth_py", "target": "api_auth_login" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L112", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_auth_py", "target": "api_auth_callback" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L203", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_auth_py", "target": "api_auth_logout" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L210", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_auth_py", "target": "api_auth_me" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L222", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_auth_py", "target": "api_auth_error_redirect" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "api_auth_rationale_1", "target": "backend_app_api_auth_py" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/dependencies/auth.py", "source_location": "L23", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_auth_py", "target": "dependencies_auth_authenticateduser" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/dependencies/auth.py", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_auth_py", "target": "dependencies_auth_get_current_user" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/dependencies/auth.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "dependencies_auth_rationale_1", "target": "backend_app_api_auth_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L28", "weight": 1.0, "confidence_score": 1.0, "source": "api_auth_rationale_28", "target": "api_auth_autherror" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/auth.py", "source_location": "L17", "weight": 0.8, "confidence_score": 0.5, "source": "api_auth_autherror", "target": "dependencies_auth_authenticateduser" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/auth.py", "source_location": "L18", "weight": 0.8, "confidence_score": 0.5, "source": "api_auth_autherror", "target": "api_types_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L137", "weight": 1.0, "confidence_score": 1.0, "source": "api_auth_callback", "target": "api_auth_exchange_code_for_token" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L42", "weight": 1.0, "confidence_score": 1.0, "source": "api_auth_rationale_42", "target": "api_auth_exchange_code_for_token" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L144", "weight": 1.0, "confidence_score": 1.0, "source": "api_auth_callback", "target": "api_auth_get_discord_user" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L60", "weight": 1.0, "confidence_score": 1.0, "source": "api_auth_rationale_60", "target": "api_auth_get_discord_user" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L153", "weight": 1.0, "confidence_score": 1.0, "source": "api_auth_callback", "target": "api_auth_check_guild_membership" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L71", "weight": 1.0, "confidence_score": 1.0, "source": "api_auth_rationale_71", "target": "api_auth_check_guild_membership" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L78", "weight": 1.0, "confidence_score": 1.0, "source": "api_auth_rationale_78", "target": "api_auth_login" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L133", "weight": 1.0, "confidence_score": 1.0, "source": "api_auth_callback", "target": "api_auth_error_redirect" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L118", "weight": 1.0, "confidence_score": 1.0, "source": "api_auth_rationale_118", "target": "api_auth_callback" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L204", "weight": 1.0, "confidence_score": 1.0, "source": "api_auth_rationale_204", "target": "api_auth_logout" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L213", "weight": 1.0, "confidence_score": 1.0, "source": "api_auth_rationale_213", "target": "api_auth_me" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/auth.py", "source_location": "L223", "weight": 1.0, "confidence_score": 1.0, "source": "api_auth_rationale_223", "target": "api_auth_error_redirect" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/autofill.py", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_autofill_py", "target": "api_sieges_previewautofill" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/autofill.py", "source_location": "L122", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_autofill_py", "target": "api_sieges_applyautofill" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/autofill.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_autofill_py", "target": "api_types_autofillassignment" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/autofill.py", "source_location": "L10", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_autofill_py", "target": "api_types_autofillpreviewresult" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/autofill.py", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_autofill_py", "target": "api_types_autofillapplyresult" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/autofill.py", "source_location": "L23", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_autofill_py", "target": "services_autofill_now_utc" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/board.py", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_board_py", "target": "api_board_getboard" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/board.py", "source_location": "L120", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_board_py", "target": "api_posts_updatepost" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/board.py", "source_location": "L169", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_board_py", "target": "api_board_bulk_update_positions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/board.py", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_board_py", "target": "schemas_board_positionboardresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/board.py", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_board_py", "target": "schemas_board_groupboardresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/board.py", "source_location": "L25", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_board_py", "target": "schemas_board_buildingboardresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/board.py", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_board_py", "target": "api_types_boardresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/board.py", "source_location": "L40", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_board_py", "target": "schemas_board_positionupdate" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/board.py", "source_location": "L47", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_board_py", "target": "schemas_board_bulkpositionupdate" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/board.py", "source_location": "L89", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_board_py", "target": "services_board_get_siege_for_position" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/board.py", "source_location": "L97", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_board_py", "target": "services_board_validate_position_state" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/board.py", "source_location": "L112", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_board_py", "target": "services_board_validate_member_active" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/board.py", "source_location": "L227", "weight": 1.0, "confidence_score": 1.0, "source": "api_board_bulk_update_positions", "target": "services_board_validate_position_state" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/board.py", "source_location": "L172", "weight": 1.0, "confidence_score": 1.0, "source": "services_board_rationale_172", "target": "api_board_bulk_update_positions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L176", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_buildings_py", "target": "api_buildings_list_buildings" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L181", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_buildings_py", "target": "api_buildings_add_building" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L270", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_buildings_py", "target": "api_sieges_updatebuilding" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L334", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_buildings_py", "target": "api_sieges_deletebuilding" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L346", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_buildings_py", "target": "api_buildings_add_group" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L397", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_buildings_py", "target": "api_buildings_delete_group" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_buildings_py", "target": "services_buildings_rebuild_groups_for_level" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L114", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_buildings_py", "target": "services_buildings_get_building_type_config" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L128", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_buildings_py", "target": "api_sieges_getbuildings" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L141", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_buildings_py", "target": "services_buildings_require_planning_or_not_locked" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L150", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_buildings_py", "target": "services_buildings_create_groups_and_positions" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/buildings.py", "source_location": "L178", "weight": 1.0, "source": "api_buildings_list_buildings", "target": "components_landingpage_test_list" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L189", "weight": 1.0, "confidence_score": 1.0, "source": "api_buildings_add_building", "target": "services_buildings_get_building_type_config" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L242", "weight": 1.0, "confidence_score": 1.0, "source": "api_buildings_add_building", "target": "services_buildings_create_groups_and_positions" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L356", "weight": 1.0, "confidence_score": 1.0, "source": "api_buildings_add_group", "target": "api_sieges_getbuildings" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/buildings.py", "source_location": "L376", "weight": 1.0, "source": "api_buildings_add_group", "target": "models_building_group_buildinggroup" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L407", "weight": 1.0, "confidence_score": 1.0, "source": "api_buildings_delete_group", "target": "api_sieges_getbuildings" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/changelog.py", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_changelog_py", "target": "api_changelog_require_member_session" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/changelog.py", "source_location": "L43", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_changelog_py", "target": "api_changelog_get_changelog_status" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/changelog.py", "source_location": "L69", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_changelog_py", "target": "api_changelog_markchangelogseen" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/changelog.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "api_changelog_rationale_1", "target": "backend_app_api_changelog_py" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/changelog.py", "source_location": "L8", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_changelog_py", "target": "schemas_changelog_changelogstatusresponse" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/changelog.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_changelog_rationale_1", "target": "backend_app_api_changelog_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/api/changelog.py", "source_location": "L61", "weight": 1.0, "confidence_score": 1.0, "source": "api_changelog_get_changelog_status", "target": "api_changelog_require_member_session" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/api/changelog.py", "source_location": "L89", "weight": 1.0, "confidence_score": 1.0, "source": "api_changelog_markchangelogseen", "target": "api_changelog_require_member_session" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/changelog.py", "source_location": "L25", "weight": 1.0, "confidence_score": 1.0, "source": "api_changelog_rationale_25", "target": "api_changelog_require_member_session" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/changelog.py", "source_location": "L47", "weight": 1.0, "confidence_score": 1.0, "source": "api_changelog_rationale_47", "target": "api_changelog_get_changelog_status" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/api/changelog.py", "source_location": "L65", "weight": 1.0, "source": "api_changelog_get_changelog_status", "target": "schemas_changelog_changelogstatusresponse" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/changelog.py", "source_location": "L73", "weight": 1.0, "confidence_score": 1.0, "source": "api_changelog_rationale_73", "target": "api_changelog_markchangelogseen" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/comparison.py", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_comparison_py", "target": "api_comparison_compare_with_most_recent" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/comparison.py", "source_location": "L31", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_comparison_py", "target": "api_comparison_compare_with_specific" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/comparison.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_comparison_py", "target": "api_types_positionkey" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/comparison.py", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_comparison_py", "target": "api_types_memberdiff" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/comparison.py", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_comparison_py", "target": "api_types_comparisonresult" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/comparison.py", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_comparison_py", "target": "services_comparison_load_assignments" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/comparison.py", "source_location": "L45", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_comparison_py", "target": "services_comparison_load_member_names" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/comparison.py", "source_location": "L52", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_comparison_py", "target": "services_comparison_get_most_recent_completed" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/comparison.py", "source_location": "L63", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_comparison_py", "target": "api_sieges_comparesieges" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/config.py", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_config_py", "target": "api_config_get_config" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/config.py", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "api_config_rationale_12", "target": "api_config_get_config" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/config.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "api_config_rationale_1", "target": "bot_app_config_py" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/discord_sync.py", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_discord_sync_py", "target": "api_members_previewdiscordsync" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/discord_sync.py", "source_location": "L152", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_discord_sync_py", "target": "api_members_applydiscordsync" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/discord_sync.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "api_discord_sync_rationale_1", "target": "backend_app_api_discord_sync_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/discord_sync.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "services_discord_sync_rationale_1", "target": "backend_app_api_discord_sync_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/discord_sync.py", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "api_discord_sync_rationale_17", "target": "api_members_previewdiscordsync" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/discord_sync.py", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "api_discord_sync_rationale_26", "target": "api_members_applydiscordsync" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/health.py", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_health_py", "target": "api_health_health" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L77", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_http_api_py", "target": "api_health_health" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L78", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_rationale_78", "target": "api_health_health" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/images.py", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_images_py", "target": "api_types_generateimagesresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/images.py", "source_location": "L31", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_images_py", "target": "api_images_generate_images" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/images.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "api_images_rationale_1", "target": "backend_app_api_images_py" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/api/images.py", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_generateimagesresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/api/notifications.py", "source_location": "L37", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_notifyresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/api/notifications.py", "source_location": "L44", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_notificationresultitem", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/api/notifications.py", "source_location": "L53", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_notificationbatchresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/api/post_priority_config.py", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "api_post_priority_config_postpriorityresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/api/post_priority_config.py", "source_location": "L20", "weight": 1.0, "confidence_score": 1.0, "source": "api_post_priority_config_postpriorityupdate", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/api/siege_members.py", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "api_siege_members_siegemembercreate", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/attack_day.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_attackdayassignment", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/attack_day.py", "source_location": "L9", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_attackdaypreviewresult", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/attack_day.py", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_attackdayapplyresult", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/autofill.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_autofillassignment", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/autofill.py", "source_location": "L10", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_autofillpreviewresult", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/autofill.py", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_autofillapplyresult", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/board.py", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_board_positionboardresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/board.py", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_board_groupboardresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/board.py", "source_location": "L25", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_board_buildingboardresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/board.py", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_boardresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/board.py", "source_location": "L40", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_board_positionupdate", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/board.py", "source_location": "L47", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_board_bulkpositionupdate", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/building.py", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_building_buildingcreate", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/building.py", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_building_buildingupdate", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/building.py", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_positionresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/building.py", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_buildinggroupresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/building.py", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_buildingresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/building.py", "source_location": "L43", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_building_groupcreate", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/changelog.py", "source_location": "L8", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_changelog_changelogstatusresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/common.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_common_errorresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/comparison.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_positionkey", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/comparison.py", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_memberdiff", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/comparison.py", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_comparisonresult", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/member.py", "source_location": "L8", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_member_memberbase", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/member.py", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_member_memberupdate", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/member.py", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_member_memberpreferencesupdate", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/member.py", "source_location": "L44", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_syncmatch", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/member.py", "source_location": "L53", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_syncpreviewresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/member.py", "source_location": "L59", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_member_syncapply", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/member.py", "source_location": "L65", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_member_syncapplyresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post.py", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_post_postresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post.py", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_post_postupdate", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post.py", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_post_postconditionsupdate", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post_condition.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_post_condition_postconditionresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_postsuggestionentry", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L65", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_postsuggestionpreviewresult", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L79", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_post_suggestions_postsuggestionapplyrequest", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L91", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_post_suggestions_staleentry", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L116", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_postsuggestionapplyresult", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/siege.py", "source_location": "L8", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_siege_siegecreate", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/siege.py", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_siege_siegeupdate", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/siege.py", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_siege_siegeresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/siege_member.py", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_siege_member_siegememberresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/siege_member.py", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_siege_member_siegememberupdate", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/siege_member.py", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_memberpreferencesummary", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/validation.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_validationissue", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/validation.py", "source_location": "L10", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_validationresult", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/version.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_version_versionresponse", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L46", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_notifyrequest", "target": "basemodel" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L51", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_postmessagerequest", "target": "basemodel" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/api/images.py", "source_location": "L73", "weight": 1.0, "confidence_score": 1.0, "source": "api_images_generate_images", "target": "api_types_generateimagesresponse" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/images.py", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "api_images_rationale_35", "target": "api_images_generate_images" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/notifications.ts", "source_location": "L34", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_notifications_py", "target": "api_images_generate_images" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_images_generate_images" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/api/images.py", "source_location": "L58", "weight": 1.0, "source": "api_images_generate_images", "target": "services_image_gen_siegememberwithname" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/lifecycle.py", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_lifecycle_py", "target": "api_sieges_activatesiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/lifecycle.py", "source_location": "L61", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_lifecycle_py", "target": "api_sieges_completesiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/lifecycle.py", "source_location": "L85", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_lifecycle_py", "target": "api_sieges_reopensiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/lifecycle.py", "source_location": "L109", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_lifecycle_py", "target": "api_sieges_clonesiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/members.py", "source_location": "L18", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_members_py", "target": "api_members_list_members" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/members.py", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_members_py", "target": "api_members_createmember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/members.py", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_members_py", "target": "api_members_get_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/members.py", "source_location": "L62", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_members_py", "target": "api_members_updatemember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/members.py", "source_location": "L51", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_members_py", "target": "api_members_delete_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/members.py", "source_location": "L113", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_members_py", "target": "api_members_getmemberpreferences" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/members.py", "source_location": "L81", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_members_py", "target": "services_members_deactivate_member" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/members.py", "source_location": "L24", "weight": 1.0, "source": "api_members_list_members", "target": "components_landingpage_test_list" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/app/services/bot_client.py", "source_location": "L71", "weight": 1.0, "confidence_score": 1.0, "source": "services_bot_client_botclient", "target": "api_members_get_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/bot_client.py", "source_location": "L78", "weight": 1.0, "confidence_score": 1.0, "source": "api_members_get_member", "target": "services_bot_client_botclient_make_client" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/bot_client.py", "source_location": "L62", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_get_guild_member", "target": "api_members_get_member" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/bot_client.py", "source_location": "L72", "weight": 1.0, "confidence_score": 1.0, "source": "services_bot_client_rationale_72", "target": "api_members_get_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/members.py", "source_location": "L63", "weight": 1.0, "confidence_score": 1.0, "source": "api_members_updatemember", "target": "api_members_get_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/members.py", "source_location": "L82", "weight": 1.0, "confidence_score": 1.0, "source": "services_members_deactivate_member", "target": "api_members_get_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/members.py", "source_location": "L116", "weight": 1.0, "confidence_score": 1.0, "source": "api_members_getmemberpreferences", "target": "api_members_get_member" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "bot/app/discord_client.py", "source_location": "L61", "weight": 1.0, "confidence_score": 1.0, "source": "app_discord_client_siegebot", "target": "api_members_get_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/app/discord_client.py", "source_location": "L63", "weight": 1.0, "confidence_score": 1.0, "source": "api_members_get_member", "target": "app_discord_client_siegebot_require_guild" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/discord_client.py", "source_location": "L62", "weight": 1.0, "confidence_score": 1.0, "source": "app_discord_client_rationale_62", "target": "api_members_get_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L127", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_http_api_py", "target": "api_members_get_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L131", "weight": 1.0, "confidence_score": 1.0, "source": "api_members_get_member", "target": "app_http_api_get_bot" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L130", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_rationale_130", "target": "api_members_get_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/members.ts", "source_location": "L10", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_members_ts", "target": "api_members_get_member" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "api_members_get_member" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "api_members_get_member" }, { "relation": "imports", "confidence": "EXTRACTED", "source_file": "frontend/src/api/notifications.ts", "source_location": "L2", "weight": 1.0, "context": "import", "confidence_score": 1.0, "source": "backend_app_api_notifications_py", "target": "api_types_notifyresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/notifications.py", "source_location": "L44", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_notifications_py", "target": "api_types_notificationresultitem" }, { "relation": "imports", "confidence": "EXTRACTED", "source_file": "frontend/src/api/notifications.ts", "source_location": "L2", "weight": 1.0, "context": "import", "confidence_score": 1.0, "source": "backend_app_api_notifications_py", "target": "api_types_notificationbatchresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/notifications.py", "source_location": "L64", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_notifications_py", "target": "api_notifications_send_dms" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/notifications.ts", "source_location": "L8", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_notifications_py", "target": "api_notifications_notifysiegemembers" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/notifications.ts", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_notifications_py", "target": "api_notifications_getnotificationbatch" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/notifications.ts", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_notifications_py", "target": "api_notifications_posttochannel" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/notifications.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "api_notifications_rationale_1", "target": "backend_app_api_notifications_py" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/notifications.ts", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_notifications_py", "target": "frontend_src_api_client_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/notifications.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_notifications_py", "target": "frontend_src_api_types_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/notifications.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_notifications_py", "target": "api_types_generateimagesresponse" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "backend_app_api_notifications_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/notifications.py", "source_location": "L65", "weight": 1.0, "confidence_score": 1.0, "source": "api_notifications_rationale_65", "target": "api_notifications_send_dms" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "bot/app/discord_client.py", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "app_discord_client_siegebot", "target": "api_notifications_send_dms" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/app/discord_client.py", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "api_notifications_send_dms", "target": "app_discord_client_siegebot_require_guild" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/discord_client.py", "source_location": "L23", "weight": 1.0, "confidence_score": 1.0, "source": "app_discord_client_rationale_23", "target": "api_notifications_send_dms" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notifications.py", "source_location": "L1028", "weight": 1.0, "source": "tests_test_notifications_test_send_dms_sets_completed_status_even_when_bot_raises", "target": "api_notifications_send_dms" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/notifications.py", "source_location": "L142", "weight": 1.0, "confidence_score": 1.0, "source": "api_notifications_rationale_142", "target": "api_notifications_notifysiegemembers" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/notifications.py", "source_location": "L310", "weight": 1.0, "confidence_score": 1.0, "source": "api_notifications_rationale_310", "target": "api_notifications_getnotificationbatch" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/notifications.py", "source_location": "L371", "weight": 1.0, "confidence_score": 1.0, "source": "api_notifications_rationale_371", "target": "api_notifications_posttochannel" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/posts.py", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_posts_py", "target": "api_posts_serialize_post" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/posts.py", "source_location": "L36", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_posts_py", "target": "api_posts_list_posts" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/posts.py", "source_location": "L54", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_posts_py", "target": "api_posts_updatepost" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/posts.py", "source_location": "L76", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_posts_py", "target": "api_posts_setpostconditions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/posts.py", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_posts_py", "target": "services_posts_get_siege_or_404" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/posts.py", "source_location": "L23", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_posts_py", "target": "services_posts_get_post_for_siege_or_404" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/api/posts.py", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "api_posts_list_posts", "target": "api_posts_serialize_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/api/posts.py", "source_location": "L46", "weight": 1.0, "confidence_score": 1.0, "source": "api_posts_updatepost", "target": "api_posts_serialize_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/api/posts.py", "source_location": "L60", "weight": 1.0, "confidence_score": 1.0, "source": "api_posts_setpostconditions", "target": "api_posts_serialize_post" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/posts.py", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "api_posts_rationale_13", "target": "api_posts_serialize_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/posts.py", "source_location": "L42", "weight": 1.0, "confidence_score": 1.0, "source": "api_posts_list_posts", "target": "services_posts_get_siege_or_404" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/posts.py", "source_location": "L37", "weight": 1.0, "confidence_score": 1.0, "source": "services_posts_rationale_37", "target": "api_posts_list_posts" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/posts.py", "source_location": "L51", "weight": 1.0, "source": "api_posts_list_posts", "target": "components_landingpage_test_list" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/post_priority_config.py", "source_location": "L7", "weight": 0.8, "confidence_score": 0.5, "source": "api_post_priority_config_postpriorityresponse", "target": "api_posts_postpriorityconfig" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/post_priority_config.py", "source_location": "L7", "weight": 0.8, "confidence_score": 0.5, "source": "api_post_priority_config_postpriorityupdate", "target": "api_posts_postpriorityconfig" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/post_priority_config.py", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "api_posts_postpriorityconfig", "target": "api_post_priority_config_list_post_priorities" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/api/post_priority_config.py", "source_location": "L28", "weight": 1.0, "source": "api_post_priority_config_list_post_priorities", "target": "components_landingpage_test_list" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L75", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_post_suggestions_py", "target": "api_sieges_previewpostsuggestions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L335", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_post_suggestions_py", "target": "api_sieges_applypostsuggestions" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/post_suggestions.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "api_post_suggestions_rationale_1", "target": "backend_app_api_post_suggestions_py" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_post_suggestions_py", "target": "api_types_postsuggestionentry" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L65", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_post_suggestions_py", "target": "api_types_postsuggestionpreviewresult" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L79", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_post_suggestions_py", "target": "schemas_post_suggestions_postsuggestionapplyrequest" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L91", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_post_suggestions_py", "target": "schemas_post_suggestions_staleentry" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L116", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_post_suggestions_py", "target": "api_types_postsuggestionapplyresult" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_post_suggestions_rationale_1", "target": "backend_app_api_post_suggestions_py" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L70", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_post_suggestions_py", "target": "services_autofill_now_utc" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L517", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_post_suggestions_py", "target": "services_post_suggestions_get_target_position" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L537", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_post_suggestions_py", "target": "services_post_suggestions_null_entry" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "services_post_suggestions_rationale_1", "target": "backend_app_api_post_suggestions_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L418", "weight": 1.0, "confidence_score": 1.0, "source": "services_post_suggestions_rationale_418", "target": "backend_app_api_post_suggestions_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L489", "weight": 1.0, "confidence_score": 1.0, "source": "services_post_suggestions_rationale_489", "target": "backend_app_api_post_suggestions_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/post_suggestions.py", "source_location": "L37", "weight": 1.0, "confidence_score": 1.0, "source": "api_post_suggestions_rationale_37", "target": "api_sieges_previewpostsuggestions" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/post_suggestions.py", "source_location": "L62", "weight": 1.0, "confidence_score": 1.0, "source": "api_post_suggestions_rationale_62", "target": "api_sieges_applypostsuggestions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/reference.py", "source_location": "L8", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_reference_py", "target": "api_members_getpostconditions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/reference.py", "source_location": "L18", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_reference_py", "target": "api_sieges_getbuildings" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/reference.py", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_reference_py", "target": "api_members_getmemberroles" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/sieges.py", "source_location": "L49", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_sieges_py", "target": "api_sieges_list_sieges" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/sieges.py", "source_location": "L66", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_sieges_py", "target": "api_sieges_createsiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/sieges.py", "source_location": "L58", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_sieges_py", "target": "api_sieges_get_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/sieges.py", "source_location": "L144", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_sieges_py", "target": "api_sieges_updatesiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/sieges.py", "source_location": "L156", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_sieges_py", "target": "api_sieges_delete_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/sieges.py", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_sieges_py", "target": "services_sieges_scrolls_per_player" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/sieges.py", "source_location": "L28", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_sieges_py", "target": "services_sieges_compute_scroll_count" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/sieges.py", "source_location": "L55", "weight": 1.0, "source": "api_sieges_list_sieges", "target": "components_landingpage_test_list" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/sieges.py", "source_location": "L145", "weight": 1.0, "confidence_score": 1.0, "source": "api_sieges_updatesiege", "target": "api_sieges_get_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/sieges.py", "source_location": "L157", "weight": 1.0, "confidence_score": 1.0, "source": "api_sieges_delete_siege", "target": "api_sieges_get_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/siege_members.py", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "api_siege_members_siegemembercreate" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/siege_members.py", "source_location": "L6", "weight": 0.8, "confidence_score": 0.5, "source": "api_siege_members_siegemembercreate", "target": "api_types_memberpreferencesummary" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/siege_members.py", "source_location": "L6", "weight": 0.8, "confidence_score": 0.5, "source": "api_siege_members_siegemembercreate", "target": "schemas_siege_member_siegememberresponse" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/siege_members.py", "source_location": "L6", "weight": 0.8, "confidence_score": 0.5, "source": "api_siege_members_siegemembercreate", "target": "schemas_siege_member_siegememberupdate" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/siege_members.py", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "api_siege_members_list_siege_members" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/siege_members.py", "source_location": "L39", "weight": 1.0, "source": "api_siege_members_list_siege_members", "target": "components_landingpage_test_list" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/validation.py", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_validation_py", "target": "api_sieges_validatesiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/validation.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_validation_py", "target": "api_types_validationissue" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/validation.py", "source_location": "L10", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_api_validation_py", "target": "api_types_validationresult" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/version.py", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_version", "target": "api_version_read_backend_version" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/api/version.py", "source_location": "L58", "weight": 1.0, "confidence_score": 1.0, "source": "api_version_getversion", "target": "api_version_read_backend_version" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/version.py", "source_location": "L20", "weight": 1.0, "confidence_score": 1.0, "source": "api_version_rationale_20", "target": "api_version_read_backend_version" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/version.py", "source_location": "L42", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_version", "target": "api_version_fetch_bot_version" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/api/version.py", "source_location": "L59", "weight": 1.0, "confidence_score": 1.0, "source": "api_version_getversion", "target": "api_version_fetch_bot_version" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/version.py", "source_location": "L43", "weight": 1.0, "confidence_score": 1.0, "source": "api_version_rationale_43", "target": "api_version_fetch_bot_version" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/api/version.py", "source_location": "L57", "weight": 1.0, "confidence_score": 1.0, "source": "api_version_rationale_57", "target": "api_version_getversion" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/db/base.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_db_base_py", "target": "base" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/db/base.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "base", "target": "declarativebase" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/db/seeds.py", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_db_seeds_py", "target": "db_seeds_seed_post_conditions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/db/seeds.py", "source_location": "L63", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_db_seeds_py", "target": "db_seeds_seed_building_type_config" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/db/seeds.py", "source_location": "L91", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_db_seeds_py", "target": "db_seeds_seed_post_priority_config" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/db/seeds.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "db_seeds_rationale_1", "target": "backend_app_db_seeds_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/db/seeds.py", "source_location": "L8", "weight": 1.0, "confidence_score": 1.0, "source": "db_seeds_rationale_8", "target": "db_seeds_seed_post_conditions" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/scripts/seed_demo.py", "source_location": "L249", "weight": 1.0, "source": "app_main_main", "target": "db_seeds_seed_post_conditions" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_schema.py", "source_location": "L91", "weight": 1.0, "source": "tests_test_schema_test_post_condition_count", "target": "db_seeds_seed_post_conditions" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L65", "weight": 1.0, "source": "tests_test_seed_canonical_run_canonical_seed", "target": "db_seeds_seed_post_conditions" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_seed_demo.py", "source_location": "L73", "weight": 1.0, "source": "tests_test_seed_demo_run_seed", "target": "db_seeds_seed_post_conditions" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/db/seeds.py", "source_location": "L64", "weight": 1.0, "confidence_score": 1.0, "source": "db_seeds_rationale_64", "target": "db_seeds_seed_building_type_config" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/scripts/seed_demo.py", "source_location": "L250", "weight": 1.0, "source": "app_main_main", "target": "db_seeds_seed_building_type_config" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_schema.py", "source_location": "L106", "weight": 1.0, "source": "tests_test_schema_test_building_type_config_count", "target": "db_seeds_seed_building_type_config" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L66", "weight": 1.0, "source": "tests_test_seed_canonical_run_canonical_seed", "target": "db_seeds_seed_building_type_config" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_seed_demo.py", "source_location": "L74", "weight": 1.0, "source": "tests_test_seed_demo_run_seed", "target": "db_seeds_seed_building_type_config" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/db/seeds.py", "source_location": "L92", "weight": 1.0, "confidence_score": 1.0, "source": "db_seeds_rationale_92", "target": "db_seeds_seed_post_priority_config" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/scripts/seed_demo.py", "source_location": "L251", "weight": 1.0, "source": "app_main_main", "target": "db_seeds_seed_post_priority_config" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L67", "weight": 1.0, "source": "tests_test_seed_canonical_run_canonical_seed", "target": "db_seeds_seed_post_priority_config" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_seed_demo.py", "source_location": "L75", "weight": 1.0, "source": "tests_test_seed_demo_run_seed", "target": "db_seeds_seed_post_priority_config" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "scripts/excel-import/import_excel.py", "source_location": "L1085", "weight": 1.0, "source": "excel_import_import_excel_import_file", "target": "db_seeds_seed_post_priority_config" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/db/session.py", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_db_session_py", "target": "db_session_get_db" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/dependencies/auth.py", "source_location": "L45", "weight": 1.0, "confidence_score": 1.0, "source": "dependencies_auth_get_current_user", "target": "dependencies_auth_authenticateduser" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/dependencies/auth.py", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "dependencies_auth_rationale_24", "target": "dependencies_auth_authenticateduser" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/dependencies/auth.py", "source_location": "L19", "weight": 0.8, "confidence_score": 0.5, "source": "dependencies_auth_authenticateduser", "target": "api_types_member" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/dependencies/auth.py", "source_location": "L37", "weight": 1.0, "confidence_score": 1.0, "source": "dependencies_auth_rationale_37", "target": "dependencies_auth_get_current_user" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/building.py", "source_location": "L6", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_building", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/building_group.py", "source_location": "L6", "weight": 0.8, "confidence_score": 0.5, "source": "models_building_group_buildinggroup", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/building_type_config.py", "source_location": "L4", "weight": 0.8, "confidence_score": 0.5, "source": "backend_app_models_building_type_config_py", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/member.py", "source_location": "L7", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_member", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/notification_batch.py", "source_location": "L7", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationbatchresponse", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/notification_batch_result.py", "source_location": "L7", "weight": 0.8, "confidence_score": 0.5, "source": "backend_app_models_notification_batch_result_py", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/position.py", "source_location": "L6", "weight": 0.8, "confidence_score": 0.5, "source": "models_position_position", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/post.py", "source_location": "L6", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_post", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/post_condition.py", "source_location": "L6", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_postcondition", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/post_priority_config.py", "source_location": "L4", "weight": 0.8, "confidence_score": 0.5, "source": "api_posts_postpriorityconfig", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/siege.py", "source_location": "L7", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_siege", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/siege_member.py", "source_location": "L6", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_siegemember", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L26", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_canonical_testcanonicalseedpostconditions", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L26", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_canonical_testcanonicalseedbuildingtypeconfig", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L26", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_canonical_testcanonicalseedpostpriorityconfig", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L25", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemomembers", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L25", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemosiege", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L25", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemobuildingsandpositions", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L25", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemosiegemembers", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L35", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedmember", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L35", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedassignment", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L35", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedreserve", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L35", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconfig", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L35", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconditions", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L35", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_importstats", "target": "base" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L14", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notifyresponse", "target": "models_building_group_buildinggroup" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L14", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationresultitem", "target": "models_building_group_buildinggroup" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L14", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationbatchresponse", "target": "models_building_group_buildinggroup" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/building_group.py", "source_location": "L9", "weight": 0.8, "confidence_score": 0.5, "source": "models_building_group_buildinggroup", "target": "api_types_building" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/position.py", "source_location": "L9", "weight": 0.8, "confidence_score": 0.5, "source": "models_position_position", "target": "models_building_group_buildinggroup" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L38", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedmember", "target": "models_building_group_buildinggroup" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L38", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedassignment", "target": "models_building_group_buildinggroup" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L38", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedreserve", "target": "models_building_group_buildinggroup" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L38", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconfig", "target": "models_building_group_buildinggroup" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L38", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconditions", "target": "models_building_group_buildinggroup" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L38", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_importstats", "target": "models_building_group_buildinggroup" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/buildings.py", "source_location": "L66", "weight": 1.0, "source": "services_buildings_rebuild_groups_for_level", "target": "models_building_group_buildinggroup" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/buildings.py", "source_location": "L160", "weight": 1.0, "source": "services_buildings_create_groups_and_positions", "target": "models_building_group_buildinggroup" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/lifecycle.py", "source_location": "L164", "weight": 1.0, "source": "api_sieges_clonesiege", "target": "models_building_group_buildinggroup" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/sieges.py", "source_location": "L109", "weight": 1.0, "source": "api_sieges_createsiege", "target": "models_building_group_buildinggroup" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/scripts/seed_demo.py", "source_location": "L164", "weight": 1.0, "source": "scripts_seed_demo_seed_buildings_and_positions", "target": "models_building_group_buildinggroup" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_autofill.py", "source_location": "L405", "weight": 1.0, "source": "tests_test_autofill_test_apply_autofill_skips_broken_building_positions", "target": "models_building_group_buildinggroup" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L126", "weight": 1.0, "source": "tests_test_sieges_seed_siege", "target": "models_building_group_buildinggroup" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "scripts/excel-import/import_excel.py", "source_location": "L751", "weight": 1.0, "source": "excel_import_import_excel_create_building_with_groups_and_positions", "target": "models_building_group_buildinggroup" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/building_type_config.py", "source_location": "L5", "weight": 0.8, "confidence_score": 0.5, "source": "backend_app_models_building_type_config_py", "target": "api_types_buildingtype" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L27", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_canonical_testcanonicalseedpostconditions", "target": "backend_app_models_building_type_config_py" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L27", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_canonical_testcanonicalseedbuildingtypeconfig", "target": "backend_app_models_building_type_config_py" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L27", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_canonical_testcanonicalseedpostpriorityconfig", "target": "backend_app_models_building_type_config_py" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/enums.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_enums_py", "target": "api_types_siegestatus" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/enums.py", "source_location": "L10", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_enums_py", "target": "api_types_buildingtype" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/enums.py", "source_location": "L18", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_enums_py", "target": "api_types_memberrole" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/enums.py", "source_location": "L25", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_enums_py", "target": "models_enums_powerlevel" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/enums.py", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_enums_py", "target": "models_enums_notificationbatchstatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L15", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notifyresponse", "target": "models_enums_notificationbatchstatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L15", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationresultitem", "target": "models_enums_notificationbatchstatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/notification_batch.py", "source_location": "L8", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationbatchresponse", "target": "models_enums_notificationbatchstatus" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/member.py", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_member_py", "target": "api_types_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/member.py", "source_location": "L8", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_member_py", "target": "schemas_member_memberbase" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/member.py", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_member_py", "target": "schemas_member_membercreate" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/member.py", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_member_py", "target": "schemas_member_memberupdate" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/member.py", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_member_py", "target": "schemas_member_memberresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/member.py", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_member_py", "target": "schemas_member_memberpreferencesupdate" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/member.py", "source_location": "L44", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_member_py", "target": "api_types_syncmatch" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/member.py", "source_location": "L53", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_member_py", "target": "api_types_syncpreviewresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/member.py", "source_location": "L59", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_member_py", "target": "schemas_member_syncapply" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/member.py", "source_location": "L65", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_member_py", "target": "schemas_member_syncapplyresponse" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L17", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notifyresponse", "target": "backend_app_models_notification_batch_result_py" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L17", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationresultitem", "target": "backend_app_models_notification_batch_result_py" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/notification_batch_result.py", "source_location": "L10", "weight": 0.8, "confidence_score": 0.5, "source": "backend_app_models_notification_batch_result_py", "target": "api_types_notificationbatchresponse" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/api/notifications.py", "source_location": "L270", "weight": 1.0, "source": "api_notifications_notifysiegemembers", "target": "backend_app_models_notification_batch_result_py" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/position.py", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_position_py", "target": "models_position_position" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L787", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "models_position_position" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L657", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "models_position_position" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L18", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notifyresponse", "target": "models_position_position" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L18", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationresultitem", "target": "models_position_position" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L18", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationbatchresponse", "target": "models_position_position" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/position.py", "source_location": "L10", "weight": 0.8, "confidence_score": 0.5, "source": "models_position_position", "target": "api_types_member" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/position.py", "source_location": "L11", "weight": 0.8, "confidence_score": 0.5, "source": "models_position_position", "target": "api_types_postcondition" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L29", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemomembers", "target": "models_position_position" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L29", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemosiege", "target": "models_position_position" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L29", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemobuildingsandpositions", "target": "models_position_position" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L29", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemosiegemembers", "target": "models_position_position" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L41", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedmember", "target": "models_position_position" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L41", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedassignment", "target": "models_position_position" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L41", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedreserve", "target": "models_position_position" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L41", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconfig", "target": "models_position_position" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L41", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconditions", "target": "models_position_position" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L41", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_importstats", "target": "models_position_position" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/post.py", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_post_py", "target": "api_types_post" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post.py", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_post_py", "target": "schemas_post_postresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post.py", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_post_py", "target": "schemas_post_postupdate" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post.py", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_post_py", "target": "schemas_post_postconditionsupdate" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/siege.py", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_siege_py", "target": "api_types_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/siege.py", "source_location": "L8", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_siege_py", "target": "schemas_siege_siegecreate" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/siege.py", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_siege_py", "target": "schemas_siege_siegeupdate" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/siege.py", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_models_siege_py", "target": "schemas_siege_siegeresponse" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/board.py", "source_location": "L3", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_board_positionboardresponse", "target": "api_types_buildingtype" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/board.py", "source_location": "L3", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_board_groupboardresponse", "target": "api_types_buildingtype" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/board.py", "source_location": "L3", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_board_buildingboardresponse", "target": "api_types_buildingtype" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/board.py", "source_location": "L3", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_board_positionupdate", "target": "api_types_buildingtype" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/board.py", "source_location": "L3", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_board_bulkpositionupdate", "target": "api_types_buildingtype" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/building.py", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_building", "target": "schemas_building_buildingcreate" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/building.py", "source_location": "L3", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_building_buildingcreate", "target": "api_types_buildingtype" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_buildings.py", "source_location": "L451", "weight": 1.0, "source": "tests_test_buildings_test_add_building_post_uses_priority_config", "target": "schemas_building_buildingcreate" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/building.py", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_building", "target": "schemas_building_buildingupdate" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/building.py", "source_location": "L3", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_building_buildingupdate", "target": "api_types_buildingtype" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_buildings.py", "source_location": "L151", "weight": 1.0, "source": "tests_test_buildings_test_update_building_unbreak_restores_groups", "target": "schemas_building_buildingupdate" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_buildings.py", "source_location": "L223", "weight": 1.0, "source": "tests_test_buildings_test_update_building_unbreak_restores_last_slot_count", "target": "schemas_building_buildingupdate" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_buildings.py", "source_location": "L307", "weight": 1.0, "source": "tests_test_buildings_test_update_building_break_then_unbreak_roundtrip", "target": "schemas_building_buildingupdate" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/building.py", "source_location": "L43", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_building", "target": "schemas_building_groupcreate" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/building.py", "source_location": "L3", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_building_groupcreate", "target": "api_types_buildingtype" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/changelog.py", "source_location": "L9", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_changelog_rationale_9", "target": "schemas_changelog_changelogstatusresponse" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/api/changelog.py", "source_location": "L95", "weight": 1.0, "source": "api_changelog_markchangelogseen", "target": "schemas_changelog_changelogstatusresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/common.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_schemas_common_py", "target": "schemas_common_errorresponse" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/member.py", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_member_membercreate", "target": "schemas_member_memberbase" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/member.py", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_member_memberresponse", "target": "schemas_member_memberbase" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/member.py", "source_location": "L5", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_member_memberbase", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/member.py", "source_location": "L5", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_member_membercreate", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/member.py", "source_location": "L5", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_member_memberupdate", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/member.py", "source_location": "L5", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_member_memberresponse", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/member.py", "source_location": "L5", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_member_memberpreferencesupdate", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/member.py", "source_location": "L5", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_member_syncapply", "target": "api_types_memberrole" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_discord_sync.py", "source_location": "L464", "weight": 1.0, "source": "tests_test_discord_sync_test_service_apply_updates_discord_fields", "target": "schemas_member_syncapply" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_discord_sync.py", "source_location": "L490", "weight": 1.0, "source": "tests_test_discord_sync_test_service_apply_unknown_member_id_skipped", "target": "schemas_member_syncapply" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/member.py", "source_location": "L5", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_member_syncapplyresponse", "target": "api_types_memberrole" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/discord_sync.py", "source_location": "L158", "weight": 1.0, "source": "api_members_applydiscordsync", "target": "schemas_member_syncapplyresponse" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_discord_sync.py", "source_location": "L166", "weight": 1.0, "source": "tests_test_discord_sync_test_apply_updates_matched_members", "target": "schemas_member_syncapplyresponse" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_discord_sync.py", "source_location": "L187", "weight": 1.0, "source": "tests_test_discord_sync_test_apply_with_empty_list_returns_zero", "target": "schemas_member_syncapplyresponse" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_discord_sync.py", "source_location": "L203", "weight": 1.0, "source": "tests_test_discord_sync_test_apply_with_unknown_member_id_skips_gracefully", "target": "schemas_member_syncapplyresponse" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/post.py", "source_location": "L3", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_post_postresponse", "target": "schemas_post_condition_postconditionresponse" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/post.py", "source_location": "L3", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_post_postupdate", "target": "schemas_post_condition_postconditionresponse" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/post.py", "source_location": "L3", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_post_postconditionsupdate", "target": "schemas_post_condition_postconditionresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post_condition.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_postcondition", "target": "schemas_post_condition_postconditionresponse" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/siege_member.py", "source_location": "L3", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_siege_member_siegememberresponse", "target": "schemas_post_condition_postconditionresponse" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/siege_member.py", "source_location": "L3", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_siege_member_siegememberupdate", "target": "schemas_post_condition_postconditionresponse" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/siege_member.py", "source_location": "L3", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_memberpreferencesummary", "target": "schemas_post_condition_postconditionresponse" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L80", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_post_suggestions_rationale_80", "target": "schemas_post_suggestions_postsuggestionapplyrequest" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L921", "weight": 1.0, "source": "tests_test_post_suggestions_apply", "target": "schemas_post_suggestions_postsuggestionapplyrequest" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1170", "weight": 1.0, "source": "tests_test_post_suggestions_test_apply_completed_siege_raises_400", "target": "schemas_post_suggestions_postsuggestionapplyrequest" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L265", "weight": 1.0, "source": "tests_test_post_suggestions_integration_test_apply_persists_matched_condition_id_to_db", "target": "schemas_post_suggestions_postsuggestionapplyrequest" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L294", "weight": 1.0, "source": "tests_test_post_suggestions_integration_test_apply_subset_leaves_unselected_positions_unchanged", "target": "schemas_post_suggestions_postsuggestionapplyrequest" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L358", "weight": 1.0, "source": "tests_test_post_suggestions_integration_test_member_changed_stale_reason_on_concurrent_apply", "target": "schemas_post_suggestions_postsuggestionapplyrequest" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L92", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_post_suggestions_rationale_92", "target": "schemas_post_suggestions_staleentry" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/post_suggestions.py", "source_location": "L454", "weight": 1.0, "source": "api_sieges_applypostsuggestions", "target": "schemas_post_suggestions_staleentry" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_post_suggestions_rationale_13", "target": "api_types_postsuggestionentry" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L66", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_post_suggestions_rationale_66", "target": "api_types_postsuggestionpreviewresult" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/post_suggestions.py", "source_location": "L117", "weight": 1.0, "confidence_score": 1.0, "source": "schemas_post_suggestions_rationale_117", "target": "api_types_postsuggestionapplyresult" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/siege.py", "source_location": "L5", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_siege_siegecreate", "target": "api_types_siegestatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/siege.py", "source_location": "L5", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_siege_siegeupdate", "target": "api_types_siegestatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/siege.py", "source_location": "L5", "weight": 0.8, "confidence_score": 0.5, "source": "schemas_siege_siegeresponse", "target": "api_types_siegestatus" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/siege_member.py", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "schemas_siege_member_siegememberresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/siege_member.py", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "schemas_siege_member_resolve_member_fields" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/siege_member.py", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "schemas_siege_member_siegememberupdate" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/version.py", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_version", "target": "schemas_version_versionresponse" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/api/version.py", "source_location": "L63", "weight": 1.0, "source": "api_version_getversion", "target": "schemas_version_versionresponse" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/attack_day.py", "source_location": "L72", "weight": 1.0, "confidence_score": 1.0, "source": "api_sieges_previewattackday", "target": "services_attack_day_build_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/attack_day.py", "source_location": "L120", "weight": 1.0, "confidence_score": 1.0, "source": "services_attack_day_build_preview", "target": "services_autofill_now_utc" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/attack_day.py", "source_location": "L145", "weight": 1.0, "confidence_score": 1.0, "source": "api_sieges_applyattackday", "target": "services_autofill_now_utc" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/autofill.py", "source_location": "L111", "weight": 1.0, "confidence_score": 1.0, "source": "api_sieges_previewautofill", "target": "services_autofill_now_utc" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/autofill.py", "source_location": "L136", "weight": 1.0, "confidence_score": 1.0, "source": "api_sieges_applyautofill", "target": "services_autofill_now_utc" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L324", "weight": 1.0, "confidence_score": 1.0, "source": "api_sieges_previewpostsuggestions", "target": "services_autofill_now_utc" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L385", "weight": 1.0, "confidence_score": 1.0, "source": "api_sieges_applypostsuggestions", "target": "services_autofill_now_utc" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L71", "weight": 1.0, "confidence_score": 1.0, "source": "services_post_suggestions_rationale_71", "target": "services_autofill_now_utc" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/board.py", "source_location": "L151", "weight": 1.0, "confidence_score": 1.0, "source": "api_posts_updatepost", "target": "services_board_validate_position_state" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/board.py", "source_location": "L98", "weight": 1.0, "confidence_score": 1.0, "source": "services_board_rationale_98", "target": "services_board_validate_position_state" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/board.py", "source_location": "L154", "weight": 1.0, "confidence_score": 1.0, "source": "api_posts_updatepost", "target": "services_board_validate_member_active" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/board.py", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "services_board_rationale_16", "target": "api_board_getboard" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/board.py", "source_location": "L123", "weight": 1.0, "confidence_score": 1.0, "source": "services_board_rationale_123", "target": "api_posts_updatepost" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/app/services/bot_client.py", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "services_bot_client_botclient", "target": "services_bot_client_botclient_make_client" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/app/services/bot_client.py", "source_location": "L18", "weight": 1.0, "confidence_score": 1.0, "source": "services_bot_client_botclient", "target": "app_http_api_notify" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/app/services/bot_client.py", "source_location": "L31", "weight": 1.0, "confidence_score": 1.0, "source": "services_bot_client_botclient", "target": "app_http_api_post_message" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/app/services/bot_client.py", "source_location": "L44", "weight": 1.0, "confidence_score": 1.0, "source": "services_bot_client_botclient", "target": "app_http_api_post_image" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/bot_client.py", "source_location": "L9", "weight": 1.0, "confidence_score": 1.0, "source": "services_bot_client_rationale_1", "target": "services_bot_client_botclient" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_bot_client.py", "source_location": "L54", "weight": 1.0, "source": "tests_test_bot_client_test_notify_returns_false_on_http_error", "target": "services_bot_client_botclient" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_bot_client.py", "source_location": "L63", "weight": 1.0, "source": "tests_test_bot_client_test_post_message_returns_false_on_http_error", "target": "services_bot_client_botclient" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_bot_client.py", "source_location": "L72", "weight": 1.0, "source": "tests_test_bot_client_test_post_image_returns_none_on_http_error", "target": "services_bot_client_botclient" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_bot_client.py", "source_location": "L81", "weight": 1.0, "source": "tests_test_bot_client_test_get_members_returns_empty_on_http_error", "target": "services_bot_client_botclient" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_bot_client.py", "source_location": "L91", "weight": 1.0, "source": "tests_test_bot_client_test_notify_returns_true_on_success", "target": "services_bot_client_botclient" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_bot_client.py", "source_location": "L118", "weight": 1.0, "source": "tests_test_bot_client_test_get_member_returns_not_member", "target": "services_bot_client_botclient" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_bot_client.py", "source_location": "L128", "weight": 1.0, "source": "tests_test_bot_client_test_get_member_raises_on_connection_error", "target": "services_bot_client_botclient" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_bot_client.py", "source_location": "L146", "weight": 1.0, "source": "tests_test_bot_client_test_get_member_raises_on_503", "target": "services_bot_client_botclient" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/bot_client.py", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_notify", "target": "services_bot_client_botclient_make_client" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/bot_client.py", "source_location": "L34", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_post_message", "target": "services_bot_client_botclient_make_client" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/bot_client.py", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "services_bot_client_rationale_19", "target": "app_http_api_notify" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/bot_client.py", "source_location": "L32", "weight": 1.0, "confidence_score": 1.0, "source": "services_bot_client_rationale_32", "target": "app_http_api_post_message" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/bot_client.py", "source_location": "L45", "weight": 1.0, "confidence_score": 1.0, "source": "services_bot_client_rationale_45", "target": "app_http_api_post_image" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L321", "weight": 1.0, "confidence_score": 1.0, "source": "api_sieges_updatebuilding", "target": "services_buildings_rebuild_groups_for_level" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L23", "weight": 1.0, "confidence_score": 1.0, "source": "services_buildings_rationale_23", "target": "services_buildings_rebuild_groups_for_level" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/buildings.py", "source_location": "L31", "weight": 1.0, "source": "services_buildings_rebuild_groups_for_level", "target": "services_building_capacity_get_team_count" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/buildings.py", "source_location": "L45", "weight": 1.0, "source": "services_buildings_rebuild_groups_for_level", "target": "components_landingpage_test_list" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L290", "weight": 1.0, "confidence_score": 1.0, "source": "api_sieges_updatebuilding", "target": "services_buildings_get_building_type_config" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L91", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_integration_py", "target": "services_buildings_get_building_type_config" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L102", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_default_configs", "target": "services_buildings_get_building_type_config" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L142", "weight": 1.0, "confidence_score": 1.0, "source": "services_buildings_rationale_142", "target": "services_buildings_require_planning_or_not_locked" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L156", "weight": 1.0, "confidence_score": 1.0, "source": "services_buildings_rationale_156", "target": "services_buildings_create_groups_and_positions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/building_capacity.py", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_services_building_capacity_py", "target": "services_building_capacity_get_team_count" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/building_capacity.py", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "services_building_capacity_rationale_14", "target": "services_building_capacity_get_team_count" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/sieges.py", "source_location": "L46", "weight": 1.0, "source": "services_sieges_compute_scroll_count", "target": "services_building_capacity_get_team_count" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/comparison.py", "source_location": "L66", "weight": 1.0, "confidence_score": 1.0, "source": "api_sieges_comparesieges", "target": "services_comparison_load_assignments" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/comparison.py", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "services_comparison_rationale_14", "target": "services_comparison_load_assignments" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_comparison.py", "source_location": "L297", "weight": 1.0, "source": "tests_test_comparison_test_inactive_member_excluded_from_comparison", "target": "services_comparison_load_assignments" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/comparison.py", "source_location": "L70", "weight": 1.0, "confidence_score": 1.0, "source": "api_sieges_comparesieges", "target": "services_comparison_load_member_names" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_comparison.py", "source_location": "L376", "weight": 1.0, "source": "tests_test_comparison_test_get_most_recent_completed_returns_none", "target": "services_comparison_get_most_recent_completed" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/discord_sync.py", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "services_discord_sync_rationale_12", "target": "api_members_previewdiscordsync" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/discord_sync.py", "source_location": "L153", "weight": 1.0, "confidence_score": 1.0, "source": "services_discord_sync_rationale_153", "target": "api_members_applydiscordsync" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/image_gen.py", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_services_image_gen_py", "target": "services_image_gen_siegememberwithname" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/image_gen.py", "source_location": "L61", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_services_image_gen_py", "target": "services_image_gen_build_assignments_html" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/image_gen.py", "source_location": "L233", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_services_image_gen_py", "target": "services_image_gen_build_reserves_html" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/image_gen.py", "source_location": "L331", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_services_image_gen_py", "target": "services_image_gen_render_html_to_png" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/image_gen.py", "source_location": "L350", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_services_image_gen_py", "target": "services_image_gen_generate_assignments_image" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/image_gen.py", "source_location": "L360", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_services_image_gen_py", "target": "services_image_gen_generate_reserves_image" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/image_gen.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "services_image_gen_rationale_1", "target": "backend_app_services_image_gen_py" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/images.py", "source_location": "L16", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_generateimagesresponse", "target": "services_image_gen_siegememberwithname" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L24", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notifyresponse", "target": "services_image_gen_siegememberwithname" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L24", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationresultitem", "target": "services_image_gen_siegememberwithname" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L24", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationbatchresponse", "target": "services_image_gen_siegememberwithname" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/services/image_gen.py", "source_location": "L5", "weight": 0.8, "confidence_score": 0.5, "source": "services_image_gen_siegememberwithname", "target": "api_types_buildingtype" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/services/image_gen.py", "source_location": "L5", "weight": 0.8, "confidence_score": 0.5, "source": "services_image_gen_siegememberwithname", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/services/image_gen.py", "source_location": "L6", "weight": 0.8, "confidence_score": 0.5, "source": "services_image_gen_siegememberwithname", "target": "api_types_boardresponse" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/api/notifications.py", "source_location": "L399", "weight": 1.0, "source": "api_notifications_posttochannel", "target": "services_image_gen_siegememberwithname" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L75", "weight": 1.0, "source": "tests_test_auth_make_member", "target": "services_image_gen_siegememberwithname" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/image_gen.py", "source_location": "L356", "weight": 1.0, "confidence_score": 1.0, "source": "services_image_gen_generate_assignments_image", "target": "services_image_gen_build_assignments_html" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/image_gen.py", "source_location": "L66", "weight": 1.0, "confidence_score": 1.0, "source": "services_image_gen_rationale_66", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L90", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_contains_title", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L100", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_contains_building_type", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L110", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_reserve_cell", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L119", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_disabled_cell", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L125", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_empty_board", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L136", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_all_building_types_colored", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L237", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_group_header_present", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L248", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_group_header_before_members", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L265", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_single_row_per_group", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L297", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_buildings_side_by_side", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L321", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_heavy_hitter_color", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L334", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_no_role_map_fallback", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L345", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_role_color_on_span_not_background", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L416", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_role_colors_match_ui", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L450", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_no_level_in_header", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L463", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_broken_building_no_level", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L473", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_building_number_in_thead", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L505", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_post_flat_table", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L535", "weight": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_post_reserve_and_disabled", "target": "services_image_gen_build_assignments_html" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/image_gen.py", "source_location": "L365", "weight": 1.0, "confidence_score": 1.0, "source": "services_image_gen_generate_reserves_image", "target": "services_image_gen_build_reserves_html" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/image_gen.py", "source_location": "L237", "weight": 1.0, "confidence_score": 1.0, "source": "services_image_gen_rationale_237", "target": "services_image_gen_build_reserves_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L151", "weight": 1.0, "source": "tests_test_image_gen_test_build_reserves_html_contains_title", "target": "services_image_gen_build_reserves_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L158", "weight": 1.0, "source": "tests_test_image_gen_test_build_reserves_html_contains_member", "target": "services_image_gen_build_reserves_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L358", "weight": 1.0, "source": "tests_test_image_gen_test_build_reserves_html_day1_color", "target": "services_image_gen_build_reserves_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L180", "weight": 1.0, "source": "tests_test_image_gen_test_build_reserves_html_no_role_column", "target": "services_image_gen_build_reserves_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L366", "weight": 1.0, "source": "tests_test_image_gen_test_build_reserves_html_novice_color", "target": "services_image_gen_build_reserves_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L383", "weight": 1.0, "source": "tests_test_image_gen_test_build_reserves_html_fallback_color", "target": "services_image_gen_build_reserves_html" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L433", "weight": 1.0, "source": "tests_test_image_gen_test_build_reserves_html_role_colors_match_ui", "target": "services_image_gen_build_reserves_html" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/image_gen.py", "source_location": "L357", "weight": 1.0, "confidence_score": 1.0, "source": "services_image_gen_generate_assignments_image", "target": "services_image_gen_render_html_to_png" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/image_gen.py", "source_location": "L366", "weight": 1.0, "confidence_score": 1.0, "source": "services_image_gen_generate_reserves_image", "target": "services_image_gen_render_html_to_png" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/image_gen.py", "source_location": "L332", "weight": 1.0, "confidence_score": 1.0, "source": "services_image_gen_rationale_332", "target": "services_image_gen_render_html_to_png" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/image_gen.py", "source_location": "L355", "weight": 1.0, "confidence_score": 1.0, "source": "services_image_gen_rationale_355", "target": "services_image_gen_generate_assignments_image" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L201", "weight": 1.0, "source": "tests_test_image_gen_test_generate_assignments_image_calls_render", "target": "services_image_gen_generate_assignments_image" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/image_gen.py", "source_location": "L364", "weight": 1.0, "confidence_score": 1.0, "source": "services_image_gen_rationale_364", "target": "services_image_gen_generate_reserves_image" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_image_gen.py", "source_location": "L218", "weight": 1.0, "source": "tests_test_image_gen_test_generate_reserves_image_calls_render", "target": "services_image_gen_generate_reserves_image" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/lifecycle.py", "source_location": "L18", "weight": 1.0, "confidence_score": 1.0, "source": "services_lifecycle_rationale_18", "target": "api_sieges_activatesiege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/lifecycle.py", "source_location": "L62", "weight": 1.0, "confidence_score": 1.0, "source": "services_lifecycle_rationale_62", "target": "api_sieges_completesiege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/lifecycle.py", "source_location": "L86", "weight": 1.0, "confidence_score": 1.0, "source": "services_lifecycle_rationale_86", "target": "api_sieges_reopensiege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/lifecycle.py", "source_location": "L110", "weight": 1.0, "confidence_score": 1.0, "source": "services_lifecycle_rationale_110", "target": "api_sieges_clonesiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L60", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_services_notification_message_py", "target": "services_notification_message_positioninfo" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L74", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_services_notification_message_py", "target": "services_notification_message_position_sort_key" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L84", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_services_notification_message_py", "target": "services_notification_message_position_label" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L110", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_services_notification_message_py", "target": "services_notification_message_positions_to_key_set" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L117", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_services_notification_message_py", "target": "services_notification_message_positions_from_keys" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L126", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_services_notification_message_py", "target": "services_notification_message_build_section" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L153", "weight": 1.0, "confidence_score": 1.0, "source": "backend_app_services_notification_message_py", "target": "services_notification_message_build_member_notification_message" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "services_notification_message_rationale_1", "target": "backend_app_services_notification_message_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L61", "weight": 1.0, "confidence_score": 1.0, "source": "services_notification_message_rationale_61", "target": "services_notification_message_positioninfo" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L25", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notifyresponse", "target": "services_notification_message_positioninfo" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L25", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationresultitem", "target": "services_notification_message_positioninfo" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L25", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationbatchresponse", "target": "services_notification_message_positioninfo" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/services/notification_message.py", "source_location": "L5", "weight": 0.8, "confidence_score": 0.5, "source": "services_notification_message_positioninfo", "target": "api_types_buildingtype" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/api/notifications.py", "source_location": "L214", "weight": 1.0, "source": "api_notifications_notifysiegemembers", "target": "services_notification_message_positioninfo" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L32", "weight": 1.0, "source": "tests_test_notification_message_stronghold_pos", "target": "services_notification_message_positioninfo" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L41", "weight": 1.0, "source": "tests_test_notification_message_defense_tower_pos", "target": "services_notification_message_positioninfo" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L50", "weight": 1.0, "source": "tests_test_notification_message_post_pos", "target": "services_notification_message_positioninfo" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L75", "weight": 1.0, "confidence_score": 1.0, "source": "services_notification_message_rationale_75", "target": "services_notification_message_position_sort_key" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L142", "weight": 1.0, "confidence_score": 1.0, "source": "services_notification_message_build_section", "target": "services_notification_message_position_label" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L85", "weight": 1.0, "confidence_score": 1.0, "source": "services_notification_message_rationale_85", "target": "services_notification_message_position_label" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L196", "weight": 1.0, "confidence_score": 1.0, "source": "services_notification_message_build_member_notification_message", "target": "services_notification_message_positions_to_key_set" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L111", "weight": 1.0, "confidence_score": 1.0, "source": "services_notification_message_rationale_111", "target": "services_notification_message_positions_to_key_set" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L205", "weight": 1.0, "confidence_score": 1.0, "source": "services_notification_message_build_member_notification_message", "target": "services_notification_message_positions_from_keys" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L118", "weight": 1.0, "confidence_score": 1.0, "source": "services_notification_message_rationale_118", "target": "services_notification_message_positions_from_keys" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L213", "weight": 1.0, "confidence_score": 1.0, "source": "services_notification_message_build_member_notification_message", "target": "services_notification_message_build_section" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L131", "weight": 1.0, "confidence_score": 1.0, "source": "services_notification_message_rationale_131", "target": "services_notification_message_build_section" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/notification_message.py", "source_location": "L161", "weight": 1.0, "confidence_score": 1.0, "source": "services_notification_message_rationale_161", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/api/notifications.py", "source_location": "L262", "weight": 1.0, "source": "api_notifications_notifysiegemembers", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L66", "weight": 1.0, "source": "tests_test_notification_message_test_no_previous_siege_all_current_in_set_at", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L87", "weight": 1.0, "source": "tests_test_notification_message_test_empty_sections_omitted_all_no_change", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L111", "weight": 1.0, "source": "tests_test_notification_message_test_full_diff_three_sections", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L151", "weight": 1.0, "source": "tests_test_notification_message_test_header_contains_siege_date_and_member_settings", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L171", "weight": 1.0, "source": "tests_test_notification_message_test_none_fields_display_as_unknown", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L185", "weight": 1.0, "source": "tests_test_notification_message_test_false_reserve_set_displays_no", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L204", "weight": 1.0, "source": "tests_test_notification_message_test_single_building_type_omits_building_number", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L225", "weight": 1.0, "source": "tests_test_notification_message_test_multiple_building_type_includes_building_number", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L245", "weight": 1.0, "source": "tests_test_notification_message_test_post_always_uses_short_format", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L260", "weight": 1.0, "source": "tests_test_notification_message_test_post_with_single_count_still_uses_short_format", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L282", "weight": 1.0, "source": "tests_test_notification_message_test_section_order_no_change_then_remove_then_set_at", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L309", "weight": 1.0, "source": "tests_test_notification_message_test_positions_sorted_within_section", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L343", "weight": 1.0, "source": "tests_test_notification_message_test_no_change_section_has_header_and_plain_position_lines", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L367", "weight": 1.0, "source": "tests_test_notification_message_test_remove_from_section_has_header_and_plain_position_lines", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L391", "weight": 1.0, "source": "tests_test_notification_message_test_set_at_section_has_header_and_plain_position_lines", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L419", "weight": 1.0, "source": "tests_test_notification_message_test_blank_line_between_no_change_and_remove_from", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L436", "weight": 1.0, "source": "tests_test_notification_message_test_blank_line_between_remove_from_and_set_at", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L449", "weight": 1.0, "source": "tests_test_notification_message_test_no_blank_line_when_only_one_section", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L471", "weight": 1.0, "source": "tests_test_notification_message_test_blank_line_count_with_all_three_sections", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L494", "weight": 1.0, "source": "tests_test_notification_message_test_all_three_section_headers_exact_format", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_notification_message.py", "source_location": "L510", "weight": 1.0, "source": "tests_test_notification_message_test_header_line_not_a_position_line", "target": "services_notification_message_build_member_notification_message" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/posts.py", "source_location": "L61", "weight": 1.0, "confidence_score": 1.0, "source": "api_posts_updatepost", "target": "services_posts_get_siege_or_404" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/posts.py", "source_location": "L93", "weight": 1.0, "confidence_score": 1.0, "source": "api_posts_setpostconditions", "target": "services_posts_get_siege_or_404" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/posts.py", "source_location": "L65", "weight": 1.0, "confidence_score": 1.0, "source": "api_posts_updatepost", "target": "services_posts_get_post_for_siege_or_404" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/posts.py", "source_location": "L97", "weight": 1.0, "confidence_score": 1.0, "source": "api_posts_setpostconditions", "target": "services_posts_get_post_for_siege_or_404" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/posts.py", "source_location": "L55", "weight": 1.0, "confidence_score": 1.0, "source": "services_posts_rationale_55", "target": "api_posts_updatepost" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/posts.py", "source_location": "L79", "weight": 1.0, "confidence_score": 1.0, "source": "services_posts_rationale_79", "target": "api_posts_setpostconditions" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L167", "weight": 1.0, "confidence_score": 1.0, "source": "api_sieges_previewpostsuggestions", "target": "services_post_suggestions_get_target_position" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L518", "weight": 1.0, "confidence_score": 1.0, "source": "services_post_suggestions_rationale_518", "target": "services_post_suggestions_get_target_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L170", "weight": 1.0, "confidence_score": 1.0, "source": "api_sieges_previewpostsuggestions", "target": "services_post_suggestions_null_entry" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L546", "weight": 1.0, "confidence_score": 1.0, "source": "services_post_suggestions_rationale_546", "target": "services_post_suggestions_null_entry" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L79", "weight": 1.0, "confidence_score": 1.0, "source": "services_post_suggestions_rationale_79", "target": "api_sieges_previewpostsuggestions" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/post_suggestions.py", "source_location": "L340", "weight": 1.0, "confidence_score": 1.0, "source": "services_post_suggestions_rationale_340", "target": "api_sieges_applypostsuggestions" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/sieges.py", "source_location": "L20", "weight": 1.0, "confidence_score": 1.0, "source": "services_sieges_rationale_20", "target": "services_sieges_scrolls_per_player" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/autofill.py", "source_location": "L77", "weight": 1.0, "source": "api_sieges_previewautofill", "target": "services_sieges_scrolls_per_player" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/validation.py", "source_location": "L43", "weight": 1.0, "source": "api_sieges_validatesiege", "target": "services_sieges_scrolls_per_player" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/services/sieges.py", "source_location": "L29", "weight": 1.0, "confidence_score": 1.0, "source": "services_sieges_rationale_29", "target": "services_sieges_compute_scroll_count" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/autofill.py", "source_location": "L76", "weight": 1.0, "source": "api_sieges_previewautofill", "target": "services_sieges_compute_scroll_count" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/validation.py", "source_location": "L42", "weight": 1.0, "source": "api_sieges_validatesiege", "target": "services_sieges_compute_scroll_count" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_sieges.py", "source_location": "L225", "weight": 1.0, "source": "tests_test_sieges_test_compute_scroll_count_sums_theoretical_capacity", "target": "services_sieges_compute_scroll_count" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_sieges.py", "source_location": "L255", "weight": 1.0, "source": "tests_test_sieges_test_compute_scroll_count_broken_building_unchanged", "target": "services_sieges_compute_scroll_count" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_sieges.py", "source_location": "L275", "weight": 1.0, "source": "tests_test_sieges_test_compute_scroll_count_level_change_updates_count", "target": "services_sieges_compute_scroll_count" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_sieges.py", "source_location": "L305", "weight": 1.0, "source": "tests_test_sieges_test_compute_scroll_count_post_buildings_contribute_one", "target": "services_sieges_compute_scroll_count" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/scripts/seed.py", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "backend_scripts_seed_py", "target": "app_main_main" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/scripts/seed_demo.py", "source_location": "L95", "weight": 1.0, "confidence_score": 1.0, "source": "backend_scripts_seed_demo_py", "target": "scripts_seed_demo_get_or_create_members" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/scripts/seed_demo.py", "source_location": "L114", "weight": 1.0, "confidence_score": 1.0, "source": "backend_scripts_seed_demo_py", "target": "scripts_seed_demo_get_or_create_demo_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/scripts/seed_demo.py", "source_location": "L133", "weight": 1.0, "confidence_score": 1.0, "source": "backend_scripts_seed_demo_py", "target": "scripts_seed_demo_seed_buildings_and_positions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/scripts/seed_demo.py", "source_location": "L203", "weight": 1.0, "confidence_score": 1.0, "source": "backend_scripts_seed_demo_py", "target": "scripts_seed_demo_get_or_create_second_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/scripts/seed_demo.py", "source_location": "L220", "weight": 1.0, "confidence_score": 1.0, "source": "backend_scripts_seed_demo_py", "target": "scripts_seed_demo_seed_siege_members" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/scripts/seed_demo.py", "source_location": "L242", "weight": 1.0, "confidence_score": 1.0, "source": "backend_scripts_seed_demo_py", "target": "app_main_main" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/scripts/seed_demo.py", "source_location": "L256", "weight": 1.0, "confidence_score": 1.0, "source": "app_main_main", "target": "scripts_seed_demo_get_or_create_members" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/scripts/seed_demo.py", "source_location": "L96", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_seed_demo_rationale_96", "target": "scripts_seed_demo_get_or_create_members" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L687", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "scripts_seed_demo_get_or_create_members" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L702", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_seed_demo_get_or_create_members", "target": "excel_import_import_excel_map_role" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L835", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_import_file", "target": "scripts_seed_demo_get_or_create_members" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L691", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_rationale_691", "target": "scripts_seed_demo_get_or_create_members" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_seed_demo.py", "source_location": "L78", "weight": 1.0, "source": "tests_test_seed_demo_run_seed", "target": "scripts_seed_demo_get_or_create_members" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/scripts/seed_demo.py", "source_location": "L261", "weight": 1.0, "confidence_score": 1.0, "source": "app_main_main", "target": "scripts_seed_demo_get_or_create_demo_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/scripts/seed_demo.py", "source_location": "L115", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_seed_demo_rationale_115", "target": "scripts_seed_demo_get_or_create_demo_siege" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_seed_demo.py", "source_location": "L81", "weight": 1.0, "source": "tests_test_seed_demo_run_seed", "target": "scripts_seed_demo_get_or_create_demo_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/scripts/seed_demo.py", "source_location": "L266", "weight": 1.0, "confidence_score": 1.0, "source": "app_main_main", "target": "scripts_seed_demo_seed_buildings_and_positions" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/scripts/seed_demo.py", "source_location": "L139", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_seed_demo_rationale_139", "target": "scripts_seed_demo_seed_buildings_and_positions" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_seed_demo.py", "source_location": "L84", "weight": 1.0, "source": "tests_test_seed_demo_run_seed", "target": "scripts_seed_demo_seed_buildings_and_positions" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/scripts/seed_demo.py", "source_location": "L276", "weight": 1.0, "confidence_score": 1.0, "source": "app_main_main", "target": "scripts_seed_demo_get_or_create_second_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/scripts/seed_demo.py", "source_location": "L204", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_seed_demo_rationale_204", "target": "scripts_seed_demo_get_or_create_second_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/scripts/seed_demo.py", "source_location": "L271", "weight": 1.0, "confidence_score": 1.0, "source": "app_main_main", "target": "scripts_seed_demo_seed_siege_members" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/scripts/seed_demo.py", "source_location": "L225", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_seed_demo_rationale_225", "target": "scripts_seed_demo_seed_siege_members" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_seed_demo.py", "source_location": "L87", "weight": 1.0, "source": "tests_test_seed_demo_run_seed", "target": "scripts_seed_demo_seed_siege_members" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/conftest.py", "source_location": "L30", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_conftest_py", "target": "tests_conftest_disable_auth_for_tests" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/conftest.py", "source_location": "L31", "weight": 1.0, "confidence_score": 1.0, "source": "tests_conftest_rationale_31", "target": "tests_conftest_disable_auth_for_tests" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/conftest.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_conftest_rationale_1", "target": "bot_tests_conftest_py" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_attack_day_py", "target": "tests_test_sieges_make_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L36", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_attack_day_py", "target": "tests_test_auth_make_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L40", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_attack_day_py", "target": "tests_test_autofill_make_sm" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L52", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_attack_day_py", "target": "tests_test_board_client" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L62", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_attack_day_py", "target": "tests_test_attack_day_test_preview_attack_day_endpoint_200" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L80", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_attack_day_py", "target": "tests_test_attack_day_test_apply_attack_day_endpoint_200" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L100", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_attack_day_py", "target": "tests_test_attack_day_session_for_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L113", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_attack_day_py", "target": "tests_test_attack_day_test_heavy_hitters_and_advanced_always_day2" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L129", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_attack_day_py", "target": "tests_test_attack_day_test_medium_promoted_when_under_10" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L152", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_attack_day_py", "target": "tests_test_attack_day_test_novice_promoted_when_still_under_10" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L182", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_attack_day_py", "target": "tests_test_attack_day_test_pinned_members_count_toward_threshold" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L211", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_attack_day_py", "target": "tests_test_attack_day_test_overridden_members_not_changed" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L227", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_attack_day_py", "target": "tests_test_attack_day_test_boundary_at_exactly_10" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L245", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_attack_day_py", "target": "tests_test_attack_day_test_apply_attack_day_commits" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L276", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_attack_day_py", "target": "tests_test_attack_day_test_apply_attack_day_409_no_preview" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L299", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_attack_day_py", "target": "tests_test_attack_day_test_apply_attack_day_409_expired" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_rationale_1", "target": "backend_tests_test_attack_day_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L120", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_heavy_hitters_and_advanced_always_day2", "target": "tests_test_attack_day_session_for_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L141", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_medium_promoted_when_under_10", "target": "tests_test_attack_day_session_for_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L167", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_novice_promoted_when_still_under_10", "target": "tests_test_attack_day_session_for_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L197", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_pinned_members_count_toward_threshold", "target": "tests_test_attack_day_session_for_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L218", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_overridden_members_not_changed", "target": "tests_test_attack_day_session_for_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L234", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_boundary_at_exactly_10", "target": "tests_test_attack_day_session_for_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L115", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_heavy_hitters_and_advanced_always_day2", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L116", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_heavy_hitters_and_advanced_always_day2", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L118", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_heavy_hitters_and_advanced_always_day2", "target": "tests_test_autofill_make_sm" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L114", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_rationale_114", "target": "tests_test_attack_day_test_heavy_hitters_and_advanced_always_day2" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L131", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_medium_promoted_when_under_10", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L133", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_medium_promoted_when_under_10", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L139", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_medium_promoted_when_under_10", "target": "tests_test_autofill_make_sm" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L130", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_rationale_130", "target": "tests_test_attack_day_test_medium_promoted_when_under_10" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L154", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_novice_promoted_when_still_under_10", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L156", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_novice_promoted_when_still_under_10", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L165", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_novice_promoted_when_still_under_10", "target": "tests_test_autofill_make_sm" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L153", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_rationale_153", "target": "tests_test_attack_day_test_novice_promoted_when_still_under_10" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L184", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_pinned_members_count_toward_threshold", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L187", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_pinned_members_count_toward_threshold", "target": "tests_test_autofill_make_sm" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L190", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_pinned_members_count_toward_threshold", "target": "tests_test_auth_make_member" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L183", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_rationale_183", "target": "tests_test_attack_day_test_pinned_members_count_toward_threshold" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L213", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_overridden_members_not_changed", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L214", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_overridden_members_not_changed", "target": "tests_test_autofill_make_sm" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L212", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_rationale_212", "target": "tests_test_attack_day_test_overridden_members_not_changed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L229", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_boundary_at_exactly_10", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L230", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_boundary_at_exactly_10", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L232", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_boundary_at_exactly_10", "target": "tests_test_autofill_make_sm" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L228", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_rationale_228", "target": "tests_test_attack_day_test_boundary_at_exactly_10" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L250", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_apply_attack_day_commits", "target": "tests_test_autofill_make_sm" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L252", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_apply_attack_day_commits", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L246", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_rationale_246", "target": "tests_test_attack_day_test_apply_attack_day_commits" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L280", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_apply_attack_day_409_no_preview", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L277", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_rationale_277", "target": "tests_test_attack_day_test_apply_attack_day_409_no_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L307", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_test_apply_attack_day_409_expired", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_attack_day.py", "source_location": "L300", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_attack_day_rationale_300", "target": "tests_test_attack_day_test_apply_attack_day_409_expired" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_make_jwt" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L38", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_make_expired_jwt" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L53", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_make_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L70", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_make_mock_db" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L92", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_auth_disabled_allows_access" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L117", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_valid_service_token_allows_access" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L145", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_invalid_service_token_returns_401" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L167", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_valid_jwt_cookie_allows_access" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L196", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_expired_jwt_returns_401" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L218", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_jwt_with_wrong_secret_returns_401" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L241", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_jwt_with_deleted_member_returns_401" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L266", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_no_auth_returns_401" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L286", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_health_no_auth_required" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L305", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_version_no_auth_required" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L323", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_login_returns_discord_url_and_state_cookie" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L343", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_callback_invalid_state_redirects" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L361", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_callback_happy_path" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L412", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_callback_not_in_guild_redirects" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L445", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_callback_insufficient_role_redirects" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L481", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_callback_insufficient_role_missing_role_names_key_redirects" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L516", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_callback_with_required_role_proceeds_to_member_lookup" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L567", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_callback_bot_unreachable_redirects_service_unavailable" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L600", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_callback_no_member_record_redirects" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L647", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_logout_clears_session_cookie" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L660", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_me_with_valid_session" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L692", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_me_without_auth_returns_401" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L716", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_teststartupvalidation" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L719", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_startup_rejects_empty_session_secret" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L730", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_startup_rejects_missing_bot_service_token_in_production" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L742", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_py", "target": "tests_test_auth_test_startup_allows_empty_bot_service_token_in_development" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_1", "target": "backend_tests_test_auth_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L180", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_test_valid_jwt_cookie_allows_access", "target": "tests_test_auth_make_jwt" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L229", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_test_jwt_with_wrong_secret_returns_401", "target": "tests_test_auth_make_jwt" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L254", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_test_jwt_with_deleted_member_returns_401", "target": "tests_test_auth_make_jwt" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L675", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_test_me_with_valid_session", "target": "tests_test_auth_make_jwt" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L29", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_changelog_py", "target": "tests_test_auth_make_jwt" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L94", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_test_get_status_fresh_user_returns_null", "target": "tests_test_auth_make_jwt" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L127", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_test_mark_seen_then_get_status_returns_timestamp", "target": "tests_test_auth_make_jwt" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L167", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_test_mark_seen_twice_is_idempotent", "target": "tests_test_auth_make_jwt" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L30", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_rationale_30", "target": "tests_test_auth_make_jwt" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L206", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_test_expired_jwt_returns_401", "target": "tests_test_auth_make_expired_jwt" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L173", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_test_valid_jwt_cookie_allows_access", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L366", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_test_callback_happy_path", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L522", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_test_callback_with_required_role_proceeds_to_member_lookup", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L666", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_test_me_with_valid_session", "target": "tests_test_auth_make_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L45", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L157", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_respects_scroll_count", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L188", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_marks_leftover_as_reserve", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L306", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_skips_broken_building_positions", "target": "tests_test_auth_make_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L49", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_changelog_py", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L87", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_test_get_status_fresh_user_returns_null", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L120", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_test_mark_seen_then_get_status_returns_timestamp", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L160", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_test_mark_seen_twice_is_idempotent", "target": "tests_test_auth_make_member" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L54", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_rationale_54", "target": "tests_test_auth_make_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L69", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L157", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_reserves_html_contains_member", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L357", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_reserves_html_day1_color", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L177", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_reserves_html_no_role_column", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L212", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_generate_reserves_image_calls_render", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L365", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_reserves_html_novice_color", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L375", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_reserves_html_fallback_color", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L432", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_reserves_html_role_colors_match_ui", "target": "tests_test_auth_make_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L36", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_integration_py", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L114", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_integration_build_valid_siege_graph", "target": "tests_test_auth_make_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_members.py", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_members_py", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_members.py", "source_location": "L60", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_members_test_create_member_returns_201", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_members.py", "source_location": "L125", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_members_test_delete_member_returns_204", "target": "tests_test_auth_make_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L34", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L62", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_test_makesiegemember", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L275", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_get_notification_batch_returns_results", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L560", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_skips_member_with_no_discord_username", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L624", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_skips_member_not_in_guild", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L683", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_eligible_member_gets_result_row_and_dm", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L749", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_skipped_count_reflects_all_skipped_members", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L920", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_bot_unreachable_falls_back_to_username_filter", "target": "tests_test_auth_make_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L46", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L212", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_single_post_single_member_match", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L241", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_no_match_produces_skip_reason_no_match", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L266", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_reserve_position_produces_skip_reason_reserve", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L285", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_disabled_position_produces_skip_reason_disabled", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L314", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_post_with_no_active_conditions_produces_skip_reason_no_conditions", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L340", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_post_with_conditions_but_no_matching_member_still_no_match", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L366", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_mixed_no_conditions_no_match_and_assigned_in_one_preview", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L412", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_higher_priority_post_gets_member_first", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L449", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_second_post_prefers_different_condition", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L481", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_prefers_less_loaded_member", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L509", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_name_tiebreak_picks_alphabetically_lower", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L533", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_duplicate_penalty_beats_assignment_count", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L567", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_determinism_same_output_on_repeat", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L612", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_current_member_preferred_when_equally_qualified", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L664", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_lowest_condition_id_picked_as_tiebreak", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L710", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_suboptimality_invariants_hold", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L766", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_matches_current_true_when_same_assignment", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L787", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_matches_current_false_for_null_suggestion", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L987", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_empty_position_ids_is_noop", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1003", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_unknown_position_ids_silently_ignored", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1037", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_subset_only_writes_checked_positions", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1062", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_stale_position_disabled_returns_409", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1080", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_stale_position_reserve_returns_409", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1098", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_stale_member_inactive_returns_409", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1117", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_member_changed_returns_409", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1139", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_multiple_stale_all_surfaced_in_single_409", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1191", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_skips_post_when_only_candidate_has_used_condition", "target": "tests_test_auth_make_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L39", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L217", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule1_inactive_member_error", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L237", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule1_active_member_no_error", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L263", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_broken_building_assignment_counts_toward_scroll_limit", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L300", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_broken_and_healthy_both_count_toward_scroll_limit", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L342", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_exceeds_scroll_count", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L366", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_within_scroll_count", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L554", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule8_disabled_with_member", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L572", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule8_reserve_with_member", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L590", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule8_valid_state", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L708", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule11_member_pref_no_match", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L735", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule11_no_warning_when_no_preferences", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L781", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule13_missing_attack_day_assigned_member", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L797", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule13_attack_day_set", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L847", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_hh_no_reserve", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L867", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_advanced_no_reserve", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L887", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_hh_reserve_configured", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L907", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_non_hh_no_reserve_no_warning", "target": "tests_test_auth_make_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_discord_client_py", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L58", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_send_dm_finds_member_and_sends", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L71", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_send_dm_case_insensitive", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L145", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_get_members_returns_correct_dict_format", "target": "tests_test_auth_make_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L97", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_test_auth_disabled_allows_access", "target": "tests_test_auth_make_mock_db" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L123", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_test_valid_service_token_allows_access", "target": "tests_test_auth_make_mock_db" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L174", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_test_valid_jwt_cookie_allows_access", "target": "tests_test_auth_make_mock_db" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L248", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_test_jwt_with_deleted_member_returns_401", "target": "tests_test_auth_make_mock_db" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L367", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_test_callback_happy_path", "target": "tests_test_auth_make_mock_db" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L523", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_test_callback_with_required_role_proceeds_to_member_lookup", "target": "tests_test_auth_make_mock_db" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L669", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_test_me_with_valid_session", "target": "tests_test_auth_make_mock_db" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L67", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_71", "target": "tests_test_auth_make_mock_db" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L66", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_changelog_py", "target": "tests_test_auth_make_mock_db" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L88", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_test_get_status_fresh_user_returns_null", "target": "tests_test_auth_make_mock_db" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L121", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_test_mark_seen_then_get_status_returns_timestamp", "target": "tests_test_auth_make_mock_db" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L161", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_test_mark_seen_twice_is_idempotent", "target": "tests_test_auth_make_mock_db" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L250", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_test_get_status_service_token_returns_400", "target": "tests_test_auth_make_mock_db" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L93", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_93", "target": "tests_test_auth_test_auth_disabled_allows_access" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L118", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_118", "target": "tests_test_auth_test_valid_service_token_allows_access" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L146", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_146", "target": "tests_test_auth_test_invalid_service_token_returns_401" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L168", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_168", "target": "tests_test_auth_test_valid_jwt_cookie_allows_access" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L197", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_197", "target": "tests_test_auth_test_expired_jwt_returns_401" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L219", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_219", "target": "tests_test_auth_test_jwt_with_wrong_secret_returns_401" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L242", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_242", "target": "tests_test_auth_test_jwt_with_deleted_member_returns_401" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L267", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_267", "target": "tests_test_auth_test_no_auth_returns_401" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L287", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_287", "target": "tests_test_auth_test_health_no_auth_required" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L306", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_306", "target": "tests_test_auth_test_version_no_auth_required" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L324", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_324", "target": "tests_test_auth_test_login_returns_discord_url_and_state_cookie" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L344", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_344", "target": "tests_test_auth_test_callback_invalid_state_redirects" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L362", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_362", "target": "tests_test_auth_test_callback_happy_path" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L413", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_413", "target": "tests_test_auth_test_callback_not_in_guild_redirects" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L446", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_446", "target": "tests_test_auth_test_callback_insufficient_role_redirects" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L482", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_482", "target": "tests_test_auth_test_callback_insufficient_role_missing_role_names_key_redirects" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L517", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_517", "target": "tests_test_auth_test_callback_with_required_role_proceeds_to_member_lookup" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L568", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_568", "target": "tests_test_auth_test_callback_bot_unreachable_redirects_service_unavailable" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L601", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_601", "target": "tests_test_auth_test_callback_no_member_record_redirects" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L648", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_648", "target": "tests_test_auth_test_logout_clears_session_cookie" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L661", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_661", "target": "tests_test_auth_test_me_with_valid_session" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth.py", "source_location": "L693", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rationale_693", "target": "tests_test_auth_test_me_without_auth_returns_401" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_auth.py", "source_location": "L15", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_auth_teststartupvalidation", "target": "api_types_memberrole" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L49", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_rate_limit_py", "target": "tests_test_auth_rate_limit_reset_rate_limit_state" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L89", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_rate_limit_py", "target": "tests_test_auth_rate_limit_get" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L100", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_rate_limit_py", "target": "tests_test_auth_rate_limit_test_login_rate_limit_triggers_429" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L124", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_rate_limit_py", "target": "tests_test_auth_rate_limit_test_login_rate_limit_independent_per_ip" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L150", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_rate_limit_py", "target": "tests_test_auth_rate_limit_test_callback_rate_limit_triggers_429" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L194", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_rate_limit_py", "target": "tests_test_auth_rate_limit_test_login_no_429_when_auth_disabled" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L209", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_rate_limit_py", "target": "tests_test_auth_rate_limit_test_callback_no_429_when_auth_disabled" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L236", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_rate_limit_py", "target": "tests_test_auth_rate_limit_test_xff_pathological_header_parses_to_leftmost_ip" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L271", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_rate_limit_py", "target": "tests_test_auth_rate_limit_test_garbage_xff_falls_back_to_remote_address_bucket" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L301", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_rate_limit_py", "target": "tests_test_auth_rate_limit_test_different_garbage_xff_values_share_remote_address_bucket" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L331", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_rate_limit_py", "target": "tests_test_auth_rate_limit_test_valid_xff_still_buckets_by_ip" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L361", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_rate_limit_py", "target": "tests_test_auth_rate_limit_test_429_response_includes_retry_after_header" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L405", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_rate_limit_py", "target": "tests_test_auth_rate_limit_test_missing_xff_in_production_logs_warning" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L434", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_rate_limit_py", "target": "tests_test_auth_rate_limit_test_missing_xff_in_development_does_not_log_warning" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L464", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_rate_limit_py", "target": "tests_test_auth_rate_limit_test_concurrent_absent_xff_in_production_warns_exactly_once" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L534", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_rate_limit_py", "target": "tests_test_auth_rate_limit_test_invalid_xff_in_production_logs_warning" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L566", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_rate_limit_py", "target": "tests_test_auth_rate_limit_test_invalid_xff_in_development_does_not_log_warning" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L597", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_auth_rate_limit_py", "target": "tests_test_auth_rate_limit_test_invalid_xff_warning_is_throttled_to_once_per_window" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_1", "target": "backend_tests_test_auth_rate_limit_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L50", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_50", "target": "tests_test_auth_rate_limit_reset_rate_limit_state" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L115", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_test_login_rate_limit_triggers_429", "target": "tests_test_auth_rate_limit_get" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L135", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_test_login_rate_limit_independent_per_ip", "target": "tests_test_auth_rate_limit_get" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L204", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_test_login_no_429_when_auth_disabled", "target": "tests_test_auth_rate_limit_get" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L259", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_test_xff_pathological_header_parses_to_leftmost_ip", "target": "tests_test_auth_rate_limit_get" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L288", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_test_garbage_xff_falls_back_to_remote_address_bucket", "target": "tests_test_auth_rate_limit_get" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L318", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_test_different_garbage_xff_values_share_remote_address_bucket", "target": "tests_test_auth_rate_limit_get" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L346", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_test_valid_xff_still_buckets_by_ip", "target": "tests_test_auth_rate_limit_get" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L376", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_test_429_response_includes_retry_after_header", "target": "tests_test_auth_rate_limit_get" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L425", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_test_missing_xff_in_production_logs_warning", "target": "tests_test_auth_rate_limit_get" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L448", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_test_missing_xff_in_development_does_not_log_warning", "target": "tests_test_auth_rate_limit_get" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L553", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_test_invalid_xff_in_production_logs_warning", "target": "tests_test_auth_rate_limit_get" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L580", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_test_invalid_xff_in_development_does_not_log_warning", "target": "tests_test_auth_rate_limit_get" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L618", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_test_invalid_xff_warning_is_throttled_to_once_per_window", "target": "tests_test_auth_rate_limit_get" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L90", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_90", "target": "tests_test_auth_rate_limit_get" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L101", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_101", "target": "tests_test_auth_rate_limit_test_login_rate_limit_triggers_429" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L125", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_125", "target": "tests_test_auth_rate_limit_test_login_rate_limit_independent_per_ip" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L151", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_151", "target": "tests_test_auth_rate_limit_test_callback_rate_limit_triggers_429" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L195", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_195", "target": "tests_test_auth_rate_limit_test_login_no_429_when_auth_disabled" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L210", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_195", "target": "tests_test_auth_rate_limit_test_callback_no_429_when_auth_disabled" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L237", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_237", "target": "tests_test_auth_rate_limit_test_xff_pathological_header_parses_to_leftmost_ip" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L272", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_272", "target": "tests_test_auth_rate_limit_test_garbage_xff_falls_back_to_remote_address_bucket" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L302", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_302", "target": "tests_test_auth_rate_limit_test_different_garbage_xff_values_share_remote_address_bucket" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L332", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_332", "target": "tests_test_auth_rate_limit_test_valid_xff_still_buckets_by_ip" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L362", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_362", "target": "tests_test_auth_rate_limit_test_429_response_includes_retry_after_header" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L406", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_406", "target": "tests_test_auth_rate_limit_test_missing_xff_in_production_logs_warning" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L435", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_435", "target": "tests_test_auth_rate_limit_test_missing_xff_in_development_does_not_log_warning" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L465", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_465", "target": "tests_test_auth_rate_limit_test_concurrent_absent_xff_in_production_warns_exactly_once" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L535", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_535", "target": "tests_test_auth_rate_limit_test_invalid_xff_in_production_logs_warning" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L567", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_567", "target": "tests_test_auth_rate_limit_test_invalid_xff_in_development_does_not_log_warning" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_auth_rate_limit.py", "source_location": "L598", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_auth_rate_limit_rationale_598", "target": "tests_test_auth_rate_limit_test_invalid_xff_warning_is_throttled_to_once_per_window" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L28", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_sieges_make_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L51", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_posts_make_building" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L63", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_autofill_make_group" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L69", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_board_make_position" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L81", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_autofill_make_sm" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L98", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_board_client" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L108", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_autofill_test_preview_endpoint_returns_200" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L127", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_autofill_test_apply_endpoint_returns_200" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L148", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_autofill_test_preview_respects_scroll_count" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L182", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_autofill_test_preview_marks_leftover_as_reserve" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L212", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_autofill_test_apply_commits_preview" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L251", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_autofill_test_apply_returns_409_when_no_preview" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L273", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_autofill_test_apply_returns_409_when_preview_expired" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L299", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_autofill_test_preview_skips_broken_building_positions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L349", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_autofill_enable_sqlite_fk_autofill" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L356", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_schema_db_session" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L367", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_autofill_test_apply_autofill_skips_broken_building_positions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L466", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_autofill_py", "target": "tests_test_autofill_make_session_for_preview" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_rationale_1", "target": "backend_tests_test_autofill_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L159", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_respects_scroll_count", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L190", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_marks_leftover_as_reserve", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L313", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_skips_broken_building_positions", "target": "tests_test_autofill_make_group" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L37", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_buildings_py", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L107", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_test_update_building_unbreak_restores_groups", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L187", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_test_update_building_unbreak_restores_last_slot_count", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L263", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_test_update_building_break_then_unbreak_roundtrip", "target": "tests_test_autofill_make_group" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L61", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_integration_py", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L124", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_integration_build_valid_siege_graph", "target": "tests_test_autofill_make_group" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L84", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L215", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_single_post_single_member_match", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L244", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_no_match_produces_skip_reason_no_match", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L269", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_reserve_position_produces_skip_reason_reserve", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L288", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_disabled_position_produces_skip_reason_disabled", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L317", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_post_with_no_active_conditions_produces_skip_reason_no_conditions", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L343", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_post_with_conditions_but_no_matching_member_still_no_match", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L371", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_mixed_no_conditions_no_match_and_assigned_in_one_preview", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L418", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_higher_priority_post_gets_member_first", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L453", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_second_post_prefers_different_condition", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L487", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_prefers_less_loaded_member", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L515", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_name_tiebreak_picks_alphabetically_lower", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L539", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_duplicate_penalty_beats_assignment_count", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L571", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_determinism_same_output_on_repeat", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L620", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_current_member_preferred_when_equally_qualified", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L668", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_lowest_condition_id_picked_as_tiebreak", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L717", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_suboptimality_invariants_hold", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L770", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_matches_current_true_when_same_assignment", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L790", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_matches_current_false_for_null_suggestion", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L820", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_no_members_all_skip_no_match", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1195", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_skips_post_when_only_candidate_has_used_condition", "target": "tests_test_autofill_make_group" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L58", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L219", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule1_inactive_member_error", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L239", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule1_active_member_no_error", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L268", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_broken_building_assignment_counts_toward_scroll_limit", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L306", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_broken_and_healthy_both_count_toward_scroll_limit", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L346", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_exceeds_scroll_count", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L368", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_within_scroll_count", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L423", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule4_invalid_group_number", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L440", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule4_valid_group_number", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L457", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule5_position_number_exceeds_slot_count", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L474", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule5_valid_position_number", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L517", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule7_post_has_multiple_groups", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L539", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule7_post_has_exactly_one_group", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L556", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule8_disabled_with_member", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L574", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule8_reserve_with_member", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L592", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule8_valid_state", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L646", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule10_empty_unresolved_slot", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L665", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule10_message_uses_position_name", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L690", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule10_no_warning_when_disabled", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L714", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule11_member_pref_no_match", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L741", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule11_no_warning_when_no_preferences", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L763", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule13_missing_attack_day_assigned_member", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L799", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule13_attack_day_set", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L849", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_hh_no_reserve", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L869", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_advanced_no_reserve", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L889", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_hh_reserve_configured", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L909", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_non_hh_no_reserve_no_warning", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L931", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule16_post_fewer_than_3_conditions", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L958", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule16_post_has_3_conditions", "target": "tests_test_autofill_make_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L166", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_respects_scroll_count", "target": "tests_test_autofill_make_sm" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L197", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_marks_leftover_as_reserve", "target": "tests_test_autofill_make_sm" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L331", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_skips_broken_building_positions", "target": "tests_test_autofill_make_sm" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L844", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_autofill_test_preview_endpoint_returns_200" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L845", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_845", "target": "tests_test_autofill_test_preview_endpoint_returns_200" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L860", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_autofill_test_apply_endpoint_returns_200" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L861", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_861", "target": "tests_test_autofill_test_apply_endpoint_returns_200" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L158", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_respects_scroll_count", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L161", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_respects_scroll_count", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L164", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_respects_scroll_count", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L169", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_respects_scroll_count", "target": "tests_test_autofill_make_session_for_preview" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L149", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_rationale_149", "target": "tests_test_autofill_test_preview_respects_scroll_count" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L189", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_marks_leftover_as_reserve", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L192", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_marks_leftover_as_reserve", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L195", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_marks_leftover_as_reserve", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L200", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_marks_leftover_as_reserve", "target": "tests_test_autofill_make_session_for_preview" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L183", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_rationale_183", "target": "tests_test_autofill_test_preview_marks_leftover_as_reserve" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L217", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_apply_commits_preview", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L219", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_apply_commits_preview", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L213", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_rationale_213", "target": "tests_test_autofill_test_apply_commits_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L255", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_apply_returns_409_when_no_preview", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L252", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_rationale_252", "target": "tests_test_autofill_test_apply_returns_409_when_no_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L281", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_apply_returns_409_when_preview_expired", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L274", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_rationale_274", "target": "tests_test_autofill_test_apply_returns_409_when_preview_expired" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L310", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_skips_broken_building_positions", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L315", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_skips_broken_building_positions", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L329", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_skips_broken_building_positions", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L334", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_test_preview_skips_broken_building_positions", "target": "tests_test_autofill_make_session_for_preview" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L300", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_rationale_300", "target": "tests_test_autofill_test_preview_skips_broken_building_positions" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L368", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_rationale_368", "target": "tests_test_autofill_test_apply_autofill_skips_broken_building_positions" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_autofill.py", "source_location": "L467", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_autofill_rationale_467", "target": "tests_test_autofill_make_session_for_preview" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_board.py", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_board_py", "target": "tests_test_board_make_position" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_board.py", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_board_py", "target": "tests_test_board_client" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_board.py", "source_location": "L43", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_board_py", "target": "tests_test_board_test_get_board_returns_nested_structure" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_board.py", "source_location": "L75", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_board_py", "target": "tests_test_board_test_update_position_assign_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_board.py", "source_location": "L97", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_board_py", "target": "tests_test_board_test_update_position_invalid_state_reserve_with_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_board.py", "source_location": "L119", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_board_py", "target": "tests_test_board_test_update_position_not_found" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_board.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_board_rationale_1", "target": "backend_tests_test_board_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_board.py", "source_location": "L76", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_board_test_update_position_assign_member", "target": "tests_test_board_make_position" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L52", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L96", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_contains_building_type", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L106", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_reserve_cell", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L115", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_disabled_cell", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L233", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_group_header_present", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L244", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_group_header_before_members", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L261", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_single_row_per_group", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L288", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_buildings_side_by_side", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L317", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_heavy_hitter_color", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L330", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_no_role_map_fallback", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L341", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_role_color_on_span_not_background", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L412", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_role_colors_match_ui", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L445", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_no_level_in_header", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L458", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_broken_building_no_level", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L470", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_building_number_in_thead", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L490", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_post_flat_table", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L522", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_post_reserve_and_disabled", "target": "tests_test_board_make_position" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L47", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_integration_py", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L237", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_integration_test_full_siege_lifecycle", "target": "tests_test_board_make_position" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L65", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L214", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_single_post_single_member_match", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L243", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_no_match_produces_skip_reason_no_match", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L268", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_reserve_position_produces_skip_reason_reserve", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L287", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_disabled_position_produces_skip_reason_disabled", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L316", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_post_with_no_active_conditions_produces_skip_reason_no_conditions", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L342", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_post_with_conditions_but_no_matching_member_still_no_match", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L370", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_mixed_no_conditions_no_match_and_assigned_in_one_preview", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L417", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_higher_priority_post_gets_member_first", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L452", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_second_post_prefers_different_condition", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L486", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_prefers_less_loaded_member", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L514", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_name_tiebreak_picks_alphabetically_lower", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L538", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_duplicate_penalty_beats_assignment_count", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L570", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_determinism_same_output_on_repeat", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L619", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_current_member_preferred_when_equally_qualified", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L667", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_lowest_condition_id_picked_as_tiebreak", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L716", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_suboptimality_invariants_hold", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L769", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_matches_current_true_when_same_assignment", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L789", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_matches_current_false_for_null_suggestion", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L819", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_no_members_all_skip_no_match", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L986", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_empty_position_ids_is_noop", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1002", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_unknown_position_ids_silently_ignored", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1035", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_subset_only_writes_checked_positions", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1061", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_stale_position_disabled_returns_409", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1079", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_stale_position_reserve_returns_409", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1097", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_stale_member_inactive_returns_409", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1116", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_member_changed_returns_409", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1137", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_multiple_stale_all_surfaced_in_single_409", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1194", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_skips_post_when_only_candidate_has_used_condition", "target": "tests_test_board_make_position" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L68", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L218", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule1_inactive_member_error", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L238", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule1_active_member_no_error", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L266", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_broken_building_assignment_counts_toward_scroll_limit", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L304", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_broken_and_healthy_both_count_toward_scroll_limit", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L344", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_exceeds_scroll_count", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L367", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_within_scroll_count", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L422", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule4_invalid_group_number", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L439", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule4_valid_group_number", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L456", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule5_position_number_exceeds_slot_count", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L473", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule5_valid_position_number", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L555", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule8_disabled_with_member", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L573", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule8_reserve_with_member", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L591", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule8_valid_state", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L645", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule10_empty_unresolved_slot", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L662", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule10_message_uses_position_name", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L689", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule10_no_warning_when_disabled", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L715", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule11_member_pref_no_match", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L742", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule11_no_warning_when_no_preferences", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L762", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule13_missing_attack_day_assigned_member", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L798", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule13_attack_day_set", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L848", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_hh_no_reserve", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L868", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_advanced_no_reserve", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L888", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_hh_reserve_configured", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L908", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_non_hh_no_reserve_no_warning", "target": "tests_test_board_make_position" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L46", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L80", "weight": 1.0, "confidence_score": 1.0, "source": "components_poststab_test_makepostboard", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L314", "weight": 1.0, "confidence_score": 1.0, "source": "components_poststab_test_maketwopostboard", "target": "tests_test_board_make_position" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L39", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "tests_test_board_make_position" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L69", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_test_makeboard", "target": "tests_test_board_make_position" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L37", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_comparison_py", "target": "tests_test_board_client" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L40", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_discord_sync_py", "target": "tests_test_board_client" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_py", "target": "tests_test_board_client" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_members.py", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_members_py", "target": "tests_test_board_client" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L103", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_board_client" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_posts.py", "source_location": "L45", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_posts_py", "target": "tests_test_board_client" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L838", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_board_client" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L839", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_839", "target": "tests_test_board_client" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_reference.py", "source_location": "L18", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_reference_py", "target": "tests_test_board_client" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L38", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_sieges_py", "target": "tests_test_board_client" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L138", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_board_client" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L36", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_get_guild_member_py", "target": "tests_test_board_client" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_board_client" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_bot_client_py", "target": "tests_test_bot_client_make_ok_response" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_bot_client_py", "target": "tests_test_bot_client_async_client_that_raises" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L34", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_bot_client_py", "target": "tests_test_bot_client_async_client_that_returns" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L50", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_bot_client_py", "target": "tests_test_bot_client_test_notify_returns_false_on_http_error" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L59", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_bot_client_py", "target": "tests_test_bot_client_test_post_message_returns_false_on_http_error" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L68", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_bot_client_py", "target": "tests_test_bot_client_test_post_image_returns_none_on_http_error" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L77", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_bot_client_py", "target": "tests_test_bot_client_test_get_members_returns_empty_on_http_error" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L86", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_bot_client_py", "target": "tests_test_bot_client_test_notify_returns_true_on_success" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L112", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_bot_client_py", "target": "tests_test_bot_client_test_get_member_returns_not_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L123", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_bot_client_py", "target": "tests_test_bot_client_test_get_member_raises_on_connection_error" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L132", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_bot_client_py", "target": "tests_test_bot_client_test_get_member_raises_on_503" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_rationale_1", "target": "backend_tests_test_bot_client_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L88", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_test_notify_returns_true_on_success", "target": "tests_test_bot_client_make_ok_response" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L115", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_test_get_member_returns_not_member", "target": "tests_test_bot_client_make_ok_response" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L52", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_test_notify_returns_false_on_http_error", "target": "tests_test_bot_client_async_client_that_raises" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L61", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_test_post_message_returns_false_on_http_error", "target": "tests_test_bot_client_async_client_that_raises" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L70", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_test_post_image_returns_none_on_http_error", "target": "tests_test_bot_client_async_client_that_raises" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L79", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_test_get_members_returns_empty_on_http_error", "target": "tests_test_bot_client_async_client_that_raises" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L125", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_test_get_member_raises_on_connection_error", "target": "tests_test_bot_client_async_client_that_raises" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L25", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_rationale_25", "target": "tests_test_bot_client_async_client_that_raises" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L89", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_test_notify_returns_true_on_success", "target": "tests_test_bot_client_async_client_that_returns" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L116", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_test_get_member_returns_not_member", "target": "tests_test_bot_client_async_client_that_returns" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L143", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_test_get_member_raises_on_503", "target": "tests_test_bot_client_async_client_that_returns" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_rationale_25", "target": "tests_test_bot_client_async_client_that_returns" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L51", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_rationale_51", "target": "tests_test_bot_client_test_notify_returns_false_on_http_error" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L60", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_rationale_60", "target": "tests_test_bot_client_test_post_message_returns_false_on_http_error" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L69", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_rationale_69", "target": "tests_test_bot_client_test_post_image_returns_none_on_http_error" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L78", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_rationale_78", "target": "tests_test_bot_client_test_get_members_returns_empty_on_http_error" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L87", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_rationale_87", "target": "tests_test_bot_client_test_notify_returns_true_on_success" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L102", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_rationale_102", "target": "tests_test_bot_client_test_get_member_returns_not_member" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L113", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_rationale_113", "target": "tests_test_bot_client_test_get_member_returns_not_member" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L124", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_rationale_124", "target": "tests_test_bot_client_test_get_member_raises_on_connection_error" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_bot_client.py", "source_location": "L133", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_bot_client_rationale_133", "target": "tests_test_bot_client_test_get_member_raises_on_503" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_buildings_py", "target": "tests_test_sieges_make_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_buildings_py", "target": "tests_test_posts_make_building" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L46", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_buildings_py", "target": "tests_test_buildings_make_config" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L55", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_buildings_py", "target": "tests_test_buildings_make_post_priority_config" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L63", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_buildings_py", "target": "tests_test_buildings_scalars_all" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L70", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_buildings_py", "target": "tests_test_buildings_scalars_first" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L77", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_buildings_py", "target": "tests_test_buildings_scalar_one_or_none" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L94", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_buildings_py", "target": "tests_test_buildings_test_update_building_unbreak_restores_groups" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L172", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_buildings_py", "target": "tests_test_buildings_test_update_building_unbreak_restores_last_slot_count" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L247", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_buildings_py", "target": "tests_test_buildings_test_update_building_break_then_unbreak_roundtrip" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L392", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_buildings_py", "target": "tests_test_buildings_test_add_building_post_uses_priority_config" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_rationale_1", "target": "backend_tests_test_buildings_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L266", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_test_update_building_break_then_unbreak_roundtrip", "target": "tests_test_buildings_make_config" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L404", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_test_add_building_post_uses_priority_config", "target": "tests_test_buildings_make_config" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L106", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_buildings_make_config" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L979", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_default_configs", "target": "tests_test_buildings_make_config" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L401", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_test_add_building_post_uses_priority_config", "target": "tests_test_buildings_make_post_priority_config" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L162", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_py", "target": "tests_test_buildings_make_post_priority_config" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L227", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_test_clone_uses_post_priority_config_not_source_priority", "target": "tests_test_buildings_make_post_priority_config" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L64", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_rationale_64", "target": "tests_test_buildings_scalars_all" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L71", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_rationale_71", "target": "tests_test_buildings_scalars_first" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L78", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_rationale_78", "target": "tests_test_buildings_scalar_one_or_none" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L100", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_test_update_building_unbreak_restores_groups", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L102", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_test_update_building_unbreak_restores_groups", "target": "tests_test_posts_make_building" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L95", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_rationale_95", "target": "tests_test_buildings_test_update_building_unbreak_restores_groups" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_buildings.py", "source_location": "L161", "weight": 1.0, "source": "tests_test_buildings_test_update_building_unbreak_restores_groups", "target": "components_landingpage_test_list" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L182", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_test_update_building_unbreak_restores_last_slot_count", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L183", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_test_update_building_unbreak_restores_last_slot_count", "target": "tests_test_posts_make_building" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L173", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_rationale_173", "target": "tests_test_buildings_test_update_building_unbreak_restores_last_slot_count" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L257", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_test_update_building_break_then_unbreak_roundtrip", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L258", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_test_update_building_break_then_unbreak_roundtrip", "target": "tests_test_posts_make_building" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L248", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_rationale_248", "target": "tests_test_buildings_test_update_building_break_then_unbreak_roundtrip" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_buildings.py", "source_location": "L313", "weight": 1.0, "source": "tests_test_buildings_test_update_building_break_then_unbreak_roundtrip", "target": "components_landingpage_test_list" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L399", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_test_add_building_post_uses_priority_config", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_buildings.py", "source_location": "L393", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_buildings_rationale_393", "target": "tests_test_buildings_test_add_building_post_uses_priority_config" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L81", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_changelog_py", "target": "tests_test_changelog_test_get_status_fresh_user_returns_null" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L113", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_changelog_py", "target": "tests_test_changelog_test_mark_seen_then_get_status_returns_timestamp" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L154", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_changelog_py", "target": "tests_test_changelog_test_mark_seen_twice_is_idempotent" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L193", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_changelog_py", "target": "tests_test_changelog_test_get_status_no_auth_returns_401" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L218", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_changelog_py", "target": "tests_test_changelog_test_post_mark_seen_no_auth_returns_401" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L243", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_changelog_py", "target": "tests_test_changelog_test_get_status_service_token_returns_400" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_rationale_1", "target": "backend_tests_test_changelog_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L82", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_rationale_82", "target": "tests_test_changelog_test_get_status_fresh_user_returns_null" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L114", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_rationale_114", "target": "tests_test_changelog_test_mark_seen_then_get_status_returns_timestamp" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L155", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_rationale_155", "target": "tests_test_changelog_test_mark_seen_twice_is_idempotent" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L194", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_rationale_194", "target": "tests_test_changelog_test_get_status_no_auth_returns_401" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L219", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_rationale_219", "target": "tests_test_changelog_test_post_mark_seen_no_auth_returns_401" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_changelog.py", "source_location": "L244", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_changelog_rationale_244", "target": "tests_test_changelog_test_get_status_service_token_returns_400" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_comparison_py", "target": "tests_test_sieges_make_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L47", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_comparison_py", "target": "tests_test_comparison_test_compare_returns_404_when_no_completed_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L75", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_comparison_py", "target": "tests_test_comparison_test_compare_with_specific_endpoint_200" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L124", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_comparison_py", "target": "tests_test_comparison_build_siege_assignments" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L142", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_comparison_py", "target": "tests_test_comparison_test_compare_added_positions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L185", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_comparison_py", "target": "tests_test_comparison_test_compare_removed_positions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L221", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_comparison_py", "target": "tests_test_comparison_test_compare_unchanged_positions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L251", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_comparison_py", "target": "tests_test_comparison_test_compare_reserve_positions_excluded" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L276", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_comparison_py", "target": "tests_test_comparison_test_inactive_member_excluded_from_comparison" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L307", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_comparison_py", "target": "tests_test_comparison_test_inactive_member_rows_absent_from_comparison_result" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L364", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_comparison_py", "target": "tests_test_comparison_test_get_most_recent_completed_returns_none" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_comparison_rationale_1", "target": "backend_tests_test_comparison_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L50", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_comparison_test_compare_returns_404_when_no_completed_siege", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L146", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_comparison_test_compare_added_positions", "target": "tests_test_comparison_build_siege_assignments" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L187", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_comparison_test_compare_removed_positions", "target": "tests_test_comparison_build_siege_assignments" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L223", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_comparison_test_compare_unchanged_positions", "target": "tests_test_comparison_build_siege_assignments" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L314", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_comparison_test_inactive_member_rows_absent_from_comparison_result", "target": "tests_test_comparison_build_siege_assignments" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L125", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_comparison_rationale_125", "target": "tests_test_comparison_build_siege_assignments" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L143", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_comparison_rationale_143", "target": "tests_test_comparison_test_compare_added_positions" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_comparison.py", "source_location": "L176", "weight": 1.0, "source": "tests_test_comparison_test_compare_added_positions", "target": "api_sieges_comparesieges" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L186", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_comparison_rationale_186", "target": "tests_test_comparison_test_compare_removed_positions" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_comparison.py", "source_location": "L214", "weight": 1.0, "source": "tests_test_comparison_test_compare_removed_positions", "target": "api_sieges_comparesieges" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L222", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_comparison_rationale_222", "target": "tests_test_comparison_test_compare_unchanged_positions" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_comparison.py", "source_location": "L243", "weight": 1.0, "source": "tests_test_comparison_test_compare_unchanged_positions", "target": "api_sieges_comparesieges" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L252", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_comparison_rationale_252", "target": "tests_test_comparison_test_compare_reserve_positions_excluded" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_comparison.py", "source_location": "L271", "weight": 1.0, "source": "tests_test_comparison_test_compare_reserve_positions_excluded", "target": "api_sieges_comparesieges" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L277", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_comparison_rationale_277", "target": "tests_test_comparison_test_inactive_member_excluded_from_comparison" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L308", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_comparison_rationale_308", "target": "tests_test_comparison_test_inactive_member_rows_absent_from_comparison_result" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_comparison.py", "source_location": "L340", "weight": 1.0, "source": "tests_test_comparison_test_inactive_member_rows_absent_from_comparison_result", "target": "api_sieges_comparesieges" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L366", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_comparison_test_get_most_recent_completed_returns_none", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L349", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_comparison_rationale_349", "target": "tests_test_comparison_test_get_most_recent_completed_returns_none" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_comparison.py", "source_location": "L365", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_comparison_rationale_365", "target": "tests_test_comparison_test_get_most_recent_completed_returns_none" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L23", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_config_py", "target": "tests_test_config_testsettingsdefaults" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L99", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_config_py", "target": "tests_test_config_testenvironmentrequired" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L126", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_config_py", "target": "tests_test_config_testlifespanauthguard" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L130", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_config_py", "target": "tests_test_config_test_auth_disabled_allowed_in_development" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L162", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_config_py", "target": "tests_test_config_test_auth_disabled_rejected_in_production" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L186", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_config_py", "target": "tests_test_config_test_auth_disabled_rejected_in_test_environment" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L208", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_config_py", "target": "tests_test_config_test_auth_not_disabled_allowed_in_any_environment" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_rationale_1", "target": "backend_tests_test_config_py" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults", "target": "tests_test_config_testsettingsdefaults_make_settings" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L38", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults", "target": "tests_test_config_testsettingsdefaults_test_discord_client_id_defaults_to_empty" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L42", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults", "target": "tests_test_config_testsettingsdefaults_test_discord_client_secret_defaults_to_empty" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L46", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults", "target": "tests_test_config_testsettingsdefaults_test_discord_redirect_uri_defaults_to_empty" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L50", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults", "target": "tests_test_config_testsettingsdefaults_test_session_secret_defaults_to_empty" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L54", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults", "target": "tests_test_config_testsettingsdefaults_test_bot_service_token_defaults_to_empty" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L58", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults", "target": "tests_test_config_testsettingsdefaults_test_auth_disabled_defaults_to_false" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L62", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults", "target": "tests_test_config_testsettingsdefaults_test_discord_required_role_defaults_to_clan_deputies" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L66", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults", "target": "tests_test_config_testsettingsdefaults_test_discord_required_role_accepts_override" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L70", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults", "target": "tests_test_config_testsettingsdefaults_test_allowed_origins_defaults_to_localhost" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L74", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults", "target": "tests_test_config_testsettingsdefaults_test_allowed_origins_accepts_override" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L78", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults", "target": "tests_test_config_testsettingsdefaults_test_allowed_origins_accepts_comma_separated_values" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L82", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults", "target": "tests_test_config_testsettingsdefaults_test_new_fields_accept_provided_values" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_rationale_24", "target": "tests_test_config_testsettingsdefaults" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L39", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults_test_discord_client_id_defaults_to_empty", "target": "tests_test_config_testsettingsdefaults_make_settings" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L43", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults_test_discord_client_secret_defaults_to_empty", "target": "tests_test_config_testsettingsdefaults_make_settings" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L47", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults_test_discord_redirect_uri_defaults_to_empty", "target": "tests_test_config_testsettingsdefaults_make_settings" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L51", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults_test_session_secret_defaults_to_empty", "target": "tests_test_config_testsettingsdefaults_make_settings" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L55", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults_test_bot_service_token_defaults_to_empty", "target": "tests_test_config_testsettingsdefaults_make_settings" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L59", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults_test_auth_disabled_defaults_to_false", "target": "tests_test_config_testsettingsdefaults_make_settings" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L63", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults_test_discord_required_role_defaults_to_clan_deputies", "target": "tests_test_config_testsettingsdefaults_make_settings" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L67", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults_test_discord_required_role_accepts_override", "target": "tests_test_config_testsettingsdefaults_make_settings" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L71", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults_test_allowed_origins_defaults_to_localhost", "target": "tests_test_config_testsettingsdefaults_make_settings" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L75", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults_test_allowed_origins_accepts_override", "target": "tests_test_config_testsettingsdefaults_make_settings" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L79", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults_test_allowed_origins_accepts_comma_separated_values", "target": "tests_test_config_testsettingsdefaults_make_settings" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L83", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testsettingsdefaults_test_new_fields_accept_provided_values", "target": "tests_test_config_testsettingsdefaults_make_settings" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_rationale_27", "target": "tests_test_config_testsettingsdefaults_make_settings" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L102", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_testenvironmentrequired", "target": "tests_test_config_testenvironmentrequired_test_missing_environment_raises_validation_error" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L100", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_rationale_100", "target": "tests_test_config_testenvironmentrequired" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config.py", "source_location": "L127", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_rationale_127", "target": "tests_test_config_testlifespanauthguard" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L20", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_config_endpoint_py", "target": "tests_test_health_mock_db" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_config_endpoint_py", "target": "tests_test_config_endpoint_override_db" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L67", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_config_endpoint_py", "target": "tests_test_config_endpoint_test_config_returns_auth_disabled_true" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L94", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_config_endpoint_py", "target": "tests_test_config_endpoint_test_config_endpoint_is_public" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L123", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_config_endpoint_py", "target": "tests_test_config_endpoint_teststartupsessionsecretguard" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L127", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_config_endpoint_py", "target": "tests_test_config_endpoint_test_missing_session_secret_raises_at_startup" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L149", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_config_endpoint_py", "target": "tests_test_config_endpoint_test_changeme_placeholder_raises_at_startup" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L173", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_config_endpoint_py", "target": "tests_test_config_endpoint_test_changeme_uppercase_raises_at_startup" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L197", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_config_endpoint_py", "target": "tests_test_config_endpoint_test_present_session_secret_does_not_raise" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_endpoint_rationale_1", "target": "backend_tests_test_config_endpoint_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L37", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_endpoint_rationale_37", "target": "backend_tests_test_config_endpoint_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_config_endpoint.py", "source_location": "L124", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_config_endpoint_rationale_124", "target": "tests_test_config_endpoint_teststartupsessionsecretguard" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_cors_py", "target": "tests_test_cors_make_app" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L52", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_cors_py", "target": "tests_test_cors_cors_headers" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L64", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_cors_py", "target": "tests_test_cors_testallowedoriginsparsingintegration" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L112", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_cors_py", "target": "tests_test_cors_testallowedoriginreceivescorsheaders" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L144", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_cors_py", "target": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L176", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_cors_py", "target": "tests_test_cors_testpreflightrequest" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_rationale_1", "target": "backend_tests_test_cors_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L68", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration_test_single_origin_is_allowed", "target": "tests_test_cors_make_app" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L73", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration_test_first_of_two_origins_is_allowed", "target": "tests_test_cors_make_app" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L78", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration_test_second_of_two_origins_is_allowed", "target": "tests_test_cors_make_app" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L84", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration_test_whitespace_around_origins_is_stripped", "target": "tests_test_cors_make_app" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L90", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration_test_trailing_comma_is_ignored", "target": "tests_test_cors_make_app" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L96", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration_test_leading_comma_is_ignored", "target": "tests_test_cors_make_app" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L102", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration_test_whitespace_only_entries_are_excluded", "target": "tests_test_cors_make_app" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L128", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginreceivescorsheaders", "target": "tests_test_cors_make_app" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L122", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginreceivescorsheaders_test_allowed_origin_acao_matches_request_origin", "target": "tests_test_cors_make_app" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L134", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginreceivescorsheaders_test_localhost_dev_origin_allowed_by_default_config", "target": "tests_test_cors_make_app" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L148", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_disallowed_origin_has_no_acao_header", "target": "tests_test_cors_make_app" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L154", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_subdomain_not_allowed_when_only_apex_configured", "target": "tests_test_cors_make_app" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L160", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_http_disallowed_when_only_https_configured", "target": "tests_test_cors_make_app" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L166", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_wrong_port_disallowed", "target": "tests_test_cors_make_app" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L180", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testpreflightrequest_test_preflight_allowed_origin_returns_200", "target": "tests_test_cors_make_app" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L192", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testpreflightrequest_test_preflight_disallowed_origin_has_no_acao", "target": "tests_test_cors_make_app" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_rationale_27", "target": "tests_test_cors_make_app" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L69", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration_test_single_origin_is_allowed", "target": "tests_test_cors_cors_headers" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L74", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration_test_first_of_two_origins_is_allowed", "target": "tests_test_cors_cors_headers" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L79", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration_test_second_of_two_origins_is_allowed", "target": "tests_test_cors_cors_headers" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L85", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration_test_whitespace_around_origins_is_stripped", "target": "tests_test_cors_cors_headers" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L91", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration_test_trailing_comma_is_ignored", "target": "tests_test_cors_cors_headers" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L97", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration_test_leading_comma_is_ignored", "target": "tests_test_cors_cors_headers" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L103", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration_test_whitespace_only_entries_are_excluded", "target": "tests_test_cors_cors_headers" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L129", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginreceivescorsheaders", "target": "tests_test_cors_cors_headers" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L123", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginreceivescorsheaders_test_allowed_origin_acao_matches_request_origin", "target": "tests_test_cors_cors_headers" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L135", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginreceivescorsheaders_test_localhost_dev_origin_allowed_by_default_config", "target": "tests_test_cors_cors_headers" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L149", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_disallowed_origin_has_no_acao_header", "target": "tests_test_cors_cors_headers" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L155", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_subdomain_not_allowed_when_only_apex_configured", "target": "tests_test_cors_cors_headers" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L161", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_http_disallowed_when_only_https_configured", "target": "tests_test_cors_cors_headers" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L167", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_wrong_port_disallowed", "target": "tests_test_cors_cors_headers" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L53", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_rationale_53", "target": "tests_test_cors_cors_headers" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L67", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration", "target": "tests_test_cors_testallowedoriginsparsingintegration_test_single_origin_is_allowed" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L72", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration", "target": "tests_test_cors_testallowedoriginsparsingintegration_test_first_of_two_origins_is_allowed" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L77", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration", "target": "tests_test_cors_testallowedoriginsparsingintegration_test_second_of_two_origins_is_allowed" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L82", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration", "target": "tests_test_cors_testallowedoriginsparsingintegration_test_whitespace_around_origins_is_stripped" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L88", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration", "target": "tests_test_cors_testallowedoriginsparsingintegration_test_trailing_comma_is_ignored" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L94", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration", "target": "tests_test_cors_testallowedoriginsparsingintegration_test_leading_comma_is_ignored" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L100", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginsparsingintegration", "target": "tests_test_cors_testallowedoriginsparsingintegration_test_whitespace_only_entries_are_excluded" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L65", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_rationale_65", "target": "tests_test_cors_testallowedoriginsparsingintegration" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L83", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_rationale_83", "target": "tests_test_cors_testallowedoriginsparsingintegration_test_whitespace_around_origins_is_stripped" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L89", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_rationale_89", "target": "tests_test_cors_testallowedoriginsparsingintegration_test_trailing_comma_is_ignored" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L95", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_rationale_95", "target": "tests_test_cors_testallowedoriginsparsingintegration_test_leading_comma_is_ignored" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L101", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_rationale_101", "target": "tests_test_cors_testallowedoriginsparsingintegration_test_whitespace_only_entries_are_excluded" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L120", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginreceivescorsheaders", "target": "tests_test_cors_testallowedoriginreceivescorsheaders_test_allowed_origin_acao_matches_request_origin" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L132", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testallowedoriginreceivescorsheaders", "target": "tests_test_cors_testallowedoriginreceivescorsheaders_test_localhost_dev_origin_allowed_by_default_config" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L113", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_rationale_113", "target": "tests_test_cors_testallowedoriginreceivescorsheaders" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L127", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_rationale_127", "target": "tests_test_cors_testallowedoriginreceivescorsheaders" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L121", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_rationale_121", "target": "tests_test_cors_testallowedoriginreceivescorsheaders_test_allowed_origin_acao_matches_request_origin" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L133", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_rationale_133", "target": "tests_test_cors_testallowedoriginreceivescorsheaders_test_localhost_dev_origin_allowed_by_default_config" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L147", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders", "target": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_disallowed_origin_has_no_acao_header" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L152", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders", "target": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_subdomain_not_allowed_when_only_apex_configured" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L158", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders", "target": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_http_disallowed_when_only_https_configured" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L164", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders", "target": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_wrong_port_disallowed" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L145", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_rationale_145", "target": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L153", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_rationale_153", "target": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_subdomain_not_allowed_when_only_apex_configured" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L159", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_rationale_159", "target": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_http_disallowed_when_only_https_configured" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L165", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_rationale_165", "target": "tests_test_cors_testdisallowedoriginreceivesnocorsheaders_test_wrong_port_disallowed" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L179", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testpreflightrequest", "target": "tests_test_cors_testpreflightrequest_test_preflight_allowed_origin_returns_200" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L191", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_testpreflightrequest", "target": "tests_test_cors_testpreflightrequest_test_preflight_disallowed_origin_has_no_acao" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_cors.py", "source_location": "L177", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_cors_rationale_177", "target": "tests_test_cors_testpreflightrequest" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_discord_sync_py", "target": "tests_test_discord_sync_make_sync_match" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L50", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_discord_sync_py", "target": "tests_test_discord_sync_test_preview_returns_exact_match" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L75", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_discord_sync_py", "target": "tests_test_discord_sync_test_preview_returns_suggested_match" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L95", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_discord_sync_py", "target": "tests_test_discord_sync_test_preview_returns_ambiguous_match" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L135", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_discord_sync_py", "target": "tests_test_discord_sync_test_preview_reports_unmatched_clan_members" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L160", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_discord_sync_py", "target": "tests_test_discord_sync_test_apply_updates_matched_members" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L181", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_discord_sync_py", "target": "tests_test_discord_sync_test_apply_with_empty_list_returns_zero" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L196", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_discord_sync_py", "target": "tests_test_discord_sync_test_apply_with_unknown_member_id_skips_gracefully" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L262", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_discord_sync_py", "target": "tests_test_discord_sync_test_service_preview_exact_discord_id_match" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L332", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_discord_sync_py", "target": "tests_test_discord_sync_test_service_preview_suggested_name_username_match" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L368", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_discord_sync_py", "target": "tests_test_discord_sync_test_service_preview_ambiguous_multiple_guild_matches" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L406", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_discord_sync_py", "target": "tests_test_discord_sync_test_service_preview_unmatched_guild_and_clan" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L442", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_discord_sync_py", "target": "tests_test_discord_sync_test_service_apply_updates_discord_fields" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L474", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_discord_sync_py", "target": "tests_test_discord_sync_test_service_apply_unknown_member_id_skipped" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L498", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_discord_sync_py", "target": "tests_test_discord_sync_test_service_apply_empty_list_returns_zero" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_rationale_1", "target": "backend_tests_test_discord_sync_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L53", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_test_preview_returns_exact_match", "target": "tests_test_discord_sync_make_sync_match" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L78", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_test_preview_returns_suggested_match", "target": "tests_test_discord_sync_make_sync_match" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L98", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_test_preview_returns_ambiguous_match", "target": "tests_test_discord_sync_make_sync_match" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L51", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_rationale_51", "target": "tests_test_discord_sync_test_preview_returns_exact_match" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L76", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_rationale_76", "target": "tests_test_discord_sync_test_preview_returns_suggested_match" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L96", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_rationale_96", "target": "tests_test_discord_sync_test_preview_returns_ambiguous_match" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L116", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_rationale_116", "target": "tests_test_discord_sync_test_preview_reports_unmatched_clan_members" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L136", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_rationale_136", "target": "tests_test_discord_sync_test_preview_reports_unmatched_clan_members" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L161", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_rationale_161", "target": "tests_test_discord_sync_test_apply_updates_matched_members" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L182", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_rationale_182", "target": "tests_test_discord_sync_test_apply_with_empty_list_returns_zero" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L197", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_rationale_197", "target": "tests_test_discord_sync_test_apply_with_unknown_member_id_skips_gracefully" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L224", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_rationale_224", "target": "tests_test_discord_sync_test_service_preview_exact_discord_id_match" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L263", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_rationale_263", "target": "tests_test_discord_sync_test_service_preview_exact_discord_id_match" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L298", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_rationale_298", "target": "tests_test_discord_sync_test_service_preview_suggested_name_username_match" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L333", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_rationale_333", "target": "tests_test_discord_sync_test_service_preview_suggested_name_username_match" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L369", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_rationale_369", "target": "tests_test_discord_sync_test_service_preview_ambiguous_multiple_guild_matches" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L407", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_rationale_407", "target": "tests_test_discord_sync_test_service_preview_unmatched_guild_and_clan" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L443", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_rationale_443", "target": "tests_test_discord_sync_test_service_apply_updates_discord_fields" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L475", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_rationale_475", "target": "tests_test_discord_sync_test_service_apply_unknown_member_id_skipped" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_discord_sync.py", "source_location": "L499", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_sync_rationale_499", "target": "tests_test_discord_sync_test_service_apply_empty_list_returns_zero" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_enums.py", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_enums_py", "target": "tests_test_enums_test_building_type_labels_covers_all_values" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_enums.py", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_enums_py", "target": "tests_test_enums_test_building_type_labels_are_friendly_strings" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_enums.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_enums_rationale_1", "target": "backend_tests_test_enums_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_enums.py", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_enums_rationale_7", "target": "tests_test_enums_test_building_type_labels_covers_all_values" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_enums.py", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_enums_rationale_17", "target": "tests_test_enums_test_building_type_labels_are_friendly_strings" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_health.py", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_health_py", "target": "tests_test_health_mock_db" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_health.py", "source_location": "L18", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_health_py", "target": "tests_test_health_test_health_returns_healthy" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_health.py", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_health_rationale_19", "target": "tests_test_health_test_health_returns_healthy" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "pages_boardpage_test_makeboard" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_make_building_dict" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L43", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_make_group_dict" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L88", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_contains_title" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L95", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_contains_building_type" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L105", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_reserve_cell" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L114", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_disabled_cell" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L123", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_empty_board" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L130", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_all_building_types_colored" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L150", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_reserves_html_contains_title" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L156", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_reserves_html_contains_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L355", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_reserves_html_day1_color" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L174", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_reserves_html_no_role_column" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L194", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_generate_assignments_image_calls_render" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L211", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_generate_reserves_image_calls_render" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L231", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_group_header_present" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L242", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_group_header_before_members" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L254", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_single_row_per_group" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L281", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_buildings_side_by_side" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L315", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_heavy_hitter_color" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L328", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_no_role_map_fallback" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L339", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_role_color_on_span_not_background" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L363", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_reserves_html_novice_color" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L371", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_reserves_html_fallback_color" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L405", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_role_colors_match_ui" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L430", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_reserves_html_role_colors_match_ui" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L443", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_no_level_in_header" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L456", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_broken_building_no_level" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L468", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_building_number_in_thead" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L482", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_post_flat_table" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L516", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_image_gen_py", "target": "tests_test_image_gen_test_build_assignments_html_post_reserve_and_disabled" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_1", "target": "backend_tests_test_image_gen_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L98", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_contains_building_type", "target": "tests_test_image_gen_make_building_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L108", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_reserve_cell", "target": "tests_test_image_gen_make_building_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L117", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_disabled_cell", "target": "tests_test_image_gen_make_building_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L132", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_all_building_types_colored", "target": "tests_test_image_gen_make_building_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L235", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_group_header_present", "target": "tests_test_image_gen_make_building_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L246", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_group_header_before_members", "target": "tests_test_image_gen_make_building_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L263", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_single_row_per_group", "target": "tests_test_image_gen_make_building_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L290", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_buildings_side_by_side", "target": "tests_test_image_gen_make_building_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L319", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_heavy_hitter_color", "target": "tests_test_image_gen_make_building_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L332", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_no_role_map_fallback", "target": "tests_test_image_gen_make_building_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L343", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_role_color_on_span_not_background", "target": "tests_test_image_gen_make_building_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L414", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_role_colors_match_ui", "target": "tests_test_image_gen_make_building_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L446", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_no_level_in_header", "target": "tests_test_image_gen_make_building_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L459", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_broken_building_no_level", "target": "tests_test_image_gen_make_building_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L471", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_building_number_in_thead", "target": "tests_test_image_gen_make_building_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L484", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_post_flat_table", "target": "tests_test_image_gen_make_building_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L518", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_post_reserve_and_disabled", "target": "tests_test_image_gen_make_building_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L97", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_contains_building_type", "target": "tests_test_image_gen_make_group_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L107", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_reserve_cell", "target": "tests_test_image_gen_make_group_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L116", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_disabled_cell", "target": "tests_test_image_gen_make_group_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L233", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_group_header_present", "target": "tests_test_image_gen_make_group_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L244", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_group_header_before_members", "target": "tests_test_image_gen_make_group_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L262", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_single_row_per_group", "target": "tests_test_image_gen_make_group_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L288", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_buildings_side_by_side", "target": "tests_test_image_gen_make_group_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L318", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_heavy_hitter_color", "target": "tests_test_image_gen_make_group_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L331", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_no_role_map_fallback", "target": "tests_test_image_gen_make_group_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L342", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_role_color_on_span_not_background", "target": "tests_test_image_gen_make_group_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L413", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_role_colors_match_ui", "target": "tests_test_image_gen_make_group_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L445", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_no_level_in_header", "target": "tests_test_image_gen_make_group_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L458", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_broken_building_no_level", "target": "tests_test_image_gen_make_group_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L470", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_building_number_in_thead", "target": "tests_test_image_gen_make_group_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L488", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_post_flat_table", "target": "tests_test_image_gen_make_group_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L522", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_post_reserve_and_disabled", "target": "tests_test_image_gen_make_group_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L89", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_contains_title", "target": "pages_boardpage_test_makeboard" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L124", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_build_assignments_html_empty_board", "target": "pages_boardpage_test_makeboard" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L356", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_356", "target": "tests_test_image_gen_test_build_reserves_html_day1_color" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L175", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_175", "target": "tests_test_image_gen_test_build_reserves_html_no_role_column" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L195", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_test_generate_assignments_image_calls_render", "target": "pages_boardpage_test_makeboard" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L232", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_232", "target": "tests_test_image_gen_test_build_assignments_html_group_header_present" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L243", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_243", "target": "tests_test_image_gen_test_build_assignments_html_group_header_before_members" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L255", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_255", "target": "tests_test_image_gen_test_build_assignments_html_single_row_per_group" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L282", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_282", "target": "tests_test_image_gen_test_build_assignments_html_buildings_side_by_side" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L316", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_316", "target": "tests_test_image_gen_test_build_assignments_html_heavy_hitter_color" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L329", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_329", "target": "tests_test_image_gen_test_build_assignments_html_no_role_map_fallback" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L340", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_340", "target": "tests_test_image_gen_test_build_assignments_html_role_color_on_span_not_background" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L364", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_364", "target": "tests_test_image_gen_test_build_reserves_html_novice_color" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L372", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_372", "target": "tests_test_image_gen_test_build_reserves_html_fallback_color" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L406", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_406", "target": "tests_test_image_gen_test_build_assignments_html_role_colors_match_ui" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L431", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_431", "target": "tests_test_image_gen_test_build_reserves_html_role_colors_match_ui" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L444", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_444", "target": "tests_test_image_gen_test_build_assignments_html_no_level_in_header" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L457", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_457", "target": "tests_test_image_gen_test_build_assignments_html_broken_building_no_level" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L469", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_469", "target": "tests_test_image_gen_test_build_assignments_html_building_number_in_thead" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L483", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_483", "target": "tests_test_image_gen_test_build_assignments_html_post_flat_table" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_gen.py", "source_location": "L517", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_image_gen_rationale_517", "target": "tests_test_image_gen_test_build_assignments_html_post_reserve_and_disabled" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_py", "target": "tests_test_sieges_make_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L43", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_py", "target": "tests_test_lifecycle_test_activate_planning_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L66", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_py", "target": "tests_test_lifecycle_test_activate_already_active_returns_400" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L85", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_py", "target": "tests_test_lifecycle_test_complete_active_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L108", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_py", "target": "tests_test_lifecycle_test_complete_planning_siege_returns_400" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L127", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_py", "target": "tests_test_lifecycle_test_clone_siege_returns_201" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L154", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_py", "target": "tests_test_lifecycle_make_post_ns" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L166", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_py", "target": "tests_test_lifecycle_make_src_position_ns" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L176", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_py", "target": "tests_test_lifecycle_make_src_group_ns" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L184", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_py", "target": "tests_test_lifecycle_make_src_building_ns" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L196", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_py", "target": "tests_test_lifecycle_test_clone_uses_post_priority_config_not_source_priority" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_rationale_1", "target": "backend_tests_test_lifecycle_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L44", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_test_activate_planning_siege", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L86", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_test_complete_active_siege", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L128", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_test_clone_siege_returns_201", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L205", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_test_clone_uses_post_priority_config_not_source_priority", "target": "tests_test_lifecycle_make_post_ns" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L209", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_test_clone_uses_post_priority_config_not_source_priority", "target": "tests_test_lifecycle_make_src_position_ns" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L206", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_test_clone_uses_post_priority_config_not_source_priority", "target": "tests_test_lifecycle_make_src_group_ns" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L211", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_test_clone_uses_post_priority_config_not_source_priority", "target": "tests_test_lifecycle_make_src_building_ns" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle.py", "source_location": "L197", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_rationale_197", "target": "tests_test_lifecycle_test_clone_uses_post_priority_config_not_source_priority" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L18", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_integration_py", "target": "tests_test_sieges_make_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L67", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_integration_py", "target": "tests_test_posts_make_building" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L80", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_integration_py", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L100", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_integration_py", "target": "tests_test_validation_default_configs" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L112", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_integration_py", "target": "tests_test_lifecycle_integration_build_valid_siege_graph" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L182", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_integration_py", "target": "tests_test_post_suggestions_make_session" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L215", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_lifecycle_integration_py", "target": "tests_test_lifecycle_integration_test_full_siege_lifecycle" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_integration_rationale_1", "target": "backend_tests_test_lifecycle_integration_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L121", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_integration_build_valid_siege_graph", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L171", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_integration_build_valid_siege_graph", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L230", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_integration_test_full_siege_lifecycle", "target": "tests_test_lifecycle_integration_build_valid_siege_graph" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L113", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_integration_rationale_113", "target": "tests_test_lifecycle_integration_build_valid_siege_graph" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L219", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_integration_test_full_siege_lifecycle", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L221", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_integration_test_full_siege_lifecycle", "target": "tests_test_post_suggestions_make_session" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L216", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_integration_rationale_216", "target": "tests_test_lifecycle_integration_test_full_siege_lifecycle" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_lifecycle_integration.py", "source_location": "L183", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_lifecycle_integration_rationale_183", "target": "tests_test_post_suggestions_make_session" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_members.py", "source_location": "L43", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_members_py", "target": "tests_test_members_test_list_members_returns_empty_list" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_members.py", "source_location": "L59", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_members_py", "target": "tests_test_members_test_create_member_returns_201" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_members.py", "source_location": "L83", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_members_py", "target": "tests_test_members_test_create_member_duplicate_name_returns_409" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_members.py", "source_location": "L106", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_members_py", "target": "tests_test_members_test_get_member_not_found_returns_404" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_members.py", "source_location": "L124", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_members_py", "target": "tests_test_members_test_delete_member_returns_204" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_members.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_sieges_rationale_1", "target": "backend_tests_test_members_py" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L20", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_member_changelog_column_py", "target": "tests_test_member_changelog_column_test_last_seen_changelog_at_column_exists" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L32", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_member_changelog_column_py", "target": "tests_test_member_changelog_column_test_last_seen_changelog_at_column_is_nullable" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L50", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_member_changelog_column_py", "target": "tests_test_member_changelog_column_test_last_seen_changelog_at_has_no_server_default" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L68", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_member_changelog_column_py", "target": "tests_test_member_changelog_column_test_last_seen_changelog_at_column_type_is_datetime" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L89", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_member_changelog_column_py", "target": "tests_test_member_changelog_column_test_last_seen_changelog_at_accepts_none_at_python_level" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L103", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_member_changelog_column_py", "target": "tests_test_member_changelog_column_test_last_seen_changelog_at_accepts_datetime_at_python_level" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_member_changelog_column_rationale_1", "target": "backend_tests_test_member_changelog_column_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_member_changelog_column_rationale_21", "target": "tests_test_member_changelog_column_test_last_seen_changelog_at_column_exists" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_member_changelog_column_rationale_33", "target": "tests_test_member_changelog_column_test_last_seen_changelog_at_column_is_nullable" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L51", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_member_changelog_column_rationale_51", "target": "tests_test_member_changelog_column_test_last_seen_changelog_at_has_no_server_default" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L69", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_member_changelog_column_rationale_69", "target": "tests_test_member_changelog_column_test_last_seen_changelog_at_column_type_is_datetime" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L90", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_member_changelog_column_rationale_90", "target": "tests_test_member_changelog_column_test_last_seen_changelog_at_accepts_none_at_python_level" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_member_changelog_column.py", "source_location": "L104", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_member_changelog_column_rationale_104", "target": "tests_test_member_changelog_column_test_last_seen_changelog_at_accepts_datetime_at_python_level" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_sieges_make_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L52", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L69", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_make_batch" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L82", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_make_batch_result" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L112", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_make_db_session" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L151", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_test_notify_returns_batch_id" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L221", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_test_notify_siege_not_found" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L247", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_test_notify_siege_complete_returns_400" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L272", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_test_get_notification_batch_returns_results" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L324", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_test_get_notification_batch_not_found" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L354", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_test_post_to_channel_success" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L415", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_test_post_to_channel_posts_images_to_images_channel_and_summary_to_text_channel" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L497", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_test_post_to_channel_image_failure_returns_failed" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L556", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_test_notify_skips_member_with_no_discord_username" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L620", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_test_notify_skips_member_not_in_guild" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L679", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_test_notify_eligible_member_gets_result_row_and_dm" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L745", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_test_notify_skipped_count_reflects_all_skipped_members" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L809", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_test_notify_blocked_when_siege_has_validation_errors" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L855", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_test_notify_passes_validation_guard_when_no_errors" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L912", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_test_notify_bot_unreachable_falls_back_to_username_filter" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L979", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_test_send_dms_sets_completed_status_even_when_bot_raises" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L1041", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_test_notify_no_date_returns_400" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L1068", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notifications_py", "target": "tests_test_notifications_test_post_to_channel_no_date_returns_400" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_rationale_1", "target": "backend_tests_test_notifications_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L154", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_returns_batch_id", "target": "tests_test_notifications_make_batch" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L273", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_get_notification_batch_returns_results", "target": "tests_test_notifications_make_batch" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L987", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_send_dms_sets_completed_status_even_when_bot_raises", "target": "tests_test_notifications_make_batch" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L274", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_get_notification_batch_returns_results", "target": "tests_test_notifications_make_batch_result" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L988", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_send_dms_sets_completed_status_even_when_bot_raises", "target": "tests_test_notifications_make_batch_result" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L113", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_rationale_113", "target": "tests_test_notifications_make_db_session" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L152", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_returns_batch_id", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L153", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_returns_batch_id", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L248", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_siege_complete_returns_400", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L355", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_post_to_channel_success", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L356", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_post_to_channel_success", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L420", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_post_to_channel_posts_images_to_images_channel_and_summary_to_text_channel", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L421", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_post_to_channel_posts_images_to_images_channel_and_summary_to_text_channel", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L416", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_rationale_416", "target": "tests_test_notifications_test_post_to_channel_posts_images_to_images_channel_and_summary_to_text_channel" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L499", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_post_to_channel_image_failure_returns_failed", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L500", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_post_to_channel_image_failure_returns_failed", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L498", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_rationale_498", "target": "tests_test_notifications_test_post_to_channel_image_failure_returns_failed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L558", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_skips_member_with_no_discord_username", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L559", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_skips_member_with_no_discord_username", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L557", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_rationale_557", "target": "tests_test_notifications_test_notify_skips_member_with_no_discord_username" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L622", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_skips_member_not_in_guild", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L623", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_skips_member_not_in_guild", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L621", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_rationale_621", "target": "tests_test_notifications_test_notify_skips_member_not_in_guild" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L681", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_eligible_member_gets_result_row_and_dm", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L682", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_eligible_member_gets_result_row_and_dm", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L680", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_rationale_680", "target": "tests_test_notifications_test_notify_eligible_member_gets_result_row_and_dm" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L747", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_skipped_count_reflects_all_skipped_members", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L748", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_skipped_count_reflects_all_skipped_members", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L746", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_rationale_746", "target": "tests_test_notifications_test_notify_skipped_count_reflects_all_skipped_members" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L813", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_blocked_when_siege_has_validation_errors", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L810", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_rationale_810", "target": "tests_test_notifications_test_notify_blocked_when_siege_has_validation_errors" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L859", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_passes_validation_guard_when_no_errors", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L860", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_passes_validation_guard_when_no_errors", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L856", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_rationale_856", "target": "tests_test_notifications_test_notify_passes_validation_guard_when_no_errors" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L918", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_bot_unreachable_falls_back_to_username_filter", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L919", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_bot_unreachable_falls_back_to_username_filter", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L913", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_rationale_913", "target": "tests_test_notifications_test_notify_bot_unreachable_falls_back_to_username_filter" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L980", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_rationale_980", "target": "tests_test_notifications_test_send_dms_sets_completed_status_even_when_bot_raises" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L1043", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_notify_no_date_returns_400", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L1042", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_rationale_1042", "target": "tests_test_notifications_test_notify_no_date_returns_400" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L1070", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_test_post_to_channel_no_date_returns_400", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notifications.py", "source_location": "L1069", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notifications_rationale_1069", "target": "tests_test_notifications_test_post_to_channel_no_date_returns_400" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L31", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_stronghold_pos" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L40", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_defense_tower_pos" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L49", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_post_pos" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L63", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_no_previous_siege_all_current_in_set_at" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L84", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_empty_sections_omitted_all_no_change" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L105", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_full_diff_three_sections" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L149", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_header_contains_siege_date_and_member_settings" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L169", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_none_fields_display_as_unknown" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L183", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_false_reserve_set_displays_no" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L201", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_single_building_type_omits_building_number" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L222", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_multiple_building_type_includes_building_number" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L241", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_post_always_uses_short_format" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L257", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_post_with_single_count_still_uses_short_format" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L276", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_section_order_no_change_then_remove_then_set_at" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L303", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_positions_sorted_within_section" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L336", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_no_change_section_has_header_and_plain_position_lines" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L361", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_remove_from_section_has_header_and_plain_position_lines" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L385", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_set_at_section_has_header_and_plain_position_lines" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L414", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_blank_line_between_no_change_and_remove_from" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L431", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_blank_line_between_remove_from_and_set_at" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L447", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_no_blank_line_when_only_one_section" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L464", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_blank_line_count_with_all_three_sections" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L488", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_all_three_section_headers_exact_format" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L508", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_notification_message_py", "target": "tests_test_notification_message_test_header_line_not_a_position_line" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_1", "target": "backend_tests_test_notification_message_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L65", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_no_previous_siege_all_current_in_set_at", "target": "tests_test_notification_message_stronghold_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L86", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_empty_sections_omitted_all_no_change", "target": "tests_test_notification_message_stronghold_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L107", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_full_diff_three_sections", "target": "tests_test_notification_message_stronghold_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L203", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_single_building_type_omits_building_number", "target": "tests_test_notification_message_stronghold_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L278", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_section_order_no_change_then_remove_then_set_at", "target": "tests_test_notification_message_stronghold_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L306", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_positions_sorted_within_section", "target": "tests_test_notification_message_stronghold_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L342", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_no_change_section_has_header_and_plain_position_lines", "target": "tests_test_notification_message_stronghold_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L416", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_blank_line_between_no_change_and_remove_from", "target": "tests_test_notification_message_stronghold_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L467", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_blank_line_count_with_all_three_sections", "target": "tests_test_notification_message_stronghold_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L490", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_all_three_section_headers_exact_format", "target": "tests_test_notification_message_stronghold_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L224", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_multiple_building_type_includes_building_number", "target": "tests_test_notification_message_defense_tower_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L279", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_section_order_no_change_then_remove_then_set_at", "target": "tests_test_notification_message_defense_tower_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L65", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_no_previous_siege_all_current_in_set_at", "target": "tests_test_notification_message_post_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L86", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_empty_sections_omitted_all_no_change", "target": "tests_test_notification_message_post_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L108", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_full_diff_three_sections", "target": "tests_test_notification_message_post_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L243", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_post_always_uses_short_format", "target": "tests_test_notification_message_post_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L259", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_post_with_single_count_still_uses_short_format", "target": "tests_test_notification_message_post_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L280", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_section_order_no_change_then_remove_then_set_at", "target": "tests_test_notification_message_post_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L307", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_positions_sorted_within_section", "target": "tests_test_notification_message_post_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L342", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_no_change_section_has_header_and_plain_position_lines", "target": "tests_test_notification_message_post_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L372", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_remove_from_section_has_header_and_plain_position_lines", "target": "tests_test_notification_message_post_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L395", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_set_at_section_has_header_and_plain_position_lines", "target": "tests_test_notification_message_post_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L417", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_blank_line_between_no_change_and_remove_from", "target": "tests_test_notification_message_post_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L433", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_blank_line_between_remove_from_and_set_at", "target": "tests_test_notification_message_post_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L453", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_no_blank_line_when_only_one_section", "target": "tests_test_notification_message_post_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L468", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_blank_line_count_with_all_three_sections", "target": "tests_test_notification_message_post_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L491", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_all_three_section_headers_exact_format", "target": "tests_test_notification_message_post_pos" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L514", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_test_header_line_not_a_position_line", "target": "tests_test_notification_message_post_pos" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L64", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_64", "target": "tests_test_notification_message_test_no_previous_siege_all_current_in_set_at" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L85", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_85", "target": "tests_test_notification_message_test_empty_sections_omitted_all_no_change" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L106", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_106", "target": "tests_test_notification_message_test_full_diff_three_sections" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L150", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_150", "target": "tests_test_notification_message_test_header_contains_siege_date_and_member_settings" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L170", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_170", "target": "tests_test_notification_message_test_none_fields_display_as_unknown" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L184", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_184", "target": "tests_test_notification_message_test_false_reserve_set_displays_no" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L202", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_202", "target": "tests_test_notification_message_test_single_building_type_omits_building_number" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L223", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_202", "target": "tests_test_notification_message_test_multiple_building_type_includes_building_number" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L242", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_242", "target": "tests_test_notification_message_test_post_always_uses_short_format" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L258", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_258", "target": "tests_test_notification_message_test_post_with_single_count_still_uses_short_format" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L277", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_277", "target": "tests_test_notification_message_test_section_order_no_change_then_remove_then_set_at" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L304", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_304", "target": "tests_test_notification_message_test_positions_sorted_within_section" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L337", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_337", "target": "tests_test_notification_message_test_no_change_section_has_header_and_plain_position_lines" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L362", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_362", "target": "tests_test_notification_message_test_remove_from_section_has_header_and_plain_position_lines" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L386", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_386", "target": "tests_test_notification_message_test_set_at_section_has_header_and_plain_position_lines" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L415", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_415", "target": "tests_test_notification_message_test_blank_line_between_no_change_and_remove_from" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L432", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_432", "target": "tests_test_notification_message_test_blank_line_between_remove_from_and_set_at" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L448", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_448", "target": "tests_test_notification_message_test_no_blank_line_when_only_one_section" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L465", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_465", "target": "tests_test_notification_message_test_blank_line_count_with_all_three_sections" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L489", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_489", "target": "tests_test_notification_message_test_all_three_section_headers_exact_format" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_notification_message.py", "source_location": "L509", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_notification_message_rationale_509", "target": "tests_test_notification_message_test_header_line_not_a_position_line" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_posts.py", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_posts_py", "target": "tests_test_posts_make_building" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_posts.py", "source_location": "L25", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_posts_py", "target": "tests_test_posts_make_post" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_posts.py", "source_location": "L55", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_posts_py", "target": "tests_test_posts_test_list_posts_returns_list" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_posts.py", "source_location": "L76", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_posts_py", "target": "tests_test_posts_test_update_post_priority" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_posts.py", "source_location": "L93", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_posts_py", "target": "tests_test_posts_test_set_post_conditions_too_many_returns_400" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_posts.py", "source_location": "L114", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_posts_py", "target": "tests_test_posts_test_list_posts_sorted_by_building_number" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_posts.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_posts_rationale_1", "target": "backend_tests_test_posts_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_posts.py", "source_location": "L40", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_posts_make_post", "target": "tests_test_posts_make_building" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L88", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L216", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_single_post_single_member_match", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L245", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_no_match_produces_skip_reason_no_match", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L270", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_reserve_position_produces_skip_reason_reserve", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L289", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_disabled_position_produces_skip_reason_disabled", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L318", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_post_with_no_active_conditions_produces_skip_reason_no_conditions", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L344", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_post_with_conditions_but_no_matching_member_still_no_match", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L371", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_mixed_no_conditions_no_match_and_assigned_in_one_preview", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L419", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_higher_priority_post_gets_member_first", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L454", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_second_post_prefers_different_condition", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L488", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_prefers_less_loaded_member", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L516", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_name_tiebreak_picks_alphabetically_lower", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L540", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_duplicate_penalty_beats_assignment_count", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L572", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_determinism_same_output_on_repeat", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L621", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_current_member_preferred_when_equally_qualified", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L669", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_lowest_condition_id_picked_as_tiebreak", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L718", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_suboptimality_invariants_hold", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L771", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_matches_current_true_when_same_assignment", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L791", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_matches_current_false_for_null_suggestion", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L821", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_no_members_all_skip_no_match", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1196", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_skips_post_when_only_candidate_has_used_condition", "target": "tests_test_posts_make_building" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L45", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L221", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule1_inactive_member_error", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L241", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule1_active_member_no_error", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L270", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_broken_building_assignment_counts_toward_scroll_limit", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L308", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_broken_and_healthy_both_count_toward_scroll_limit", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L348", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_exceeds_scroll_count", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L370", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_within_scroll_count", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L408", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule3_valid_building_number", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L425", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule4_invalid_group_number", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L442", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule4_valid_group_number", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L459", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule5_position_number_exceeds_slot_count", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L476", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule5_valid_position_number", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L516", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule7_post_has_multiple_groups", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L538", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule7_post_has_exactly_one_group", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L558", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule8_disabled_with_member", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L576", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule8_reserve_with_member", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L594", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule8_valid_state", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L631", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule9_correct_building_count", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L648", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule10_empty_unresolved_slot", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L667", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule10_message_uses_position_name", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L692", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule10_no_warning_when_disabled", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L713", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule11_member_pref_no_match", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L740", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule11_no_warning_when_no_preferences", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L765", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule13_missing_attack_day_assigned_member", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L801", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule13_attack_day_set", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L851", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_hh_no_reserve", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L871", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_advanced_no_reserve", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L891", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_hh_reserve_configured", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L911", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_non_hh_no_reserve_no_warning", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L930", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule16_post_fewer_than_3_conditions", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L957", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule16_post_has_3_conditions", "target": "tests_test_posts_make_building" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_posts.py", "source_location": "L56", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_posts_test_list_posts_returns_list", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_posts.py", "source_location": "L77", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_posts_test_update_post_priority", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_posts.py", "source_location": "L123", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_posts_test_list_posts_sorted_by_building_number", "target": "tests_test_posts_make_post" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L102", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L217", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_single_post_single_member_match", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L246", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_no_match_produces_skip_reason_no_match", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L271", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_reserve_position_produces_skip_reason_reserve", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L290", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_disabled_position_produces_skip_reason_disabled", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L320", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_post_with_no_active_conditions_produces_skip_reason_no_conditions", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L345", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_post_with_conditions_but_no_matching_member_still_no_match", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L372", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_mixed_no_conditions_no_match_and_assigned_in_one_preview", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L420", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_higher_priority_post_gets_member_first", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L456", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_second_post_prefers_different_condition", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L489", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_prefers_less_loaded_member", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L517", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_name_tiebreak_picks_alphabetically_lower", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L541", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_duplicate_penalty_beats_assignment_count", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L573", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_determinism_same_output_on_repeat", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L622", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_current_member_preferred_when_equally_qualified", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L670", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_lowest_condition_id_picked_as_tiebreak", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L720", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_suboptimality_invariants_hold", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L772", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_matches_current_true_when_same_assignment", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L792", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_matches_current_false_for_null_suggestion", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L822", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_no_members_all_skip_no_match", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1197", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_skips_post_when_only_candidate_has_used_condition", "target": "tests_test_posts_make_post" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L115", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L711", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule11_member_pref_no_match", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L738", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule11_no_warning_when_no_preferences", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L928", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule16_post_fewer_than_3_conditions", "target": "tests_test_posts_make_post" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L955", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule16_post_has_3_conditions", "target": "tests_test_posts_make_post" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L115", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "tests_test_posts_make_post" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L97", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "tests_test_posts_make_post" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.test.tsx", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "tests_test_posts_make_post" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_posts.py", "source_location": "L115", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_posts_rationale_115", "target": "tests_test_posts_test_list_posts_sorted_by_building_number" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L42", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_validation_make_condition" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L61", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L117", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_sieges_make_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L140", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_make_session" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L155", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_preview" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L195", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_raises_400_on_completed_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L209", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_single_post_single_member_match" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L237", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_no_match_produces_skip_reason_no_match" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L263", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_reserve_position_produces_skip_reason_reserve" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L282", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_disabled_position_produces_skip_reason_disabled" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L306", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_post_with_no_active_conditions_produces_skip_reason_no_conditions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L332", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_post_with_conditions_but_no_matching_member_still_no_match" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L356", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_mixed_no_conditions_no_match_and_assigned_in_one_preview" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L400", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_higher_priority_post_gets_member_first" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L444", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_second_post_prefers_different_condition" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L478", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_prefers_less_loaded_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L506", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_name_tiebreak_picks_alphabetically_lower" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L527", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_duplicate_penalty_beats_assignment_count" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L564", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_determinism_same_output_on_repeat" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L591", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_current_member_preferred_when_equally_qualified" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L660", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_lowest_condition_id_picked_as_tiebreak" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L685", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_suboptimality_invariants_hold" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L763", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_matches_current_true_when_same_assignment" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L783", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_matches_current_false_for_null_suggestion" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L808", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_empty_siege_returns_empty_assignments" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L816", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_no_members_all_skip_no_match" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L883", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_apply" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L926", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_preview_data" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L931", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_entry_dict" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L955", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_apply_expired_preview_raises_409" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L969", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_apply_missing_preview_raises_409" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L978", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_apply_empty_position_ids_is_noop" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L994", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_apply_unknown_position_ids_silently_ignored" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1011", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_apply_null_member_entries_are_skipped" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1025", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_apply_subset_only_writes_checked_positions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1054", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_apply_stale_position_disabled_returns_409" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1072", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_apply_stale_position_reserve_returns_409" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1090", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_apply_stale_member_inactive_returns_409" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1108", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_apply_member_changed_returns_409" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1127", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_apply_multiple_stale_all_surfaced_in_single_409" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1157", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_apply_completed_siege_raises_400" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1182", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_py", "target": "tests_test_post_suggestions_test_preview_skips_post_when_only_candidate_has_used_condition" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_1", "target": "backend_tests_test_post_suggestions_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L157", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_preview", "target": "tests_test_post_suggestions_make_session" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L141", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_141", "target": "tests_test_post_suggestions_make_session" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L199", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_raises_400_on_completed_siege", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L220", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_single_post_single_member_match", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L249", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_no_match_produces_skip_reason_no_match", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L274", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_reserve_position_produces_skip_reason_reserve", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L293", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_disabled_position_produces_skip_reason_disabled", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L323", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_post_with_no_active_conditions_produces_skip_reason_no_conditions", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L348", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_post_with_conditions_but_no_matching_member_still_no_match", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L385", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_mixed_no_conditions_no_match_and_assigned_in_one_preview", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L429", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_higher_priority_post_gets_member_first", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L465", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_second_post_prefers_different_condition", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L493", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_prefers_less_loaded_member", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L520", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_name_tiebreak_picks_alphabetically_lower", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L554", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_duplicate_penalty_beats_assignment_count", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L580", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_determinism_same_output_on_repeat", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L626", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_current_member_preferred_when_equally_qualified", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L673", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_lowest_condition_id_picked_as_tiebreak", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L728", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_suboptimality_invariants_hold", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L775", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_matches_current_true_when_same_assignment", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L795", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_matches_current_false_for_null_suggestion", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L811", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_empty_siege_returns_empty_assignments", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L825", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_no_members_all_skip_no_match", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1206", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_skips_post_when_only_candidate_has_used_condition", "target": "tests_test_post_suggestions_preview" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L156", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_156", "target": "tests_test_post_suggestions_preview" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L665", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "tests_test_post_suggestions_preview" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L200", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "tests_test_post_suggestions_preview" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L163", "weight": 1.0, "source": "tests_test_post_suggestions_preview", "target": "components_landingpage_test_list" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L197", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_raises_400_on_completed_siege", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L196", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_196", "target": "tests_test_post_suggestions_test_preview_raises_400_on_completed_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L211", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_single_post_single_member_match", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L213", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_single_post_single_member_match", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L218", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_single_post_single_member_match", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L210", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_210", "target": "tests_test_post_suggestions_test_preview_single_post_single_member_match" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L239", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_no_match_produces_skip_reason_no_match", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L242", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_no_match_produces_skip_reason_no_match", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L247", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_no_match_produces_skip_reason_no_match", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L238", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_238", "target": "tests_test_post_suggestions_test_preview_no_match_produces_skip_reason_no_match" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L265", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_reserve_position_produces_skip_reason_reserve", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L267", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_reserve_position_produces_skip_reason_reserve", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L272", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_reserve_position_produces_skip_reason_reserve", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L264", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_264", "target": "tests_test_post_suggestions_test_preview_reserve_position_produces_skip_reason_reserve" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L284", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_disabled_position_produces_skip_reason_disabled", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L286", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_disabled_position_produces_skip_reason_disabled", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L291", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_disabled_position_produces_skip_reason_disabled", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L283", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_283", "target": "tests_test_post_suggestions_test_preview_disabled_position_produces_skip_reason_disabled" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L314", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_post_with_no_active_conditions_produces_skip_reason_no_conditions", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L315", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_post_with_no_active_conditions_produces_skip_reason_no_conditions", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L321", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_post_with_no_active_conditions_produces_skip_reason_no_conditions", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L307", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_307", "target": "tests_test_post_suggestions_test_preview_post_with_no_active_conditions_produces_skip_reason_no_conditions" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L338", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_post_with_conditions_but_no_matching_member_still_no_match", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L341", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_post_with_conditions_but_no_matching_member_still_no_match", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L346", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_post_with_conditions_but_no_matching_member_still_no_match", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L333", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_333", "target": "tests_test_post_suggestions_test_preview_post_with_conditions_but_no_matching_member_still_no_match" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L364", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_mixed_no_conditions_no_match_and_assigned_in_one_preview", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L367", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_mixed_no_conditions_no_match_and_assigned_in_one_preview", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L384", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_mixed_no_conditions_no_match_and_assigned_in_one_preview", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L357", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_357", "target": "tests_test_post_suggestions_test_preview_mixed_no_conditions_no_match_and_assigned_in_one_preview" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L411", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_higher_priority_post_gets_member_first", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L414", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_higher_priority_post_gets_member_first", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L427", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_higher_priority_post_gets_member_first", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L401", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_401", "target": "tests_test_post_suggestions_test_preview_higher_priority_post_gets_member_first" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L446", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_second_post_prefers_different_condition", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L450", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_second_post_prefers_different_condition", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L464", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_second_post_prefers_different_condition", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L445", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_445", "target": "tests_test_post_suggestions_test_preview_second_post_prefers_different_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L480", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_prefers_less_loaded_member", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L483", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_prefers_less_loaded_member", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L491", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_prefers_less_loaded_member", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L479", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_479", "target": "tests_test_post_suggestions_test_preview_prefers_less_loaded_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L508", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_name_tiebreak_picks_alphabetically_lower", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L511", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_name_tiebreak_picks_alphabetically_lower", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L519", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_name_tiebreak_picks_alphabetically_lower", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L507", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_507", "target": "tests_test_post_suggestions_test_preview_name_tiebreak_picks_alphabetically_lower" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L530", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_duplicate_penalty_beats_assignment_count", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L535", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_duplicate_penalty_beats_assignment_count", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L553", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_duplicate_penalty_beats_assignment_count", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L528", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_528", "target": "tests_test_post_suggestions_test_preview_duplicate_penalty_beats_assignment_count" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L566", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_determinism_same_output_on_repeat", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L575", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_determinism_same_output_on_repeat", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L577", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_determinism_same_output_on_repeat", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L565", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_565", "target": "tests_test_post_suggestions_test_preview_determinism_same_output_on_repeat" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L611", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_current_member_preferred_when_equally_qualified", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L614", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_current_member_preferred_when_equally_qualified", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L623", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_current_member_preferred_when_equally_qualified", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L592", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_592", "target": "tests_test_post_suggestions_test_preview_current_member_preferred_when_equally_qualified" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L662", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_lowest_condition_id_picked_as_tiebreak", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L665", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_lowest_condition_id_picked_as_tiebreak", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L671", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_lowest_condition_id_picked_as_tiebreak", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L661", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_661", "target": "tests_test_post_suggestions_test_preview_lowest_condition_id_picked_as_tiebreak" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L706", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_suboptimality_invariants_hold", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L713", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_suboptimality_invariants_hold", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L727", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_suboptimality_invariants_hold", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L686", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_686", "target": "tests_test_post_suggestions_test_preview_suboptimality_invariants_hold" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L765", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_matches_current_true_when_same_assignment", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L767", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_matches_current_true_when_same_assignment", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L773", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_matches_current_true_when_same_assignment", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L764", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_764", "target": "tests_test_post_suggestions_test_preview_matches_current_true_when_same_assignment" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L785", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_matches_current_false_for_null_suggestion", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L788", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_matches_current_false_for_null_suggestion", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L793", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_matches_current_false_for_null_suggestion", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L784", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_784", "target": "tests_test_post_suggestions_test_preview_matches_current_false_for_null_suggestion" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L810", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_empty_siege_returns_empty_assignments", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L809", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_809", "target": "tests_test_post_suggestions_test_preview_empty_siege_returns_empty_assignments" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L818", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_no_members_all_skip_no_match", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L823", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_no_members_all_skip_no_match", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L817", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_817", "target": "tests_test_post_suggestions_test_preview_no_members_all_skip_no_match" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L963", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_expired_preview_raises_409", "target": "tests_test_post_suggestions_apply" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L973", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_missing_preview_raises_409", "target": "tests_test_post_suggestions_apply" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L989", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_empty_position_ids_is_noop", "target": "tests_test_post_suggestions_apply" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1006", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_unknown_position_ids_silently_ignored", "target": "tests_test_post_suggestions_apply" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1020", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_null_member_entries_are_skipped", "target": "tests_test_post_suggestions_apply" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1041", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_subset_only_writes_checked_positions", "target": "tests_test_post_suggestions_apply" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1065", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_stale_position_disabled_returns_409", "target": "tests_test_post_suggestions_apply" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1083", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_stale_position_reserve_returns_409", "target": "tests_test_post_suggestions_apply" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1101", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_stale_member_inactive_returns_409", "target": "tests_test_post_suggestions_apply" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1120", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_member_changed_returns_409", "target": "tests_test_post_suggestions_apply" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1143", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_multiple_stale_all_surfaced_in_single_409", "target": "tests_test_post_suggestions_apply" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L889", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_889", "target": "tests_test_post_suggestions_apply" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L959", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_expired_preview_raises_409", "target": "tests_test_post_suggestions_preview_data" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L981", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_empty_position_ids_is_noop", "target": "tests_test_post_suggestions_preview_data" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L997", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_unknown_position_ids_silently_ignored", "target": "tests_test_post_suggestions_preview_data" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1014", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_null_member_entries_are_skipped", "target": "tests_test_post_suggestions_preview_data" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1032", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_subset_only_writes_checked_positions", "target": "tests_test_post_suggestions_preview_data" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1058", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_stale_position_disabled_returns_409", "target": "tests_test_post_suggestions_preview_data" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1076", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_stale_position_reserve_returns_409", "target": "tests_test_post_suggestions_preview_data" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1094", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_stale_member_inactive_returns_409", "target": "tests_test_post_suggestions_preview_data" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1113", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_member_changed_returns_409", "target": "tests_test_post_suggestions_preview_data" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1134", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_multiple_stale_all_surfaced_in_single_409", "target": "tests_test_post_suggestions_preview_data" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1161", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_completed_siege_raises_400", "target": "tests_test_post_suggestions_preview_data" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L927", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_927", "target": "tests_test_post_suggestions_preview_data" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L982", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_empty_position_ids_is_noop", "target": "tests_test_post_suggestions_entry_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L998", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_unknown_position_ids_silently_ignored", "target": "tests_test_post_suggestions_entry_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1015", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_null_member_entries_are_skipped", "target": "tests_test_post_suggestions_entry_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1028", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_subset_only_writes_checked_positions", "target": "tests_test_post_suggestions_entry_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1056", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_stale_position_disabled_returns_409", "target": "tests_test_post_suggestions_entry_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1074", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_stale_position_reserve_returns_409", "target": "tests_test_post_suggestions_entry_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1092", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_stale_member_inactive_returns_409", "target": "tests_test_post_suggestions_entry_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1111", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_member_changed_returns_409", "target": "tests_test_post_suggestions_entry_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1130", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_multiple_stale_all_surfaced_in_single_409", "target": "tests_test_post_suggestions_entry_dict" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L958", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_expired_preview_raises_409", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L956", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_956", "target": "tests_test_post_suggestions_test_apply_expired_preview_raises_409" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L971", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_missing_preview_raises_409", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L970", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_970", "target": "tests_test_post_suggestions_test_apply_missing_preview_raises_409" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L980", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_empty_position_ids_is_noop", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L979", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_979", "target": "tests_test_post_suggestions_test_apply_empty_position_ids_is_noop" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L996", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_unknown_position_ids_silently_ignored", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L995", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_995", "target": "tests_test_post_suggestions_test_apply_unknown_position_ids_silently_ignored" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1013", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_null_member_entries_are_skipped", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1012", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_1012", "target": "tests_test_post_suggestions_test_apply_null_member_entries_are_skipped" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1031", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_subset_only_writes_checked_positions", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1026", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_1026", "target": "tests_test_post_suggestions_test_apply_subset_only_writes_checked_positions" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1057", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_stale_position_disabled_returns_409", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1055", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_1055", "target": "tests_test_post_suggestions_test_apply_stale_position_disabled_returns_409" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1075", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_stale_position_reserve_returns_409", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1073", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_1073", "target": "tests_test_post_suggestions_test_apply_stale_position_reserve_returns_409" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1093", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_stale_member_inactive_returns_409", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1091", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_1091", "target": "tests_test_post_suggestions_test_apply_stale_member_inactive_returns_409" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1112", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_member_changed_returns_409", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1109", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_1109", "target": "tests_test_post_suggestions_test_apply_member_changed_returns_409" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1133", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_multiple_stale_all_surfaced_in_single_409", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1128", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_1128", "target": "tests_test_post_suggestions_test_apply_multiple_stale_all_surfaced_in_single_409" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1159", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_apply_completed_siege_raises_400", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1158", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_1158", "target": "tests_test_post_suggestions_test_apply_completed_siege_raises_400" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1190", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_skips_post_when_only_candidate_has_used_condition", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1192", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_skips_post_when_only_candidate_has_used_condition", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1205", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_test_preview_skips_post_when_only_candidate_has_used_condition", "target": "tests_test_sieges_make_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions.py", "source_location": "L1183", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_1183", "target": "tests_test_post_suggestions_test_preview_skips_post_when_only_candidate_has_used_condition" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L284", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_rationale_1026", "target": "tests_test_post_suggestions_integration_test_apply_subset_leaves_unselected_positions_unchanged" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L52", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_integration_py", "target": "tests_test_schema_enable_sqlite_fk" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L60", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_integration_py", "target": "tests_test_post_suggestions_integration_engine" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L71", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_integration_py", "target": "tests_test_seed_demo_session" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L79", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_integration_py", "target": "tests_test_post_suggestions_integration_session_factory" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L89", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_integration_py", "target": "tests_test_sieges_seed_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L190", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_integration_py", "target": "tests_test_post_suggestions_integration_test_preview_loads_m2m_relations_without_greenlet_error" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L215", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_integration_py", "target": "tests_test_post_suggestions_integration_test_preview_overwrite_stores_second_preview_in_db" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L254", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_integration_py", "target": "tests_test_post_suggestions_integration_test_apply_persists_matched_condition_id_to_db" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L283", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_integration_py", "target": "tests_test_post_suggestions_integration_test_apply_subset_leaves_unselected_positions_unchanged" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L313", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_post_suggestions_integration_py", "target": "tests_test_post_suggestions_integration_test_member_changed_stale_reason_on_concurrent_apply" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_rationale_1", "target": "backend_tests_test_post_suggestions_integration_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L61", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_rationale_61", "target": "tests_test_post_suggestions_integration_engine" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L228", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_test_preview_overwrite_stores_second_preview_in_db", "target": "tests_test_post_suggestions_integration_session_factory" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L271", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_test_apply_persists_matched_condition_id_to_db", "target": "tests_test_post_suggestions_integration_session_factory" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L299", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_test_apply_subset_leaves_unselected_positions_unchanged", "target": "tests_test_post_suggestions_integration_session_factory" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L327", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_test_member_changed_stale_reason_on_concurrent_apply", "target": "tests_test_post_suggestions_integration_session_factory" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L80", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_rationale_80", "target": "tests_test_post_suggestions_integration_session_factory" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L196", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_test_preview_loads_m2m_relations_without_greenlet_error", "target": "tests_test_sieges_seed_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L191", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_rationale_191", "target": "tests_test_post_suggestions_integration_test_preview_loads_m2m_relations_without_greenlet_error" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L222", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_test_preview_overwrite_stores_second_preview_in_db", "target": "tests_test_sieges_seed_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L216", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_rationale_216", "target": "tests_test_post_suggestions_integration_test_preview_overwrite_stores_second_preview_in_db" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L260", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_test_apply_persists_matched_condition_id_to_db", "target": "tests_test_sieges_seed_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L255", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_rationale_255", "target": "tests_test_post_suggestions_integration_test_apply_persists_matched_condition_id_to_db" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L285", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_test_apply_subset_leaves_unselected_positions_unchanged", "target": "tests_test_sieges_seed_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L328", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_test_member_changed_stale_reason_on_concurrent_apply", "target": "tests_test_sieges_seed_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L314", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_rationale_314", "target": "tests_test_post_suggestions_integration_test_member_changed_stale_reason_on_concurrent_apply" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L53", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_rationale_53", "target": "tests_test_schema_enable_sqlite_fk" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L72", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_rationale_72", "target": "tests_test_seed_demo_session" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_post_suggestions_integration.py", "source_location": "L90", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_post_suggestions_integration_rationale_90", "target": "tests_test_sieges_seed_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_reference.py", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_reference_py", "target": "tests_test_reference_make_post_condition" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_reference.py", "source_location": "L28", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_reference_py", "target": "tests_test_reference_test_get_post_conditions_returns_list" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_reference.py", "source_location": "L54", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_reference_py", "target": "tests_test_reference_test_get_building_types_returns_list" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_reference.py", "source_location": "L90", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_reference_py", "target": "tests_test_reference_test_get_member_roles_returns_four_roles" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_reference.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_reference_rationale_1", "target": "backend_tests_test_reference_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_reference.py", "source_location": "L30", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_reference_test_get_post_conditions_returns_list", "target": "tests_test_reference_make_post_condition" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_schema.py", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_schema_py", "target": "tests_test_schema_enable_sqlite_fk" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_schema.py", "source_location": "L29", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_schema_py", "target": "tests_test_schema_db_session" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_schema.py", "source_location": "L50", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_schema_py", "target": "tests_test_schema_test_member_name_unique" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_schema.py", "source_location": "L65", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_schema_py", "target": "tests_test_schema_test_position_reserve_and_member_constraint_defined" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_schema.py", "source_location": "L78", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_schema_py", "target": "tests_test_schema_test_building_group_slot_count_bounds" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_schema.py", "source_location": "L89", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_schema_py", "target": "tests_test_schema_test_post_condition_count" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_schema.py", "source_location": "L104", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_schema_py", "target": "tests_test_schema_test_building_type_config_count" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_schema.py", "source_location": "L119", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_schema_py", "target": "tests_test_schema_test_siege_member_pk" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_schema.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_schema_rationale_1", "target": "backend_tests_test_schema_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_schema.py", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_schema_rationale_22", "target": "tests_test_schema_enable_sqlite_fk" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L150", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_sieges_py", "target": "tests_test_schema_enable_sqlite_fk" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L157", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_sieges_py", "target": "tests_test_schema_db_session" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_schema.py", "source_location": "L51", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_schema_rationale_51", "target": "tests_test_schema_test_member_name_unique" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_schema.py", "source_location": "L66", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_schema_rationale_66", "target": "tests_test_schema_test_position_reserve_and_member_constraint_defined" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_schema.py", "source_location": "L79", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_schema_rationale_79", "target": "tests_test_schema_test_building_group_slot_count_bounds" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_schema.py", "source_location": "L90", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_schema_rationale_90", "target": "tests_test_schema_test_post_condition_count" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_schema.py", "source_location": "L105", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_schema_rationale_105", "target": "tests_test_schema_test_building_type_config_count" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_schema.py", "source_location": "L120", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_schema_rationale_120", "target": "tests_test_schema_test_siege_member_pk" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L39", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_canonical_py", "target": "tests_test_seed_demo_session" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L57", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_canonical_py", "target": "tests_test_seed_canonical_run_canonical_seed" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L71", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_canonical_py", "target": "tests_test_seed_canonical_testcanonicalseedpostconditions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L75", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_canonical_py", "target": "tests_test_seed_canonical_test_seeds_36_post_conditions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L84", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_canonical_py", "target": "tests_test_seed_canonical_test_idempotent_post_conditions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L94", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_canonical_py", "target": "tests_test_seed_canonical_testcanonicalseedbuildingtypeconfig" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L98", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_canonical_py", "target": "tests_test_seed_canonical_test_seeds_building_type_configs" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L107", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_canonical_py", "target": "tests_test_seed_canonical_test_idempotent_building_type_config" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L120", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_canonical_py", "target": "tests_test_seed_canonical_testcanonicalseedpostpriorityconfig" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L128", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_canonical_py", "target": "tests_test_seed_canonical_test_seeds_18_post_priority_configs" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L137", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_canonical_py", "target": "tests_test_seed_canonical_test_priority_configs_cover_posts_1_through_18" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L145", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_canonical_py", "target": "tests_test_seed_canonical_test_priority_configs_default_priority_is_2" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L153", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_canonical_py", "target": "tests_test_seed_canonical_test_idempotent_post_priority_config" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_canonical_rationale_1", "target": "backend_tests_test_seed_canonical_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L77", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_canonical_test_seeds_36_post_conditions", "target": "tests_test_seed_canonical_run_canonical_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L86", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_canonical_test_idempotent_post_conditions", "target": "tests_test_seed_canonical_run_canonical_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L100", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_canonical_test_seeds_building_type_configs", "target": "tests_test_seed_canonical_run_canonical_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L109", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_canonical_test_idempotent_building_type_config", "target": "tests_test_seed_canonical_run_canonical_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L130", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_canonical_test_seeds_18_post_priority_configs", "target": "tests_test_seed_canonical_run_canonical_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L139", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_canonical_test_priority_configs_cover_posts_1_through_18", "target": "tests_test_seed_canonical_run_canonical_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L147", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_canonical_test_priority_configs_default_priority_is_2", "target": "tests_test_seed_canonical_run_canonical_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L155", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_canonical_test_idempotent_post_priority_config", "target": "tests_test_seed_canonical_run_canonical_seed" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L58", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_canonical_rationale_58", "target": "tests_test_seed_canonical_run_canonical_seed" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L72", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_canonical_rationale_72", "target": "tests_test_seed_canonical_testcanonicalseedpostconditions" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L28", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_canonical_testcanonicalseedpostconditions", "target": "api_types_postcondition" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L29", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_canonical_testcanonicalseedpostconditions", "target": "api_posts_postpriorityconfig" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L95", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_canonical_rationale_95", "target": "tests_test_seed_canonical_testcanonicalseedbuildingtypeconfig" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L28", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_canonical_testcanonicalseedbuildingtypeconfig", "target": "api_types_postcondition" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L29", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_canonical_testcanonicalseedbuildingtypeconfig", "target": "api_posts_postpriorityconfig" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L121", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_canonical_rationale_121", "target": "tests_test_seed_canonical_testcanonicalseedpostpriorityconfig" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L28", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_canonical_testcanonicalseedpostpriorityconfig", "target": "api_types_postcondition" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L29", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_canonical_testcanonicalseedpostpriorityconfig", "target": "api_posts_postpriorityconfig" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/tests/test_seed_canonical.py", "source_location": "L142", "weight": 1.0, "source": "tests_test_seed_canonical_test_priority_configs_cover_posts_1_through_18", "target": "components_landingpage_test_list" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L41", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_session" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L59", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_run_seed" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L91", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_testseeddemomembers" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L95", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_test_creates_25_members" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L101", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_test_members_have_demo_names" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L109", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_test_idempotent_member_creation" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L117", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_testseeddemosiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L121", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_test_creates_one_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L127", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_test_siege_has_active_status" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L133", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_test_idempotent_siege_creation" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L141", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_testseeddemobuildingsandpositions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L145", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_test_creates_buildings" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L151", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_test_creates_positions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L157", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_test_some_positions_have_members" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L168", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_test_idempotent_position_creation" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L181", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_testseeddemosiegemembers" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L185", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_test_enrolls_all_members" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L191", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_test_members_have_attack_days" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L199", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_seed_demo_py", "target": "tests_test_seed_demo_test_idempotent_siege_member_enrollment" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_rationale_1", "target": "backend_tests_test_seed_demo_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L42", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_rationale_42", "target": "tests_test_seed_demo_session" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L96", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_test_creates_25_members", "target": "tests_test_seed_demo_run_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L102", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_test_members_have_demo_names", "target": "tests_test_seed_demo_run_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L111", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_test_idempotent_member_creation", "target": "tests_test_seed_demo_run_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L122", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_test_creates_one_siege", "target": "tests_test_seed_demo_run_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L128", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_test_siege_has_active_status", "target": "tests_test_seed_demo_run_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L135", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_test_idempotent_siege_creation", "target": "tests_test_seed_demo_run_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L146", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_test_creates_buildings", "target": "tests_test_seed_demo_run_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L152", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_test_creates_positions", "target": "tests_test_seed_demo_run_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L159", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_test_some_positions_have_members", "target": "tests_test_seed_demo_run_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L170", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_test_idempotent_position_creation", "target": "tests_test_seed_demo_run_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L186", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_test_enrolls_all_members", "target": "tests_test_seed_demo_run_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L192", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_test_members_have_attack_days", "target": "tests_test_seed_demo_run_seed" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L201", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_test_idempotent_siege_member_enrollment", "target": "tests_test_seed_demo_run_seed" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L60", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_rationale_60", "target": "tests_test_seed_demo_run_seed" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L92", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_rationale_92", "target": "tests_test_seed_demo_testseeddemomembers" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L26", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemomembers", "target": "api_types_building" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L27", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemomembers", "target": "api_types_siegestatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L28", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemomembers", "target": "api_types_member" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L30", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemomembers", "target": "api_types_siege" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L31", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemomembers", "target": "api_types_siegemember" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L26", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemosiege", "target": "api_types_building" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L27", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemosiege", "target": "api_types_siegestatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L28", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemosiege", "target": "api_types_member" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L30", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemosiege", "target": "api_types_siege" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L31", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemosiege", "target": "api_types_siegemember" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L142", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_rationale_142", "target": "tests_test_seed_demo_testseeddemobuildingsandpositions" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L26", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemobuildingsandpositions", "target": "api_types_building" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L27", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemobuildingsandpositions", "target": "api_types_siegestatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L28", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemobuildingsandpositions", "target": "api_types_member" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L30", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemobuildingsandpositions", "target": "api_types_siege" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L31", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemobuildingsandpositions", "target": "api_types_siegemember" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L182", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_seed_demo_rationale_182", "target": "tests_test_seed_demo_testseeddemosiegemembers" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L26", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemosiegemembers", "target": "api_types_building" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L27", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemosiegemembers", "target": "api_types_siegestatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L28", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemosiegemembers", "target": "api_types_member" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L30", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemosiegemembers", "target": "api_types_siege" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/tests/test_seed_demo.py", "source_location": "L31", "weight": 0.8, "confidence_score": 0.5, "source": "tests_test_seed_demo_testseeddemosiegemembers", "target": "api_types_siegemember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_sieges_py", "target": "tests_test_sieges_make_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L48", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_sieges_py", "target": "tests_test_sieges_test_list_sieges_returns_empty_list" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L64", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_sieges_py", "target": "tests_test_sieges_test_create_siege_returns_201" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L94", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_sieges_py", "target": "tests_test_sieges_test_get_siege_not_found_returns_404" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L110", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_sieges_py", "target": "tests_test_sieges_test_delete_planning_siege_returns_204" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L125", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_sieges_py", "target": "tests_test_sieges_test_delete_active_siege_returns_400" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L168", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_sieges_py", "target": "tests_test_sieges_seed_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L205", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_sieges_py", "target": "tests_test_sieges_test_compute_scroll_count_sums_theoretical_capacity" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L229", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_sieges_py", "target": "tests_test_sieges_test_compute_scroll_count_broken_building_unchanged" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L262", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_sieges_py", "target": "tests_test_sieges_test_compute_scroll_count_level_change_updates_count" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L292", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_sieges_py", "target": "tests_test_sieges_test_compute_scroll_count_post_buildings_contribute_one" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_sieges_rationale_1", "target": "backend_tests_test_sieges_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L65", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_sieges_test_create_siege_returns_201", "target": "tests_test_sieges_make_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L181", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_validate_endpoint_returns_result", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L223", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule1_inactive_member_error", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L243", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule1_active_member_no_error", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L274", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_broken_building_assignment_counts_toward_scroll_limit", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L322", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_broken_and_healthy_both_count_toward_scroll_limit", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L350", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_exceeds_scroll_count", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L372", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_within_scroll_count", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L410", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule3_valid_building_number", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L427", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule4_invalid_group_number", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L444", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule4_valid_group_number", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L461", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule5_position_number_exceeds_slot_count", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L478", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule5_valid_position_number", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L504", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule6_valid_attack_day", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L522", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule7_post_has_multiple_groups", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L542", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule7_post_has_exactly_one_group", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L560", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule8_disabled_with_member", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L578", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule8_reserve_with_member", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L596", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule8_valid_state", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L608", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule9_wrong_building_count", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L620", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule9_correct_building_count", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L650", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule10_empty_unresolved_slot", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L669", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule10_message_uses_position_name", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L694", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule10_no_warning_when_disabled", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L720", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule11_member_pref_no_match", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L747", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule11_no_warning_when_no_preferences", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L783", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule13_missing_attack_day_assigned_member", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L803", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule13_attack_day_set", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L817", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule14_fewer_than_10_day2", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L832", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule14_ten_or_more_day2", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L853", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_hh_no_reserve", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L873", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_advanced_no_reserve", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L893", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_hh_reserve_configured", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L913", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_non_hh_no_reserve_no_warning", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L936", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule16_post_fewer_than_3_conditions", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L963", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule16_post_has_3_conditions", "target": "tests_test_sieges_make_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L88", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "tests_test_sieges_make_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/SiegeLayout.test.tsx", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_siegelayout_tsx", "target": "tests_test_sieges_make_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L77", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "tests_test_sieges_make_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L32", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "tests_test_sieges_make_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L58", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "tests_test_sieges_make_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L212", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_sieges_test_compute_scroll_count_sums_theoretical_capacity", "target": "tests_test_sieges_seed_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L237", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_sieges_test_compute_scroll_count_broken_building_unchanged", "target": "tests_test_sieges_seed_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L269", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_sieges_test_compute_scroll_count_level_change_updates_count", "target": "tests_test_sieges_seed_siege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L297", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_sieges_test_compute_scroll_count_post_buildings_contribute_one", "target": "tests_test_sieges_seed_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L169", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_sieges_rationale_169", "target": "tests_test_sieges_seed_siege" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L206", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_sieges_rationale_206", "target": "tests_test_sieges_test_compute_scroll_count_sums_theoretical_capacity" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L230", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_sieges_rationale_230", "target": "tests_test_sieges_test_compute_scroll_count_broken_building_unchanged" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L263", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_sieges_rationale_263", "target": "tests_test_sieges_test_compute_scroll_count_level_change_updates_count" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_sieges.py", "source_location": "L293", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_sieges_rationale_293", "target": "tests_test_sieges_test_compute_scroll_count_post_buildings_contribute_one" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L90", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_telemetry_py", "target": "tests_test_telemetry_testconfiguretelemetrynoop" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L20", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_testconfiguretelemetrynoop", "target": "tests_test_telemetry_testconfiguretelemetrynoop_test_noop_when_env_var_missing" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L43", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_testconfiguretelemetrynoop", "target": "tests_test_telemetry_testconfiguretelemetrynoop_test_noop_when_env_var_empty_string" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L66", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_testconfiguretelemetrynoop", "target": "tests_test_telemetry_testconfiguretelemetrynoop_test_noop_when_env_var_whitespace_only" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L101", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_testconfiguretelemetrynoop", "target": "tests_test_telemetry_testconfiguretelemetryactive_test_calls_configure_azure_monitor_when_env_var_set" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L122", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_testconfiguretelemetrynoop", "target": "tests_test_telemetry_testconfiguretelemetryactive_test_sdk_exception_does_not_propagate" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L18", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_18", "target": "tests_test_telemetry_testconfiguretelemetrynoop" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_telemetry.py", "source_location": "L82", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_82", "target": "tests_test_telemetry_testconfiguretelemetrynoop" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L91", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_91", "target": "tests_test_telemetry_testconfiguretelemetrynoop" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_21", "target": "tests_test_telemetry_testconfiguretelemetrynoop_test_noop_when_env_var_missing" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L44", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_43", "target": "tests_test_telemetry_testconfiguretelemetrynoop_test_noop_when_env_var_empty_string" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L67", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_62", "target": "tests_test_telemetry_testconfiguretelemetrynoop_test_noop_when_env_var_whitespace_only" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L102", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_93", "target": "tests_test_telemetry_testconfiguretelemetryactive_test_calls_configure_azure_monitor_when_env_var_set" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L123", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_112", "target": "tests_test_telemetry_testconfiguretelemetryactive_test_sdk_exception_does_not_propagate" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L143", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_telemetry_py", "target": "tests_test_telemetry_testconfiguretelemetryfastapiinstrumentation" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L156", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_testconfiguretelemetryfastapiinstrumentation", "target": "tests_test_telemetry_testconfiguretelemetryfastapiinstrumentation_test_instrument_app_called_when_connection_string_and_service_name_set" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L199", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_testconfiguretelemetryfastapiinstrumentation", "target": "tests_test_telemetry_testconfiguretelemetryfastapiinstrumentation_test_configure_azure_monitor_called_when_both_env_vars_set" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L237", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_testconfiguretelemetryfastapiinstrumentation", "target": "tests_test_telemetry_testconfiguretelemetryfastapiinstrumentation_test_instrument_app_not_called_when_app_is_none" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_telemetry.py", "source_location": "L131", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_131", "target": "tests_test_telemetry_testconfiguretelemetryfastapiinstrumentation" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L144", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_144", "target": "tests_test_telemetry_testconfiguretelemetryfastapiinstrumentation" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L159", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_144", "target": "tests_test_telemetry_testconfiguretelemetryfastapiinstrumentation_test_instrument_app_called_when_connection_string_and_service_name_set" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L200", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_183", "target": "tests_test_telemetry_testconfiguretelemetryfastapiinstrumentation_test_configure_azure_monitor_called_when_both_env_vars_set" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L238", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_219", "target": "tests_test_telemetry_testconfiguretelemetryfastapiinstrumentation_test_instrument_app_not_called_when_app_is_none" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_telemetry.py", "source_location": "L258", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_telemetry_py", "target": "tests_test_telemetry_testconfiguretelemetrysqlalchemyinstrumentation" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_telemetry.py", "source_location": "L273", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_testconfiguretelemetrysqlalchemyinstrumentation", "target": "tests_test_telemetry_testconfiguretelemetrysqlalchemyinstrumentation_test_sqlalchemy_instrument_called_with_sync_engine" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_telemetry.py", "source_location": "L315", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_testconfiguretelemetrysqlalchemyinstrumentation", "target": "tests_test_telemetry_testconfiguretelemetrysqlalchemyinstrumentation_test_sqlalchemy_instrument_not_called_when_engine_is_none" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_telemetry.py", "source_location": "L353", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_testconfiguretelemetrysqlalchemyinstrumentation", "target": "tests_test_telemetry_testconfiguretelemetrysqlalchemyinstrumentation_test_sqlalchemy_instrument_not_called_when_telemetry_unconfigured" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_telemetry.py", "source_location": "L259", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_259", "target": "tests_test_telemetry_testconfiguretelemetrysqlalchemyinstrumentation" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_telemetry.py", "source_location": "L274", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_274", "target": "tests_test_telemetry_testconfiguretelemetrysqlalchemyinstrumentation_test_sqlalchemy_instrument_called_with_sync_engine" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_telemetry.py", "source_location": "L316", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_316", "target": "tests_test_telemetry_testconfiguretelemetrysqlalchemyinstrumentation_test_sqlalchemy_instrument_not_called_when_engine_is_none" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_telemetry.py", "source_location": "L354", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_354", "target": "tests_test_telemetry_testconfiguretelemetrysqlalchemyinstrumentation_test_sqlalchemy_instrument_not_called_when_telemetry_unconfigured" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_telemetry.py", "source_location": "L391", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_telemetry_py", "target": "tests_test_telemetry_testconfiguretelemetryasyncpginstrumentation" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_telemetry.py", "source_location": "L405", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_testconfiguretelemetryasyncpginstrumentation", "target": "tests_test_telemetry_testconfiguretelemetryasyncpginstrumentation_test_asyncpg_instrument_called_when_telemetry_configured" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_telemetry.py", "source_location": "L443", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_testconfiguretelemetryasyncpginstrumentation", "target": "tests_test_telemetry_testconfiguretelemetryasyncpginstrumentation_test_asyncpg_instrument_not_called_when_telemetry_unconfigured" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_telemetry.py", "source_location": "L392", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_392", "target": "tests_test_telemetry_testconfiguretelemetryasyncpginstrumentation" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_telemetry.py", "source_location": "L406", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_406", "target": "tests_test_telemetry_testconfiguretelemetryasyncpginstrumentation_test_asyncpg_instrument_called_when_telemetry_configured" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_telemetry.py", "source_location": "L444", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_444", "target": "tests_test_telemetry_testconfiguretelemetryasyncpginstrumentation_test_asyncpg_instrument_not_called_when_telemetry_unconfigured" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_telemetry.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_telemetry_rationale_1", "target": "bot_tests_test_telemetry_py" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L88", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L126", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_make_condition" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L148", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_validate_endpoint_404" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L172", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_validate_endpoint_returns_result" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L215", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule1_inactive_member_error" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L235", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule1_active_member_no_error" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L255", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule2_broken_building_assignment_counts_toward_scroll_limit" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L293", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule2_broken_and_healthy_both_count_toward_scroll_limit" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L340", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule2_exceeds_scroll_count" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L364", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule2_within_scroll_count" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L406", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule3_valid_building_number" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L420", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule4_invalid_group_number" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L437", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule4_valid_group_number" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L454", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule5_position_number_exceeds_slot_count" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L471", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule5_valid_position_number" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L501", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule6_valid_attack_day" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L514", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule7_post_has_multiple_groups" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L536", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule7_post_has_exactly_one_group" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L552", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule8_disabled_with_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L570", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule8_reserve_with_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L588", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule8_valid_state" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L606", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule9_wrong_building_count" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L618", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule9_correct_building_count" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L643", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule10_empty_unresolved_slot" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L660", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule10_message_uses_position_name" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L687", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule10_no_warning_when_disabled" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L704", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule11_member_pref_no_match" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L732", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule11_no_warning_when_no_preferences" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L779", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule13_missing_attack_day_assigned_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L795", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule13_attack_day_set" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L815", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule14_fewer_than_10_day2" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L830", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule14_ten_or_more_day2" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L845", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule15_hh_no_reserve" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L865", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule15_advanced_no_reserve" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L885", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule15_hh_reserve_configured" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L905", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule15_non_hh_no_reserve_no_warning" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L925", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule16_post_fewer_than_3_conditions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L952", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_test_rule16_post_has_3_conditions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L977", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_default_configs" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L987", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_validation_py", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_1", "target": "backend_tests_test_validation_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L706", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule11_member_pref_no_match", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L734", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule11_no_warning_when_no_preferences", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L927", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule16_post_fewer_than_3_conditions", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L954", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule16_post_has_3_conditions", "target": "tests_test_validation_make_condition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L225", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule1_inactive_member_error", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L228", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule1_inactive_member_error", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L216", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_216", "target": "tests_test_validation_test_rule1_inactive_member_error" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L245", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule1_active_member_no_error", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L248", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule1_active_member_no_error", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L236", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_236", "target": "tests_test_validation_test_rule1_active_member_no_error" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L276", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_broken_building_assignment_counts_toward_scroll_limit", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L281", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_broken_building_assignment_counts_toward_scroll_limit", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L256", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_256", "target": "tests_test_validation_test_rule2_broken_building_assignment_counts_toward_scroll_limit" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L324", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_broken_and_healthy_both_count_toward_scroll_limit", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L329", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_broken_and_healthy_both_count_toward_scroll_limit", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L294", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_294", "target": "tests_test_validation_test_rule2_broken_and_healthy_both_count_toward_scroll_limit" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L352", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_exceeds_scroll_count", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L357", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_exceeds_scroll_count", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L341", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_341", "target": "tests_test_validation_test_rule2_exceeds_scroll_count" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L374", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_within_scroll_count", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L377", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule2_within_scroll_count", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L365", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_365", "target": "tests_test_validation_test_rule2_within_scroll_count" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L413", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule3_valid_building_number", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L385", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_385", "target": "tests_test_validation_test_rule3_valid_building_number" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L407", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_407", "target": "tests_test_validation_test_rule3_valid_building_number" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L430", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule4_invalid_group_number", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L421", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_421", "target": "tests_test_validation_test_rule4_invalid_group_number" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L447", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule4_valid_group_number", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L438", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_438", "target": "tests_test_validation_test_rule4_valid_group_number" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L464", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule5_position_number_exceeds_slot_count", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L455", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_455", "target": "tests_test_validation_test_rule5_position_number_exceeds_slot_count" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L481", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule5_valid_position_number", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L472", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_472", "target": "tests_test_validation_test_rule5_valid_position_number" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L503", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule6_valid_attack_day", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L507", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule6_valid_attack_day", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L489", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_489", "target": "tests_test_validation_test_rule6_valid_attack_day" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L502", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_502", "target": "tests_test_validation_test_rule6_valid_attack_day" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L525", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule7_post_has_multiple_groups", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L515", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_515", "target": "tests_test_validation_test_rule7_post_has_multiple_groups" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L545", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule7_post_has_exactly_one_group", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L537", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_537", "target": "tests_test_validation_test_rule7_post_has_exactly_one_group" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L563", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule8_disabled_with_member", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L553", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_553", "target": "tests_test_validation_test_rule8_disabled_with_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L581", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule8_reserve_with_member", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L571", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_571", "target": "tests_test_validation_test_rule8_reserve_with_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L599", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule8_valid_state", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L589", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_589", "target": "tests_test_validation_test_rule8_valid_state" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L611", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule9_wrong_building_count", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L607", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_607", "target": "tests_test_validation_test_rule9_wrong_building_count" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L636", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule9_correct_building_count", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L619", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_619", "target": "tests_test_validation_test_rule9_correct_building_count" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L653", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule10_empty_unresolved_slot", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L644", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_644", "target": "tests_test_validation_test_rule10_empty_unresolved_slot" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L672", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule10_message_uses_position_name", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L661", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_661", "target": "tests_test_validation_test_rule10_message_uses_position_name" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L697", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule10_no_warning_when_disabled", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L688", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_688", "target": "tests_test_validation_test_rule10_no_warning_when_disabled" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L722", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule11_member_pref_no_match", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L725", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule11_member_pref_no_match", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L705", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_705", "target": "tests_test_validation_test_rule11_member_pref_no_match" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L749", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule11_no_warning_when_no_preferences", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L752", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule11_no_warning_when_no_preferences", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L733", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_733", "target": "tests_test_validation_test_rule11_no_warning_when_no_preferences" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L785", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule13_missing_attack_day_assigned_member", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L788", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule13_missing_attack_day_assigned_member", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L760", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_760", "target": "tests_test_validation_test_rule13_missing_attack_day_assigned_member" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L780", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_780", "target": "tests_test_validation_test_rule13_missing_attack_day_assigned_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L805", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule13_attack_day_set", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L808", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule13_attack_day_set", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L796", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_796", "target": "tests_test_validation_test_rule13_attack_day_set" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L820", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule14_fewer_than_10_day2", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L823", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule14_fewer_than_10_day2", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L816", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_816", "target": "tests_test_validation_test_rule14_fewer_than_10_day2" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L835", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule14_ten_or_more_day2", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L838", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule14_ten_or_more_day2", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L831", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_831", "target": "tests_test_validation_test_rule14_ten_or_more_day2" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L855", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_hh_no_reserve", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L858", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_hh_no_reserve", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L846", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_846", "target": "tests_test_validation_test_rule15_hh_no_reserve" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L875", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_advanced_no_reserve", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L878", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_advanced_no_reserve", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L866", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_866", "target": "tests_test_validation_test_rule15_advanced_no_reserve" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L895", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_hh_reserve_configured", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L898", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_hh_reserve_configured", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L886", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_886", "target": "tests_test_validation_test_rule15_hh_reserve_configured" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L915", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_non_hh_no_reserve_no_warning", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L918", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule15_non_hh_no_reserve_no_warning", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L906", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_906", "target": "tests_test_validation_test_rule15_non_hh_no_reserve_no_warning" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L939", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule16_post_fewer_than_3_conditions", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L926", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_926", "target": "tests_test_validation_test_rule16_post_fewer_than_3_conditions" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L966", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_test_rule16_post_has_3_conditions", "target": "tests_test_validation_session_with_siege_and_configs" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_validation.py", "source_location": "L953", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_validation_rationale_953", "target": "tests_test_validation_test_rule16_post_has_3_conditions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_version_py", "target": "tests_test_version_reload_version_module" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L42", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_version_py", "target": "tests_test_version_test_read_backend_version_semver_only" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L53", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_version_py", "target": "tests_test_version_test_read_backend_version_with_build_info" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L70", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_version_py", "target": "tests_test_version_test_read_backend_version_missing_version_file" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L87", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_version_py", "target": "tests_test_version_test_read_backend_version_build_info_with_missing_file" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L109", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_version_py", "target": "tests_test_version_test_get_version_returns_200_with_expected_keys" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L128", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_version_py", "target": "tests_test_version_test_get_version_backend_version_has_build_suffix" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L144", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_version_py", "target": "tests_test_version_test_get_version_backend_version_clean_in_local_dev" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L159", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_version_py", "target": "tests_test_version_test_get_version_git_sha_field_preserved" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L175", "weight": 1.0, "confidence_score": 1.0, "source": "backend_tests_test_version_py", "target": "tests_test_version_test_get_version_bot_unreachable_returns_none" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_version_rationale_1", "target": "backend_tests_test_version_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_version_rationale_17", "target": "tests_test_version_reload_version_module" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L30", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_version_rationale_30", "target": "tests_test_version_test_read_backend_version_semver_only" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L43", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_version_rationale_43", "target": "tests_test_version_test_read_backend_version_semver_only" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L54", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_version_rationale_54", "target": "tests_test_version_test_read_backend_version_with_build_info" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L71", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_version_rationale_71", "target": "tests_test_version_test_read_backend_version_missing_version_file" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L88", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_version_rationale_88", "target": "tests_test_version_test_read_backend_version_build_info_with_missing_file" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L110", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_version_rationale_110", "target": "tests_test_version_test_get_version_returns_200_with_expected_keys" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L129", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_version_rationale_129", "target": "tests_test_version_test_get_version_backend_version_has_build_suffix" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L145", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_version_rationale_145", "target": "tests_test_version_test_get_version_backend_version_clean_in_local_dev" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L160", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_version_rationale_160", "target": "tests_test_version_test_get_version_git_sha_field_preserved" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_version.py", "source_location": "L176", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_version_rationale_176", "target": "tests_test_version_test_get_version_bot_unreachable_returns_none" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/app/discord_client.py", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_discord_client_py", "target": "app_discord_client_siegebot" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "bot/app/discord_client.py", "source_location": "L9", "weight": 1.0, "confidence_score": 1.0, "source": "app_discord_client_siegebot", "target": "tests_conftest_fakeclient_init" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "bot/app/discord_client.py", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "app_discord_client_siegebot", "target": "app_discord_client_siegebot_on_ready" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "bot/app/discord_client.py", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "app_discord_client_siegebot", "target": "app_discord_client_siegebot_require_guild" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "bot/app/discord_client.py", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "app_discord_client_siegebot", "target": "app_http_api_post_message" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "bot/app/discord_client.py", "source_location": "L44", "weight": 1.0, "confidence_score": 1.0, "source": "app_discord_client_siegebot", "target": "app_http_api_post_image" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/discord_client.py", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "app_discord_client_rationale_7", "target": "app_discord_client_siegebot" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "bot/app/http_api.py", "source_location": "L11", "weight": 0.8, "confidence_score": 0.5, "source": "app_http_api_notifyrequest", "target": "app_discord_client_siegebot" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "bot/app/http_api.py", "source_location": "L11", "weight": 0.8, "confidence_score": 0.5, "source": "app_http_api_postmessagerequest", "target": "app_discord_client_siegebot" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "bot/app/main.py", "source_location": "L40", "weight": 1.0, "source": "app_main_main", "target": "app_discord_client_siegebot" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/app/discord_client.py", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_post_message", "target": "app_discord_client_siegebot_require_guild" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/app/discord_client.py", "source_location": "L51", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_post_image", "target": "app_discord_client_siegebot_require_guild" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/discord_client.py", "source_location": "L34", "weight": 1.0, "confidence_score": 1.0, "source": "app_discord_client_rationale_34", "target": "app_http_api_post_message" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/discord_client.py", "source_location": "L47", "weight": 1.0, "confidence_score": 1.0, "source": "app_discord_client_rationale_47", "target": "app_http_api_post_image" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_http_api_py", "target": "app_http_api_set_bot" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_http_api_py", "target": "app_http_api_get_bot" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L36", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_http_api_py", "target": "app_http_api_verify_api_key" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L46", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_http_api_py", "target": "app_http_api_notifyrequest" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L51", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_http_api_py", "target": "app_http_api_postmessagerequest" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L57", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_http_api_py", "target": "app_http_api_version" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L83", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_http_api_py", "target": "app_http_api_notify" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L97", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_http_api_py", "target": "app_http_api_post_message" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L111", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_http_api_py", "target": "app_http_api_post_image" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L136", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_http_api_py", "target": "app_http_api_get_guild_member" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "bot/app/main.py", "source_location": "L41", "weight": 1.0, "source": "app_main_main", "target": "app_http_api_set_bot" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L88", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_notify", "target": "app_http_api_get_bot" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L102", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_post_message", "target": "app_http_api_get_bot" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L117", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_post_image", "target": "app_http_api_get_bot" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L37", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_rationale_37", "target": "app_http_api_verify_api_key" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/version.ts", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_version", "target": "api_version_getversion" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L58", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_rationale_58", "target": "app_http_api_version" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/version.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_version", "target": "frontend_src_api_client_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/version.ts", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_version", "target": "frontend_src_api_types_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/version.ts", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_version", "target": "api_types_versioninfo" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/version.ts", "source_location": "L10", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_version", "target": "api_version_useversion" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SystemPage.tsx", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "pages_systempage_systempage", "target": "app_http_api_version" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L87", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_rationale_87", "target": "app_http_api_notify" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L101", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_rationale_101", "target": "app_http_api_post_message" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L116", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_rationale_116", "target": "app_http_api_post_image" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/http_api.py", "source_location": "L140", "weight": 1.0, "confidence_score": 1.0, "source": "app_http_api_rationale_140", "target": "app_http_api_get_guild_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/app/main.py", "source_location": "L18", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_main_py", "target": "app_main_run_http_server" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/app/main.py", "source_location": "L30", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_main_py", "target": "app_main_run_discord_client" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/app/main.py", "source_location": "L36", "weight": 1.0, "confidence_score": 1.0, "source": "bot_app_main_py", "target": "app_main_main" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/app/main.py", "source_location": "L45", "weight": 1.0, "confidence_score": 1.0, "source": "app_main_main", "target": "app_main_run_http_server" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/main.py", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "app_main_rationale_19", "target": "app_main_run_http_server" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/app/main.py", "source_location": "L44", "weight": 1.0, "confidence_score": 1.0, "source": "app_main_main", "target": "app_main_run_discord_client" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/main.py", "source_location": "L31", "weight": 1.0, "confidence_score": 1.0, "source": "app_main_rationale_31", "target": "app_main_run_discord_client" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/app/main.py", "source_location": "L37", "weight": 1.0, "confidence_score": 1.0, "source": "app_main_rationale_37", "target": "app_main_main" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L144", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_board_spec_ts", "target": "app_main_main" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L1162", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "app_main_main" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L1196", "weight": 1.0, "confidence_score": 1.0, "source": "app_main_main", "target": "excel_import_import_excel_collect_xlsm_files" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L1200", "weight": 1.0, "confidence_score": 1.0, "source": "app_main_main", "target": "excel_import_import_excel_import_file" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/conftest.py", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_conftest_py", "target": "tests_conftest_fakeclient" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/conftest.py", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_conftest_py", "target": "tests_conftest_faketextchannel" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/conftest.py", "source_location": "L32", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_conftest_py", "target": "tests_conftest_fakehttpexception" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/conftest.py", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_conftest_py", "target": "tests_conftest_fakenotfound" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/conftest.py", "source_location": "L45", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_conftest_py", "target": "tests_conftest_find" }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "bot/tests/conftest.py", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "tests_conftest_fakeclient", "target": "tests_conftest_fakeclient_init" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "bot/tests/conftest.py", "source_location": "L32", "weight": 1.0, "confidence_score": 1.0, "source": "tests_conftest_fakehttpexception", "target": "exception" }, { "relation": "inherits", "confidence": "EXTRACTED", "source_file": "bot/tests/conftest.py", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "tests_conftest_fakenotfound", "target": "tests_conftest_fakehttpexception" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_discord_client_py", "target": "tests_test_discord_client_make_bot" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_discord_client_py", "target": "tests_test_discord_client_make_text_channel" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L44", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_discord_client_py", "target": "tests_test_discord_client_make_guild" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L57", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_discord_client_py", "target": "tests_test_discord_client_test_send_dm_finds_member_and_sends" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L70", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_discord_client_py", "target": "tests_test_discord_client_test_send_dm_case_insensitive" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L81", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_discord_client_py", "target": "tests_test_discord_client_test_send_dm_raises_value_error_if_member_not_found" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L95", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_discord_client_py", "target": "tests_test_discord_client_test_post_message_finds_channel_and_sends" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L106", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_discord_client_py", "target": "tests_test_discord_client_test_post_message_raises_value_error_if_channel_not_found" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L125", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_discord_client_py", "target": "tests_test_discord_client_test_post_image_returns_cdn_url" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L143", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_discord_client_py", "target": "tests_test_discord_client_test_get_members_returns_correct_dict_format" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_rationale_1", "target": "bot_tests_test_discord_client_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L60", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_send_dm_finds_member_and_sends", "target": "tests_test_discord_client_make_bot" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L73", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_send_dm_case_insensitive", "target": "tests_test_discord_client_make_bot" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L83", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_send_dm_raises_value_error_if_member_not_found", "target": "tests_test_discord_client_make_bot" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L98", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_post_message_finds_channel_and_sends", "target": "tests_test_discord_client_make_bot" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L108", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_post_message_raises_value_error_if_channel_not_found", "target": "tests_test_discord_client_make_bot" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L132", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_post_image_returns_cdn_url", "target": "tests_test_discord_client_make_bot" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L149", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_get_members_returns_correct_dict_format", "target": "tests_test_discord_client_make_bot" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_rationale_12", "target": "tests_test_discord_client_make_bot" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L96", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_post_message_finds_channel_and_sends", "target": "tests_test_discord_client_make_text_channel" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L126", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_post_image_returns_cdn_url", "target": "tests_test_discord_client_make_text_channel" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L59", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_send_dm_finds_member_and_sends", "target": "tests_test_discord_client_make_guild" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L72", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_send_dm_case_insensitive", "target": "tests_test_discord_client_make_guild" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L82", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_send_dm_raises_value_error_if_member_not_found", "target": "tests_test_discord_client_make_guild" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L97", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_post_message_finds_channel_and_sends", "target": "tests_test_discord_client_make_guild" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L107", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_post_message_raises_value_error_if_channel_not_found", "target": "tests_test_discord_client_make_guild" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L131", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_post_image_returns_cdn_url", "target": "tests_test_discord_client_make_guild" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_discord_client.py", "source_location": "L148", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_discord_client_test_get_members_returns_correct_dict_format", "target": "tests_test_discord_client_make_guild" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_get_guild_member_py", "target": "tests_test_http_api_patch_api_key" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L30", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_get_guild_member_py", "target": "tests_test_get_guild_member_patch_guild_id" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L40", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_get_guild_member_py", "target": "tests_test_get_guild_member_make_mock_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L75", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_get_guild_member_py", "target": "tests_test_get_guild_member_make_mock_bot_with_guild" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L89", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_get_guild_member_py", "target": "tests_test_get_guild_member_test_get_guild_member_found_returns_200_with_member_data" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L119", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_get_guild_member_py", "target": "tests_test_get_guild_member_test_get_guild_member_roles_exclude_everyone" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L144", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_get_guild_member_py", "target": "tests_test_get_guild_member_test_get_guild_member_not_found_returns_200_is_member_false" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L166", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_get_guild_member_py", "target": "tests_test_get_guild_member_test_get_guild_member_discord_http_exception_returns_503" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L188", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_get_guild_member_py", "target": "tests_test_get_guild_member_test_get_guild_member_guild_none_returns_503" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L202", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_get_guild_member_py", "target": "tests_test_get_guild_member_test_get_guild_member_bot_none_returns_503" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L218", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_get_guild_member_py", "target": "tests_test_get_guild_member_test_get_guild_member_no_auth_returns_403" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L228", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_get_guild_member_py", "target": "tests_test_get_guild_member_test_get_guild_member_wrong_api_key_returns_401" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_rationale_1", "target": "bot_tests_test_get_guild_member_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L31", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_rationale_31", "target": "tests_test_get_guild_member_patch_guild_id" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L91", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_test_get_guild_member_found_returns_200_with_member_data", "target": "tests_test_get_guild_member_make_mock_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L121", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_test_get_guild_member_roles_exclude_everyone", "target": "tests_test_get_guild_member_make_mock_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L230", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_test_get_guild_member_wrong_api_key_returns_401", "target": "tests_test_get_guild_member_make_mock_member" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L46", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_rationale_46", "target": "tests_test_get_guild_member_make_mock_member" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L95", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_test_get_guild_member_found_returns_200_with_member_data", "target": "tests_test_get_guild_member_make_mock_bot_with_guild" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L125", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_test_get_guild_member_roles_exclude_everyone", "target": "tests_test_get_guild_member_make_mock_bot_with_guild" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L149", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_test_get_guild_member_not_found_returns_200_is_member_false", "target": "tests_test_get_guild_member_make_mock_bot_with_guild" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L171", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_test_get_guild_member_discord_http_exception_returns_503", "target": "tests_test_get_guild_member_make_mock_bot_with_guild" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L190", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_test_get_guild_member_guild_none_returns_503", "target": "tests_test_get_guild_member_make_mock_bot_with_guild" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L233", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_test_get_guild_member_wrong_api_key_returns_401", "target": "tests_test_get_guild_member_make_mock_bot_with_guild" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L76", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_rationale_76", "target": "tests_test_get_guild_member_make_mock_bot_with_guild" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L90", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_rationale_90", "target": "tests_test_get_guild_member_test_get_guild_member_found_returns_200_with_member_data" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L120", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_rationale_120", "target": "tests_test_get_guild_member_test_get_guild_member_roles_exclude_everyone" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L145", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_rationale_145", "target": "tests_test_get_guild_member_test_get_guild_member_not_found_returns_200_is_member_false" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L167", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_rationale_167", "target": "tests_test_get_guild_member_test_get_guild_member_discord_http_exception_returns_503" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L189", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_rationale_189", "target": "tests_test_get_guild_member_test_get_guild_member_guild_none_returns_503" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L203", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_rationale_203", "target": "tests_test_get_guild_member_test_get_guild_member_bot_none_returns_503" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L219", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_rationale_219", "target": "tests_test_get_guild_member_test_get_guild_member_no_auth_returns_403" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_get_guild_member.py", "source_location": "L229", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_get_guild_member_rationale_229", "target": "tests_test_get_guild_member_test_get_guild_member_wrong_api_key_returns_401" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L18", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_http_api_patch_api_key" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L28", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_http_api_make_mock_bot" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L44", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_http_api_test_version_returns_200" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L54", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_http_api_test_version_bare_semver_in_local_dev" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L74", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_http_api_test_version_includes_build_suffix_when_env_vars_set" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L94", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_http_api_test_version_unknown_when_version_file_missing" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L112", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_http_api_test_version_bare_semver_when_env_vars_are_unknown_literal" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L137", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_http_api_test_health_no_bot" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L148", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_http_api_test_health_with_bot_connected" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L163", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_http_api_test_notify_success" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L179", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_http_api_test_notify_bot_not_ready_returns_503" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L191", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_http_api_test_notify_member_not_found_returns_404" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L212", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_http_api_test_post_message_success" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L228", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_http_api_test_post_message_bot_not_ready_returns_503" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L245", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_http_api_test_post_image_success" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L264", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_http_api_test_post_image_bot_not_ready_returns_503" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L281", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_http_api_test_get_members_returns_list" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L299", "weight": 1.0, "confidence_score": 1.0, "source": "bot_tests_test_http_api_py", "target": "tests_test_http_api_test_get_members_bot_not_ready_returns_503" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_http_api_rationale_1", "target": "bot_tests_test_http_api_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_http_api_rationale_19", "target": "tests_test_http_api_patch_api_key" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L149", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_http_api_test_health_with_bot_connected", "target": "tests_test_http_api_make_mock_bot" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L164", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_http_api_test_notify_success", "target": "tests_test_http_api_make_mock_bot" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L192", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_http_api_test_notify_member_not_found_returns_404", "target": "tests_test_http_api_make_mock_bot" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L213", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_http_api_test_post_message_success", "target": "tests_test_http_api_make_mock_bot" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L246", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_http_api_test_post_image_success", "target": "tests_test_http_api_make_mock_bot" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L286", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_http_api_test_get_members_returns_list", "target": "tests_test_http_api_make_mock_bot" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L45", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_http_api_rationale_45", "target": "tests_test_http_api_test_version_returns_200" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L55", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_http_api_rationale_55", "target": "tests_test_http_api_test_version_bare_semver_in_local_dev" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L75", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_http_api_rationale_75", "target": "tests_test_http_api_test_version_includes_build_suffix_when_env_vars_set" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L95", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_http_api_rationale_95", "target": "tests_test_http_api_test_version_unknown_when_version_file_missing" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "bot/tests/test_http_api.py", "source_location": "L113", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_http_api_rationale_113", "target": "tests_test_http_api_test_version_bare_semver_when_env_vars_are_unknown_literal" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/tailwind.config.ts", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_tailwind_config_ts", "target": "frontend_src_api_config_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/vitest.config.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_vitest_config_ts", "target": "frontend_vite_config_ts" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_board_spec_ts", "target": "e2e_board_spec_apicreatesiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_board_spec_ts", "target": "e2e_board_spec_apiaddbuilding" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L52", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_board_spec_ts", "target": "e2e_board_spec_apicreatemember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L84", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_board_spec_ts", "target": "api_types_siegemember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L127", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_board_spec_ts", "target": "e2e_board_spec_buildingstab" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L128", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_board_spec_ts", "target": "e2e_board_spec_poststab" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L179", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_board_spec_ts", "target": "e2e_board_spec_search" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L198", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_board_spec_ts", "target": "e2e_board_spec_roleselect" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L273", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_board_spec_ts", "target": "e2e_board_spec_firstpositionspan" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L274", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_board_spec_ts", "target": "e2e_board_spec_positioncell" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L276", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_board_spec_ts", "target": "e2e_board_spec_chevron" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/board.spec.ts", "source_location": "L367", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_board_spec_ts", "target": "e2e_board_spec_autofillbtn" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/siege-lifecycle.spec.ts", "source_location": "L48", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_siege_lifecycle_spec_ts", "target": "e2e_board_spec_apicreatesiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/siege-lifecycle.spec.ts", "source_location": "L63", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_siege_lifecycle_spec_ts", "target": "e2e_board_spec_apiaddbuilding" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/siege-lifecycle.spec.ts", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_siege_lifecycle_spec_ts", "target": "e2e_board_spec_apicreatemember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L613", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "e2e_board_spec_buildingstab" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "frontend_src_api_posts_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "api_posts_getposts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "frontend_src_api_sieges_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "api_sieges_getsiegememberpreferences" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "api_sieges_previewpostsuggestions" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "frontend_src_api_board_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "api_posts_updatepost" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "frontend_src_api_types_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "api_types_buildingresponse" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "api_types_siegemember" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "api_types_postcondition" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L20", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "frontend_src_components_ui_button_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L20", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "ui_button_button" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "frontend_src_components_postsuggestionsmodal_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "frontend_src_lib_post_priority_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "lib_post_priority_prioritylabel" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "lib_post_priority_prioritybadgecolor" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "pages_boardpage_role_labels" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "pages_boardpage_role_priority" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L40", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "pages_boardpage_role_badge_colors" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L47", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "pages_boardpage_power_labels" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L57", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "components_poststab_memberwithmatches" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L64", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "components_poststab_duplicateconditionmap" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L68", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "components_poststab_buildduplicateconditionmap" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L85", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "components_poststab_findpostposition" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L100", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "components_poststab_memberassignrow" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L302", "weight": 1.0, "confidence_score": 1.0, "source": "e2e_board_spec_poststab", "target": "pages_postspage_postrow" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L25", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "e2e_board_spec_poststab" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L112", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "e2e_board_spec_positioncell" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L251", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "e2e_board_spec_chevron" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/members.spec.ts", "source_location": "L20", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_members_spec_ts", "target": "e2e_members_spec_ensurememberslotsavailable" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/members.spec.ts", "source_location": "L68", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_members_spec_ts", "target": "ui_checkbox_checkbox" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/members.spec.ts", "source_location": "L125", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_members_spec_ts", "target": "e2e_members_spec_activecheckbox" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/members.spec.ts", "source_location": "L131", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_members_spec_ts", "target": "e2e_members_spec_editlinks" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/siege-lifecycle.spec.ts", "source_location": "L93", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_siege_lifecycle_spec_ts", "target": "api_types_siegemember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/siege-lifecycle.spec.ts", "source_location": "L212", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_siege_lifecycle_spec_ts", "target": "e2e_siege_lifecycle_spec_dateinput" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/siege-lifecycle.spec.ts", "source_location": "L153", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_siege_lifecycle_spec_ts", "target": "e2e_siege_lifecycle_spec_url" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/siege-lifecycle.spec.ts", "source_location": "L181", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_siege_lifecycle_spec_ts", "target": "e2e_siege_lifecycle_spec_tabstrip" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/siege-lifecycle.spec.ts", "source_location": "L203", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_siege_lifecycle_spec_ts", "target": "e2e_siege_lifecycle_spec_boardlink" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/siege-lifecycle.spec.ts", "source_location": "L369", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_siege_lifecycle_spec_ts", "target": "pages_boardpage_test_memberrows" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/siege-lifecycle.spec.ts", "source_location": "L382", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_siege_lifecycle_spec_ts", "target": "e2e_siege_lifecycle_spec_activebadge" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/e2e/siege-lifecycle.spec.ts", "source_location": "L383", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_e2e_siege_lifecycle_spec_ts", "target": "e2e_siege_lifecycle_spec_errorbadge" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/SiegeLayout.test.tsx", "source_location": "L66", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_siegelayout_tsx", "target": "e2e_siege_lifecycle_spec_boardlink" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/App.tsx", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_app_tsx", "target": "frontend_src_components_layout_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/App.tsx", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_app_tsx", "target": "frontend_src_components_requireauth_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/App.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_app_tsx", "target": "frontend_src_components_siegelayout_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/App.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_app_tsx", "target": "pages_loginpage_loginpage" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/App.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_app_tsx", "target": "frontend_src_pages_landingpage_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/App.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_app_tsx", "target": "pages_landingpage_landingorsieges" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/App.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_app_tsx", "target": "pages_memberspage_memberspage" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/App.tsx", "source_location": "L8", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_app_tsx", "target": "frontend_src_pages_memberdetailpage_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/App.tsx", "source_location": "L9", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_app_tsx", "target": "frontend_src_pages_siegespage_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/App.tsx", "source_location": "L10", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_app_tsx", "target": "pages_siegecreatepage_siegecreatepage" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/App.tsx", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_app_tsx", "target": "frontend_src_pages_siegesettingspage_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/App.tsx", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_app_tsx", "target": "pages_boardpage_boardpage" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/App.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_app_tsx", "target": "pages_postspage_postspage" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/App.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_app_tsx", "target": "api_types_siegemember" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/App.tsx", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_app_tsx", "target": "pages_comparisonpage_comparisonpage" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/App.tsx", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_app_tsx", "target": "frontend_src_pages_postprioritiespage_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/App.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_app_tsx", "target": "pages_systempage_systempage" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/App.tsx", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_app_tsx", "target": "src_app_app" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/main.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_main_tsx", "target": "frontend_src_app_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/main.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_main_tsx", "target": "frontend_src_context_authcontext_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/main.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_main_tsx", "target": "context_authcontext_authprovider" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/main.tsx", "source_location": "L9", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_main_tsx", "target": "src_main_queryclient" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/board.ts", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_board_ts", "target": "frontend_src_api_client_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/board.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_board_ts", "target": "frontend_src_api_types_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/board.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_board_ts", "target": "api_types_boardresponse" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/board.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_board_ts", "target": "api_types_positionresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/board.ts", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_board_ts", "target": "api_board_getboard" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/board.ts", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_board_ts", "target": "api_posts_updatepost" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "frontend_src_api_board_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "frontend_src_api_board_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "api_board_getboard" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "api_board_getboard" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/changelog.ts", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_changelog_ts", "target": "frontend_src_api_client_ts" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/changelog.ts", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_changelog_ts", "target": "api_changelog_changelogstatus" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/changelog.ts", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_changelog_ts", "target": "api_changelog_fetchchangelogstatus" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/changelog.ts", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_changelog_ts", "target": "api_changelog_markchangelogseen" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ChangelogDropdown.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_changelogdropdown_tsx", "target": "frontend_src_api_changelog_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ChangelogDropdown.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_changelogdropdown_tsx", "target": "api_changelog_fetchchangelogstatus" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ChangelogDropdown.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_changelogdropdown_tsx", "target": "api_changelog_markchangelogseen" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/client.ts", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_client_ts", "target": "api_client_apiclient" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/config.ts", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_config_ts", "target": "frontend_src_api_client_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/members.ts", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_members_ts", "target": "frontend_src_api_client_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/posts.ts", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_posts_ts", "target": "frontend_src_api_client_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "frontend_src_api_client_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/context/AuthContext.tsx", "source_location": "L9", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_context_authcontext_tsx", "target": "frontend_src_api_client_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/LoginPage.tsx", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "pages_loginpage_loginpage", "target": "frontend_src_api_client_ts" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/config.ts", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_config_ts", "target": "api_config_appconfig" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/config.ts", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_config_ts", "target": "api_config_fetchconfig" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/Layout.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_layout_tsx", "target": "frontend_src_api_config_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/Layout.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_layout_tsx", "target": "api_config_fetchconfig" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/members.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_members_ts", "target": "frontend_src_api_types_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/members.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_members_ts", "target": "api_types_member" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/members.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_members_ts", "target": "api_types_postcondition" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/members.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_members_ts", "target": "api_types_memberroleinfo" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/members.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_members_ts", "target": "api_types_syncpreviewresponse" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/members.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_members_ts", "target": "api_types_syncapplyitem" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/members.ts", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_members_ts", "target": "api_members_getmember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/members.ts", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_members_ts", "target": "api_members_createmember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/members.ts", "source_location": "L32", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_members_ts", "target": "api_members_updatemember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/members.ts", "source_location": "L46", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_members_ts", "target": "api_members_deletemember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/members.ts", "source_location": "L50", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_members_ts", "target": "api_members_getmemberpreferences" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/members.ts", "source_location": "L59", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_members_ts", "target": "api_members_updatememberpreferences" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/members.ts", "source_location": "L72", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_members_ts", "target": "api_members_getpostconditions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/members.ts", "source_location": "L77", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_members_ts", "target": "api_members_getmemberroles" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/members.ts", "source_location": "L82", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_members_ts", "target": "api_members_previewdiscordsync" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/members.ts", "source_location": "L89", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_members_ts", "target": "api_members_applydiscordsync" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "frontend_src_api_members_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "frontend_src_api_members_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "frontend_src_api_members_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "frontend_src_api_members_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "frontend_src_api_members_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "frontend_src_api_members_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "api_members_getmember" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "api_members_createmember" }, { "relation": "imports", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L4", "weight": 1.0, "context": "import", "confidence_score": 1.0, "source": "api_types_siegemember", "target": "api_members_updatemember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L149", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_members_updatemember" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "api_members_updatemember" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "api_members_getmemberpreferences" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/members.py", "source_location": "L148", "weight": 1.0, "source": "api_members_getmemberpreferences", "target": "components_landingpage_test_list" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "api_members_updatememberpreferences" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "api_members_getpostconditions" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "api_members_getpostconditions" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "api_members_getpostconditions" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/reference.py", "source_location": "L15", "weight": 1.0, "source": "api_members_getpostconditions", "target": "components_landingpage_test_list" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "api_members_previewdiscordsync" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/discord_sync.py", "source_location": "L27", "weight": 1.0, "source": "api_members_previewdiscordsync", "target": "components_landingpage_test_list" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "api_members_applydiscordsync" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/api/notifications.py", "source_location": "L288", "weight": 1.0, "confidence_score": 1.0, "source": "api_notifications_notifysiegemembers", "target": "api_types_notifyresponse" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_notifications_notifysiegemembers" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/api/notifications.py", "source_location": "L255", "weight": 1.0, "source": "api_notifications_notifysiegemembers", "target": "api_types_notificationbatchresponse" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/api/notifications.py", "source_location": "L341", "weight": 1.0, "confidence_score": 1.0, "source": "api_notifications_getnotificationbatch", "target": "api_types_notificationresultitem" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/api/notifications.py", "source_location": "L354", "weight": 1.0, "confidence_score": 1.0, "source": "api_notifications_getnotificationbatch", "target": "api_types_notificationbatchresponse" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_notifications_getnotificationbatch" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_notifications_posttochannel" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/posts.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_posts_ts", "target": "frontend_src_api_types_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/posts.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_posts_ts", "target": "api_types_post" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/posts.ts", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_posts_ts", "target": "api_posts_postpriorityconfig" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/posts.ts", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_posts_ts", "target": "api_posts_getpostpriorities" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/posts.ts", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_posts_ts", "target": "api_posts_updatepostpriority" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/posts.ts", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_posts_ts", "target": "api_posts_getposts" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/posts.ts", "source_location": "L32", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_posts_ts", "target": "api_posts_updatepost" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/posts.ts", "source_location": "L44", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_posts_ts", "target": "api_posts_setpostconditions" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "frontend_src_api_posts_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "frontend_src_api_posts_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "frontend_src_api_posts_ts" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/post_priority_config.py", "source_location": "L32", "weight": 1.0, "confidence_score": 1.0, "source": "api_posts_postpriorityconfig", "target": "api_posts_updatepostpriority" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L44", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedmember", "target": "api_posts_postpriorityconfig" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L44", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedassignment", "target": "api_posts_postpriorityconfig" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L44", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedreserve", "target": "api_posts_postpriorityconfig" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L44", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconfig", "target": "api_posts_postpriorityconfig" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L44", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconditions", "target": "api_posts_postpriorityconfig" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L44", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_importstats", "target": "api_posts_postpriorityconfig" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "api_posts_getpostpriorities" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "api_posts_getpostpriorities" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "api_posts_updatepostpriority" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "api_posts_getposts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "api_posts_updatepost" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "api_posts_setpostconditions" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "frontend_src_api_types_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_types_siege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_types_siegestatus" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_types_building" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_types_buildingtype" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_types_buildingtypeinfo" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_types_memberpreferencesummary" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "frontend_src_api_sieges_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_types_validationresult" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_types_autofillpreviewresult" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_types_autofillapplyresult" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_types_attackdaypreviewresult" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_types_attackdayapplyresult" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_types_comparisonresult" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_types_postsuggestionpreviewresult" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_types_postsuggestionapplyresult" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L20", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_getsieges" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_getsiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L32", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_createsiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L37", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_updatesiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L45", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_deletesiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L49", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_activatesiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L54", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_completesiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L59", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_clonesiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L64", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_reopensiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L69", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_validatesiege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L113", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_getbuildings" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L83", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_createbuilding" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L94", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_updatebuilding" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L106", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_deletebuilding" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L120", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_getsiegemembers" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L127", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_getsiegememberpreferences" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L165", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_previewautofill" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L174", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_applyautofill" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L183", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_previewattackday" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L192", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_applyattackday" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L201", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_comparesieges" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L210", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_comparesiegesspecific" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L220", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_previewpostsuggestions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/sieges.ts", "source_location": "L229", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_sieges_ts", "target": "api_sieges_applypostsuggestions" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "frontend_src_api_sieges_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/SiegeLayout.tsx", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_siegelayout_tsx", "target": "frontend_src_api_sieges_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "frontend_src_api_sieges_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_comparisonpage", "target": "frontend_src_api_sieges_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "frontend_src_api_sieges_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "pages_siegecreatepage_siegecreatepage", "target": "frontend_src_api_sieges_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "frontend_src_api_sieges_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegespage_tsx", "target": "frontend_src_api_sieges_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_comparisonpage", "target": "api_sieges_getsieges" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "pages_siegecreatepage_siegecreatepage", "target": "api_sieges_getsieges" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegespage_tsx", "target": "api_sieges_getsieges" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/SiegeLayout.tsx", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_siegelayout_tsx", "target": "api_sieges_getsiege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "api_sieges_getsiege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "api_sieges_getsiege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "api_sieges_getsiege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_sieges_getsiege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "pages_siegecreatepage_siegecreatepage", "target": "api_sieges_createsiege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_sieges_updatesiege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_sieges_deletesiege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_sieges_activatesiege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_sieges_completesiege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "pages_siegecreatepage_siegecreatepage", "target": "api_sieges_clonesiege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_sieges_clonesiege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_sieges_reopensiege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "api_sieges_validatesiege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_sieges_validatesiege" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L284", "weight": 1.0, "confidence_score": 1.0, "source": "api_sieges_updatebuilding", "target": "api_sieges_getbuildings" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/app/services/buildings.py", "source_location": "L341", "weight": 1.0, "confidence_score": 1.0, "source": "api_sieges_deletebuilding", "target": "api_sieges_getbuildings" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_sieges_getbuildings" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_sieges_updatebuilding" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/buildings.py", "source_location": "L298", "weight": 1.0, "source": "api_sieges_updatebuilding", "target": "components_landingpage_test_list" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "api_sieges_getsiegemembers" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "api_sieges_getsiegemembers" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_sieges_getsiegemembers" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/siege_members.py", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "api_sieges_getsiegememberpreferences" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/siege_members.py", "source_location": "L22", "weight": 1.0, "source": "api_sieges_getsiegememberpreferences", "target": "components_landingpage_test_list" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "api_sieges_previewautofill" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/autofill.py", "source_location": "L70", "weight": 1.0, "source": "api_sieges_previewautofill", "target": "components_landingpage_test_list" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "api_sieges_applyautofill" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "api_sieges_previewattackday" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "api_sieges_applyattackday" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_comparisonpage", "target": "api_sieges_comparesieges" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_comparisonpage", "target": "api_sieges_comparesiegesspecific" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "api_sieges_previewpostsuggestions" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "api_sieges_applypostsuggestions" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/app/services/post_suggestions.py", "source_location": "L411", "weight": 1.0, "source": "api_sieges_applypostsuggestions", "target": "components_landingpage_test_list" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_memberrole" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_siegestatus" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_buildingtype" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_member" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L23", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_syncmatch" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L32", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_syncpreviewresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L38", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_syncapplyitem" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L123", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_postcondition" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L51", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L62", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_building" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L72", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_memberpreferencesummary" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L79", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_positionresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L89", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_buildinggroupresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L96", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_buildingresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L105", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_boardresponse" }, { "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L22", "weight": 1.0, "context": "import", "confidence_score": 1.0, "source": "api_types_siegemember", "target": "frontend_src_api_types_ts" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L129", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_post" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L140", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_validationissue" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L146", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_validationresult" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L152", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_autofillassignment" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L158", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_autofillpreviewresult" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L163", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_autofillapplyresult" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L168", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_attackdayassignment" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L173", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_attackdaypreviewresult" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L178", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_attackdayapplyresult" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L183", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_positionkey" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L190", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_memberdiff" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L198", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_comparisonresult" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L205", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_notificationresultitem" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L214", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_notificationbatchresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L220", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_notifyresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L227", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_generateimagesresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L233", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_versioninfo" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L241", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_buildingtypeinfo" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L249", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_memberroleinfo" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L256", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_postsuggestionskipreason" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L262", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_postsuggestionentry" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L279", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_postsuggestionpreviewresult" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L284", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_postsuggestionstalereason" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L291", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_postsuggestionstaleentry" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/api/types.ts", "source_location": "L298", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_api_types_ts", "target": "api_types_postsuggestionapplyresult" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "frontend_src_api_types_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L38", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "frontend_src_api_types_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/lib/buildingColors.ts", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_buildingcolors_ts", "target": "frontend_src_api_types_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_grouppostconditions_ts", "target": "frontend_src_api_types_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "frontend_src_api_types_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_comparisonpage", "target": "frontend_src_api_types_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "frontend_src_api_types_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/MembersPage.test.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "frontend_src_api_types_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.test.tsx", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "frontend_src_api_types_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L39", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "frontend_src_api_types_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegespage_tsx", "target": "frontend_src_api_types_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/handlers.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_handlers_ts", "target": "frontend_src_api_types_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L43", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbyconditions_test_tsx", "target": "frontend_src_api_types_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L29", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "frontend_src_api_types_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/SiegeLayout.test.tsx", "source_location": "L9", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_siegelayout_tsx", "target": "frontend_src_api_types_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "frontend_src_api_types_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L38", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "frontend_src_api_types_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegesPage.test.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_siegespage_test_tsx", "target": "frontend_src_api_types_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "api_types_memberrole" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/images.py", "source_location": "L12", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_generateimagesresponse", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L15", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notifyresponse", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L15", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationresultitem", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L15", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationbatchresponse", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/member.py", "source_location": "L8", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_member", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/member.py", "source_location": "L5", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_syncmatch", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/member.py", "source_location": "L5", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_syncpreviewresponse", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L39", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedmember", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L39", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedassignment", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L39", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedreserve", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L39", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconfig", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L39", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconditions", "target": "api_types_memberrole" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L39", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_importstats", "target": "api_types_memberrole" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegespage_tsx", "target": "api_types_siegestatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L15", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notifyresponse", "target": "api_types_siegestatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L15", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationresultitem", "target": "api_types_siegestatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L15", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationbatchresponse", "target": "api_types_siegestatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/siege.py", "source_location": "L8", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_siege", "target": "api_types_siegestatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L39", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedmember", "target": "api_types_siegestatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L39", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedassignment", "target": "api_types_siegestatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L39", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedreserve", "target": "api_types_siegestatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L39", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconfig", "target": "api_types_siegestatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L39", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconditions", "target": "api_types_siegestatus" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L39", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_importstats", "target": "api_types_siegestatus" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/lib/buildingColors.ts", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_buildingcolors_ts", "target": "api_types_buildingtype" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "api_types_buildingtype" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/handlers.ts", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_handlers_ts", "target": "api_types_buildingtype" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/building.py", "source_location": "L7", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_building", "target": "api_types_buildingtype" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/board.py", "source_location": "L3", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_boardresponse", "target": "api_types_buildingtype" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/building.py", "source_location": "L3", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_positionresponse", "target": "api_types_buildingtype" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/building.py", "source_location": "L3", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_buildinggroupresponse", "target": "api_types_buildingtype" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/schemas/building.py", "source_location": "L3", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_buildingresponse", "target": "api_types_buildingtype" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L39", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedmember", "target": "api_types_buildingtype" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L39", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedassignment", "target": "api_types_buildingtype" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L39", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedreserve", "target": "api_types_buildingtype" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L39", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconfig", "target": "api_types_buildingtype" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L39", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconditions", "target": "api_types_buildingtype" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L39", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_importstats", "target": "api_types_buildingtype" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L540", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "api_types_member" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/MembersPage.test.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "api_types_member" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L334", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notifyresponse", "target": "api_types_member" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L334", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationresultitem", "target": "api_types_member" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L334", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationbatchresponse", "target": "api_types_member" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/post_condition.py", "source_location": "L9", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_postcondition", "target": "api_types_member" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/siege_member.py", "source_location": "L9", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_siegemember", "target": "api_types_member" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L40", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedmember", "target": "api_types_member" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L40", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedassignment", "target": "api_types_member" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L40", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedreserve", "target": "api_types_member" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L40", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconfig", "target": "api_types_member" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L40", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconditions", "target": "api_types_member" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L40", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_importstats", "target": "api_types_member" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "api_types_syncmatch" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "api_types_syncapplyitem" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_grouppostconditions_ts", "target": "api_types_postcondition" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L43", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbyconditions_test_tsx", "target": "api_types_postcondition" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/lib/postConditionTypes.test.ts", "source_location": "L25", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_postcondition", "target": "lib_postconditiontypes_test_ids" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/lib/postConditionTypes.test.ts", "source_location": "L93", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_postcondition", "target": "lib_postconditiontypes_test_unique" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/lib/postConditionTypes.test.ts", "source_location": "L51", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_postcondition", "target": "lib_postconditiontypes_test_count" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L38", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "api_types_postcondition" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/post_condition.py", "source_location": "L10", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_postcondition", "target": "api_types_post" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L43", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedmember", "target": "api_types_postcondition" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L43", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedassignment", "target": "api_types_postcondition" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L43", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedreserve", "target": "api_types_postcondition" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L43", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconfig", "target": "api_types_postcondition" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L43", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconditions", "target": "api_types_postcondition" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L43", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_importstats", "target": "api_types_postcondition" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L29", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "api_types_siege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/SiegeLayout.test.tsx", "source_location": "L9", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_siegelayout_tsx", "target": "api_types_siege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "api_types_siege" }, { "relation": "uses", "context": "import", "confidence": "INFERRED", "source_file": "backend/app/models/siege_member.py", "source_location": "L10", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_siegemember", "target": "api_types_siege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L39", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_types_siege" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegesPage.test.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_siegespage_test_tsx", "target": "api_types_siege" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L19", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notifyresponse", "target": "api_types_siege" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L19", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationresultitem", "target": "api_types_siege" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/siege.py", "source_location": "L12", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_siege", "target": "api_types_notificationbatchresponse" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/siege.py", "source_location": "L11", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_siege", "target": "api_types_building" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/siege.py", "source_location": "L13", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_siege", "target": "api_types_post" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L45", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedmember", "target": "api_types_siege" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L45", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedassignment", "target": "api_types_siege" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L45", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedreserve", "target": "api_types_siege" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L45", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconfig", "target": "api_types_siege" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L45", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconditions", "target": "api_types_siege" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L45", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_importstats", "target": "api_types_siege" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/building.py", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_building", "target": "api_types_positionresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/building.py", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_building", "target": "api_types_buildinggroupresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/building.py", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_building", "target": "api_types_buildingresponse" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L13", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notifyresponse", "target": "api_types_building" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L13", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationresultitem", "target": "api_types_building" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L13", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationbatchresponse", "target": "api_types_building" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/models/post.py", "source_location": "L9", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_post", "target": "api_types_building" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L37", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedmember", "target": "api_types_building" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L37", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedassignment", "target": "api_types_building" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L37", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedreserve", "target": "api_types_building" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L37", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconfig", "target": "api_types_building" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L37", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconditions", "target": "api_types_building" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L37", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_importstats", "target": "api_types_building" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/siege_member.py", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "api_types_memberpreferencesummary" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "api_types_positionresponse" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L29", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "api_types_positionresponse" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "api_types_positionresponse" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "api_types_buildinggroupresponse" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "api_types_buildingresponse" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L8", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "api_types_buildingresponse" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L29", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "api_types_boardresponse" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "api_types_boardresponse" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/images.py", "source_location": "L41", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_generateimagesresponse", "target": "api_types_boardresponse" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L382", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notifyresponse", "target": "api_types_boardresponse" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L382", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationresultitem", "target": "api_types_boardresponse" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L382", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationbatchresponse", "target": "api_types_boardresponse" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "api_types_siegemember" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "api_types_attackdaypreviewresult" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "frontend_src_components_ui_table_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "ui_table_table" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "ui_table_tablebody" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "ui_table_tablecell" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "ui_table_tablehead" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "ui_table_tablerow" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "frontend_src_components_ui_button_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "ui_button_button" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L23", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "ui_checkbox_checkbox" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "frontend_src_components_ui_select_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "ui_select_selectcontent" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "ui_select_selectitem" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "ui_select_selecttrigger" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L31", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "frontend_src_components_ui_dialog_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L31", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "ui_dialog_dialogcontent" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L31", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "ui_dialog_dialogheader" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L31", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "ui_dialog_dialogtitle" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L31", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "ui_dialog_dialogfooter" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L31", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "ui_dialog_dialogdescription" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeMembersPage.tsx", "source_location": "L41", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "pages_siegememberspage_attackdayselect" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L29", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "api_types_siegemember" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "api_types_siegemember" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "frontend_src_test_server_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "test_server_server" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L20", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L20", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "test_utils_renderwithproviders" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L45", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L61", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "pages_siegememberspage_test_makepreview" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L75", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "pages_siegememberspage_test_registerhandlers" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L93", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "pages_siegememberspage_test_renderpage" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L104", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "pages_siegememberspage_test_openpreviewdialog" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L195", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "pages_boardpage_test_members" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L139", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "pages_siegememberspage_test_allcells" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L158", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "pages_siegememberspage_test_namecells" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L188", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "pages_siegememberspage_test_day2header" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L190", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "pages_systempage_datarow" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L184", "weight": 1.0, "confidence_score": 1.0, "source": "api_types_siegemember", "target": "pages_siegememberspage_test_day1names" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/images.py", "source_location": "L13", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_generateimagesresponse", "target": "api_types_siegemember" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L20", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notifyresponse", "target": "api_types_siegemember" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L20", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationresultitem", "target": "api_types_siegemember" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L20", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationbatchresponse", "target": "api_types_siegemember" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L46", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedmember", "target": "api_types_siegemember" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L46", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedassignment", "target": "api_types_siegemember" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L46", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedreserve", "target": "api_types_siegemember" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L46", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconfig", "target": "api_types_siegemember" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L46", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconditions", "target": "api_types_siegemember" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L46", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_importstats", "target": "api_types_siegemember" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.test.tsx", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "api_types_post" }, { "relation": "contains", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L793", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "api_types_post" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L38", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "api_types_post" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L42", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedmember", "target": "api_types_post" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L42", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedassignment", "target": "api_types_post" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L42", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedreserve", "target": "api_types_post" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L42", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconfig", "target": "api_types_post" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L42", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_parsedpostconditions", "target": "api_types_post" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L42", "weight": 0.8, "confidence_score": 0.5, "source": "excel_import_import_excel_importstats", "target": "api_types_post" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L23", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_types_validationissue" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "api_types_validationresult" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L39", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_types_validationresult" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "api_types_autofillpreviewresult" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_comparisonpage", "target": "api_types_positionkey" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_comparisonpage", "target": "api_types_memberdiff" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L39", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_types_notificationresultitem" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L16", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notificationresultitem", "target": "api_types_notificationbatchresponse" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L39", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_types_notificationbatchresponse" }, { "relation": "uses", "confidence": "INFERRED", "source_file": "backend/app/api/notifications.py", "source_location": "L16", "weight": 0.8, "confidence_score": 0.5, "source": "api_types_notifyresponse", "target": "api_types_notificationbatchresponse" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L39", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "api_types_notifyresponse" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/handlers.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_handlers_ts", "target": "api_types_buildingtypeinfo" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "api_types_postsuggestionentry" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L38", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "api_types_postsuggestionpreviewresult" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L29", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "api_types_postsuggestionpreviewresult" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "api_types_postsuggestionstaleentry" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SystemPage.tsx", "source_location": "L101", "weight": 1.0, "confidence_score": 1.0, "source": "pages_systempage_systempage", "target": "api_version_useversion" }, { "relation": "imports", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/Carousel.test.tsx", "source_location": "L5", "weight": 1.0, "context": "import", "confidence_score": 1.0, "source": "components_carousel_carousel", "target": "components_carousel_carouselslide" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "components_carousel_carouselslide" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/Carousel.tsx", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "components_carousel_carousel", "target": "components_carousel_carouselprops" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/Carousel.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "components_carousel_carousel", "target": "pages_landingpage_colors" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "components_carousel_carousel" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/Carousel.test.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "components_carousel_carousel", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/Carousel.test.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "components_carousel_carousel", "target": "test_utils_renderwithproviders" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/Carousel.test.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "components_carousel_carousel", "target": "pages_landingpage_slides" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/Carousel.test.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "components_carousel_carousel", "target": "components_carousel_test_rendercarousel" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/Carousel.test.tsx", "source_location": "L48", "weight": 1.0, "confidence_score": 1.0, "source": "components_carousel_carousel", "target": "components_carousel_test_track" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/Carousel.test.tsx", "source_location": "L40", "weight": 1.0, "confidence_score": 1.0, "source": "components_carousel_carousel", "target": "components_carousel_test_dot0" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/Carousel.test.tsx", "source_location": "L100", "weight": 1.0, "confidence_score": 1.0, "source": "components_carousel_carousel", "target": "pages_boardpage_test_user" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/Carousel.test.tsx", "source_location": "L116", "weight": 1.0, "confidence_score": 1.0, "source": "components_carousel_carousel", "target": "components_carousel_test_viewport" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ChangelogDropdown.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_changelogdropdown_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ChangelogDropdown.tsx", "source_location": "L131", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_changelogdropdown_tsx", "target": "lib_utils_cn" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ChangelogDropdown.tsx", "source_location": "L8", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_changelogdropdown_tsx", "target": "frontend_src_components_ui_dropdown_menu_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ChangelogDropdown.tsx", "source_location": "L8", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_changelogdropdown_tsx", "target": "ui_dropdown_menu_dropdownmenucontent" }, { "relation": "calls", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ChangelogDropdown.tsx", "source_location": "L103", "weight": 1.0, "context": "call", "confidence_score": 1.0, "source": "frontend_src_components_changelogdropdown_tsx", "target": "components_changelogdropdown_hasunread" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/Layout.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_layout_tsx", "target": "frontend_src_components_changelogdropdown_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/ChangelogDropdown.test.tsx", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_changelogdropdown_test_tsx", "target": "frontend_src_components_changelogdropdown_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "frontend_src_components_ui_dialog_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "ui_dialog_dialogcontent" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "ui_dialog_dialogheader" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "ui_dialog_dialogtitle" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "ui_dialog_dialogfooter" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "frontend_src_components_ui_table_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "ui_table_table" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "ui_table_tablebody" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "ui_table_tablecell" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "ui_table_tablehead" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "ui_table_tablerow" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "frontend_src_components_ui_button_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "ui_button_button" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "frontend_src_components_ui_badge_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "ui_badge_badge" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L23", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "ui_checkbox_checkbox" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L25", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "components_groupbytoggle_props" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "components_discordsyncmodal_confidencevariant" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/DiscordSyncModal.tsx", "source_location": "L39", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_discordsyncmodal_tsx", "target": "components_discordsyncmodal_confidence_label" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "frontend_src_components_discordsyncmodal_tsx" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/GroupByToggle.tsx", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "components_groupbytoggle_groupbytoggle", "target": "components_groupbytoggle_props" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L34", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_groupbytoggle_props" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/GroupByToggle.tsx", "source_location": "L8", "weight": 1.0, "confidence_score": 1.0, "source": "components_groupbytoggle_groupbytoggle", "target": "frontend_src_lib_utils_ts" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/components/GroupByToggle.tsx", "source_location": "L39", "weight": 1.0, "confidence_score": 1.0, "source": "components_groupbytoggle_groupbytoggle", "target": "lib_utils_cn" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/GroupByToggle.tsx", "source_location": "L9", "weight": 1.0, "confidence_score": 1.0, "source": "components_groupbytoggle_groupbytoggle", "target": "frontend_src_lib_grouppostconditions_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/GroupByToggle.tsx", "source_location": "L9", "weight": 1.0, "confidence_score": 1.0, "source": "components_groupbytoggle_groupbytoggle", "target": "lib_grouppostconditions_groupbymode" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L34", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "components_groupbytoggle_groupbytoggle" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L23", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "components_groupbytoggle_groupbytoggle" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "components_groupbytoggle_groupbytoggle" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByToggle.test.tsx", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbytoggle_test_tsx", "target": "components_groupbytoggle_groupbytoggle" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/Layout.test.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_layout_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/Layout.tsx", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_layout_tsx", "target": "lib_utils_cn" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/Layout.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_layout_tsx", "target": "frontend_src_context_authcontext_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/Layout.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_layout_tsx", "target": "context_authcontext_useauth" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/Layout.tsx", "source_location": "L9", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_layout_tsx", "target": "components_layout_navlinkclass" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/Layout.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_layout_tsx", "target": "components_layout_layout" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/Layout.test.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_layout_tsx", "target": "test_utils_renderwithproviders" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/Layout.test.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_layout_tsx", "target": "frontend_src_test_server_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/Layout.test.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_layout_tsx", "target": "test_server_server" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/Layout.test.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_layout_tsx", "target": "components_layout_test_renderlayout" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/components/Layout.tsx", "source_location": "L10", "weight": 1.0, "source": "components_layout_navlinkclass", "target": "lib_utils_cn" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/components/Layout.tsx", "source_location": "L18", "weight": 1.0, "source": "components_layout_layout", "target": "context_authcontext_useauth" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostsTab.tsx", "source_location": "L329", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postrow", "target": "components_poststab_findpostposition" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "frontend_src_components_ui_dialog_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "ui_dialog_dialogcontent" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "ui_dialog_dialogheader" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "ui_dialog_dialogtitle" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L25", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "frontend_src_components_ui_button_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L25", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "ui_button_button" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L36", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L755", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "lib_utils_cn" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L30", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_outcomefilter" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L32", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_classification" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L42", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_priority_meta" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L64", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_getprioritymeta" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L70", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_skip_reason_label" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L82", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_stale_reason_label" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L104", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_tileconfig" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L159", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_classify" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L169", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_pill" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L197", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_changecell" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L248", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_skipicon" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L259", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_conditioncell" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L290", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_summarytile" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L345", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_stateloading" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L355", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_stateempty" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L379", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_statestaleconflict" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L476", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_expirycountdown" }, { "relation": "calls", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L554", "weight": 1.0, "context": "call", "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_useexpirycountdown" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "frontend_src_test_server_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "test_server_server" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L36", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "test_utils_renderwithproviders" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L48", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "pages_siegememberspage_test_makepreview" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L93", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_test_rendermodal" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L442", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_test_rows" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L145", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "pages_systempage_datarow" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L445", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "ui_checkbox_checkbox" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L157", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_test_twosuggestions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L581", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "pages_boardpage_test_user" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L654", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_poststab_test_applybtn" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L493", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_test_onclose" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L360", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_test_regeneratebtns" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L390", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_test_skippedtile" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L400", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_test_alltile" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L411", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_test_optimalpreview" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L516", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_test_tworows" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L598", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_test_applyremainingbtn" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L639", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_test_expiresat" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L631", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_test_subtitle" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L724", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_test_slidersicons" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L725", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_postsuggestionsmodal_tsx", "target": "components_postsuggestionsmodal_test_infoicons" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L198", "weight": 1.0, "confidence_score": 1.0, "source": "components_postsuggestionsmodal_changecell", "target": "components_postsuggestionsmodal_classify" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L185", "weight": 1.0, "source": "components_postsuggestionsmodal_pill", "target": "lib_utils_cn" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/components/PostSuggestionsModal.tsx", "source_location": "L308", "weight": 1.0, "source": "components_postsuggestionsmodal_summarytile", "target": "lib_utils_cn" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/RequireAuth.tsx", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_requireauth_tsx", "target": "frontend_src_context_authcontext_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/RequireAuth.tsx", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_requireauth_tsx", "target": "context_authcontext_useauth" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/RequireAuth.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_requireauth_tsx", "target": "components_requireauth_requireauth" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/components/RequireAuth.tsx", "source_location": "L9", "weight": 1.0, "source": "components_requireauth_requireauth", "target": "context_authcontext_useauth" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/SiegeLayout.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_siegelayout_tsx", "target": "components_siegelayout_siegelayout" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/SiegeLayout.test.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_siegelayout_tsx", "target": "frontend_src_test_server_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/SiegeLayout.test.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_siegelayout_tsx", "target": "test_server_server" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/SiegeLayout.test.tsx", "source_location": "L28", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_siegelayout_tsx", "target": "components_layout_test_renderlayout" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/SiegeLayout.test.tsx", "source_location": "L85", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_siegelayout_tsx", "target": "components_siegelayout_test_postslink" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/SiegeLayout.test.tsx", "source_location": "L79", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_siegelayout_tsx", "target": "components_siegelayout_test_settingslink" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/badge.tsx", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_badge_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/badge.tsx", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_badge_tsx", "target": "lib_utils_cn" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/badge.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_badge_tsx", "target": "ui_badge_badgevariants" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/badge.tsx", "source_location": "L29", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_badge_tsx", "target": "ui_badge_badgeprops" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/badge.tsx", "source_location": "L34", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_badge_tsx", "target": "ui_badge_badge" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L36", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "frontend_src_components_ui_badge_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "frontend_src_components_ui_badge_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "frontend_src_components_ui_badge_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "frontend_src_components_ui_badge_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L41", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "frontend_src_components_ui_badge_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegespage_tsx", "target": "frontend_src_components_ui_badge_tsx" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/badge.tsx", "source_location": "L36", "weight": 1.0, "confidence_score": 1.0, "source": "ui_badge_badge", "target": "ui_badge_badgevariants" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L36", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "ui_badge_badge" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "ui_badge_badge" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "ui_badge_badge" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "ui_badge_badge" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L41", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "ui_badge_badge" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegespage_tsx", "target": "ui_badge_badge" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/components/ui/badge.tsx", "source_location": "L36", "weight": 1.0, "source": "ui_badge_badge", "target": "lib_utils_cn" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/button.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_button_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/button.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_button_tsx", "target": "lib_utils_cn" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/button.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_button_tsx", "target": "ui_button_buttonvariants" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/button.tsx", "source_location": "L36", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_button_tsx", "target": "ui_button_buttonprops" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/button.tsx", "source_location": "L43", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_button_tsx", "target": "ui_button_button" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "frontend_src_components_ui_button_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "frontend_src_components_ui_button_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "frontend_src_components_ui_button_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L9", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "frontend_src_components_ui_button_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "pages_siegecreatepage_siegecreatepage", "target": "frontend_src_components_ui_button_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L29", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "frontend_src_components_ui_button_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegespage_tsx", "target": "frontend_src_components_ui_button_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "ui_button_button" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "ui_button_button" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "ui_button_button" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L9", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "ui_button_button" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "pages_siegecreatepage_siegecreatepage", "target": "ui_button_button" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L29", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "ui_button_button" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegespage_tsx", "target": "ui_button_button" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/checkbox.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "ui_checkbox_checkbox", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/checkbox.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "ui_checkbox_checkbox", "target": "lib_utils_cn" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "ui_checkbox_checkbox" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L23", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "ui_checkbox_checkbox" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "ui_checkbox_checkbox" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L32", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "ui_checkbox_checkbox" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dialog.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dialog_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dialog.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dialog_tsx", "target": "lib_utils_cn" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dialog.tsx", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dialog_tsx", "target": "ui_dialog_dialogoverlay" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dialog.tsx", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dialog_tsx", "target": "ui_dialog_dialogcontent" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dialog.tsx", "source_location": "L50", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dialog_tsx", "target": "ui_dialog_dialogheader" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dialog.tsx", "source_location": "L66", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dialog_tsx", "target": "ui_dialog_dialogfooter" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dialog.tsx", "source_location": "L82", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dialog_tsx", "target": "ui_dialog_dialogtitle" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dialog.tsx", "source_location": "L97", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dialog_tsx", "target": "ui_dialog_dialogdescription" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L38", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "frontend_src_components_ui_dialog_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "frontend_src_components_ui_dialog_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "frontend_src_components_ui_dialog_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L38", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "ui_dialog_dialogcontent" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "ui_dialog_dialogcontent" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "ui_dialog_dialogcontent" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L38", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "ui_dialog_dialogheader" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "ui_dialog_dialogheader" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "ui_dialog_dialogheader" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/components/ui/dialog.tsx", "source_location": "L56", "weight": 1.0, "source": "ui_dialog_dialogheader", "target": "lib_utils_cn" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L38", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "ui_dialog_dialogfooter" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "ui_dialog_dialogfooter" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "ui_dialog_dialogfooter" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/components/ui/dialog.tsx", "source_location": "L72", "weight": 1.0, "source": "ui_dialog_dialogfooter", "target": "lib_utils_cn" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L38", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "ui_dialog_dialogtitle" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "ui_dialog_dialogtitle" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "ui_dialog_dialogtitle" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L38", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "ui_dialog_dialogdescription" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "ui_dialog_dialogdescription" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L33", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "ui_dialog_dialogdescription" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dropdown_menu_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dropdown_menu_tsx", "target": "lib_utils_cn" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L20", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dropdown_menu_tsx", "target": "ui_dropdown_menu_dropdownmenusubtrigger" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L42", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dropdown_menu_tsx", "target": "ui_dropdown_menu_dropdownmenusubcontent" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L58", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dropdown_menu_tsx", "target": "ui_dropdown_menu_dropdownmenucontent" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L76", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dropdown_menu_tsx", "target": "ui_dropdown_menu_dropdownmenuitem" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L94", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dropdown_menu_tsx", "target": "ui_dropdown_menu_dropdownmenucheckboxitem" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L118", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dropdown_menu_tsx", "target": "ui_dropdown_menu_dropdownmenuradioitem" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L140", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dropdown_menu_tsx", "target": "ui_dropdown_menu_dropdownmenulabel" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L158", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dropdown_menu_tsx", "target": "ui_dropdown_menu_dropdownmenuseparator" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L170", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_dropdown_menu_tsx", "target": "ui_dropdown_menu_dropdownmenushortcut" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/components/ui/dropdown-menu.tsx", "source_location": "L176", "weight": 1.0, "source": "ui_dropdown_menu_dropdownmenushortcut", "target": "lib_utils_cn" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/input.tsx", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_input_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/input.tsx", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_input_tsx", "target": "lib_utils_cn" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/input.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_input_tsx", "target": "ui_input_inputprops" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/input.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_input_tsx", "target": "ui_input_input" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L37", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "frontend_src_components_ui_input_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "frontend_src_components_ui_input_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L20", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "frontend_src_components_ui_input_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L10", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "frontend_src_components_ui_input_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "pages_siegecreatepage_siegecreatepage", "target": "frontend_src_components_ui_input_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L30", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "frontend_src_components_ui_input_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L37", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "ui_input_input" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "ui_input_input" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L20", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "ui_input_input" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L10", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "ui_input_input" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "pages_siegecreatepage_siegecreatepage", "target": "ui_input_input" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L30", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "ui_input_input" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/label.tsx", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_label_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/label.tsx", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_label_tsx", "target": "lib_utils_cn" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/label.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_label_tsx", "target": "ui_label_label" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_comparisonpage", "target": "frontend_src_components_ui_label_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "frontend_src_components_ui_label_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "frontend_src_components_ui_label_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "frontend_src_components_ui_label_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "pages_siegecreatepage_siegecreatepage", "target": "frontend_src_components_ui_label_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L31", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "frontend_src_components_ui_label_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_comparisonpage", "target": "ui_label_label" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "ui_label_label" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L24", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "ui_label_label" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "ui_label_label" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "pages_siegecreatepage_siegecreatepage", "target": "ui_label_label" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L31", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "ui_label_label" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/select.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_select_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/select.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_select_tsx", "target": "lib_utils_cn" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/select.tsx", "source_location": "L10", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_select_tsx", "target": "ui_select_selecttrigger" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/select.tsx", "source_location": "L30", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_select_tsx", "target": "ui_select_selectscrollupbutton" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/select.tsx", "source_location": "L47", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_select_tsx", "target": "ui_select_selectscrolldownbutton" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/select.tsx", "source_location": "L65", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_select_tsx", "target": "ui_select_selectcontent" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/select.tsx", "source_location": "L97", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_select_tsx", "target": "ui_select_selectlabel" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/select.tsx", "source_location": "L109", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_select_tsx", "target": "ui_select_selectitem" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/select.tsx", "source_location": "L131", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_select_tsx", "target": "ui_select_selectseparator" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_comparisonpage", "target": "frontend_src_components_ui_select_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "frontend_src_components_ui_select_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "frontend_src_components_ui_select_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "frontend_src_components_ui_select_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L8", "weight": 1.0, "confidence_score": 1.0, "source": "pages_siegecreatepage_siegecreatepage", "target": "frontend_src_components_ui_select_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_comparisonpage", "target": "ui_select_selecttrigger" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "ui_select_selecttrigger" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "ui_select_selecttrigger" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "ui_select_selecttrigger" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L8", "weight": 1.0, "confidence_score": 1.0, "source": "pages_siegecreatepage_siegecreatepage", "target": "ui_select_selecttrigger" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_comparisonpage", "target": "ui_select_selectcontent" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "ui_select_selectcontent" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "ui_select_selectcontent" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "ui_select_selectcontent" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L8", "weight": 1.0, "confidence_score": 1.0, "source": "pages_siegecreatepage_siegecreatepage", "target": "ui_select_selectcontent" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_comparisonpage", "target": "ui_select_selectitem" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "ui_select_selectitem" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "ui_select_selectitem" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "ui_select_selectitem" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L8", "weight": 1.0, "confidence_score": 1.0, "source": "pages_siegecreatepage_siegecreatepage", "target": "ui_select_selectitem" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/table.tsx", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_table_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/table.tsx", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_table_tsx", "target": "lib_utils_cn" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/table.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_table_tsx", "target": "ui_table_table" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/table.tsx", "source_location": "L68", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_table_tsx", "target": "ui_table_tablehead" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/table.tsx", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_table_tsx", "target": "ui_table_tablebody" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/table.tsx", "source_location": "L38", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_table_tsx", "target": "ui_table_tablefooter" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/table.tsx", "source_location": "L53", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_table_tsx", "target": "ui_table_tablerow" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/table.tsx", "source_location": "L83", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_table_tsx", "target": "ui_table_tablecell" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/table.tsx", "source_location": "L98", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_table_tsx", "target": "ui_table_tablecaption" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "frontend_src_components_ui_table_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "frontend_src_components_ui_table_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegespage_tsx", "target": "frontend_src_components_ui_table_tsx" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "ui_table_table" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "ui_table_table" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegespage_tsx", "target": "ui_table_table" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "ui_table_tablebody" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "ui_table_tablebody" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegespage_tsx", "target": "ui_table_tablebody" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "ui_table_tablerow" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "ui_table_tablerow" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegespage_tsx", "target": "ui_table_tablerow" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "ui_table_tablehead" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "ui_table_tablehead" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegespage_tsx", "target": "ui_table_tablehead" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "ui_table_tablecell" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "ui_table_tablecell" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegespage_tsx", "target": "ui_table_tablecell" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/textarea.tsx", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_textarea_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/textarea.tsx", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_textarea_tsx", "target": "lib_utils_cn" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/textarea.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_textarea_tsx", "target": "ui_textarea_textareaprops" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/components/ui/textarea.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_components_ui_textarea_tsx", "target": "ui_textarea_textarea" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/context/AuthContext.tsx", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_context_authcontext_tsx", "target": "context_authcontext_authuser" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/context/AuthContext.tsx", "source_location": "L18", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_context_authcontext_tsx", "target": "context_authcontext_authcontextvalue" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/context/AuthContext.tsx", "source_location": "L25", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_context_authcontext_tsx", "target": "context_authcontext_authcontext" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/context/AuthContext.tsx", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_context_authcontext_tsx", "target": "context_authcontext_authprovider" }, { "relation": "imports", "confidence": "EXTRACTED", "source_file": "frontend/src/test/context/AuthContext.test.tsx", "source_location": "L6", "weight": 1.0, "context": "import", "confidence_score": 1.0, "source": "frontend_src_context_authcontext_tsx", "target": "context_authcontext_useauth" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "frontend_src_context_authcontext_tsx" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/context/AuthContext.test.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_context_authcontext_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/context/AuthContext.test.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_context_authcontext_tsx", "target": "frontend_src_test_server_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/context/AuthContext.test.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_context_authcontext_tsx", "target": "test_server_server" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/context/AuthContext.test.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_context_authcontext_tsx", "target": "test_utils_renderwithproviders" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/context/AuthContext.test.tsx", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_context_authcontext_tsx", "target": "context_authcontext_test_testconsumer" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/utils.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_utils_ts", "target": "context_authcontext_authprovider" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "context_authcontext_useauth" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L11", "weight": 1.0, "source": "pages_landingpage_landingorsieges", "target": "context_authcontext_useauth" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/test/context/AuthContext.test.tsx", "source_location": "L13", "weight": 1.0, "source": "context_authcontext_test_testconsumer", "target": "context_authcontext_useauth" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/lib/buildingColors.ts", "source_location": "L3", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_buildingcolors_ts", "target": "lib_buildingcolors_buildingcolorclass" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/lib/buildingColors.ts", "source_location": "L49", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_buildingcolors_ts", "target": "lib_buildingcolors_building_labels" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L54", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "frontend_src_lib_buildingcolors_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L55", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "frontend_src_lib_buildingcolors_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L54", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "lib_buildingcolors_building_labels" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L55", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "lib_buildingcolors_building_labels" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/lib/groupPostConditions.ts", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_grouppostconditions_ts", "target": "lib_grouppostconditions_groupbymode" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/lib/groupPostConditions.ts", "source_location": "L20", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_grouppostconditions_ts", "target": "lib_grouppostconditions_conditiongroup" }, { "relation": "calls", "confidence": "EXTRACTED", "source_file": "frontend/src/lib/groupPostConditions.ts", "source_location": "L46", "weight": 1.0, "context": "call", "confidence_score": 1.0, "source": "frontend_src_lib_grouppostconditions_ts", "target": "lib_grouppostconditions_groupbylevel" }, { "relation": "calls", "confidence": "EXTRACTED", "source_file": "frontend/src/lib/groupPostConditions.ts", "source_location": "L48", "weight": 1.0, "context": "call", "confidence_score": 1.0, "source": "frontend_src_lib_grouppostconditions_ts", "target": "lib_grouppostconditions_groupbytype" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/lib/useGroupByPreference.ts", "source_location": "L9", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_usegroupbypreference_ts", "target": "frontend_src_lib_grouppostconditions_ts" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L304", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "frontend_src_lib_grouppostconditions_ts" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L196", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "frontend_src_lib_grouppostconditions_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "frontend_src_lib_grouppostconditions_ts" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_grouppostconditions_ts", "target": "lib_grouppostconditions_test_makecond" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_grouppostconditions_ts", "target": "lib_grouppostconditions_test_mixed" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L112", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_grouppostconditions_ts", "target": "lib_grouppostconditions_test_groups" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L39", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_grouppostconditions_ts", "target": "lib_grouppostconditions_test_levels" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L105", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_grouppostconditions_ts", "target": "lib_grouppostconditions_test_descriptions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L59", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_grouppostconditions_ts", "target": "lib_grouppostconditions_test_l1only" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L113", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_grouppostconditions_ts", "target": "lib_grouppostconditions_test_types" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L80", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_grouppostconditions_ts", "target": "lib_grouppostconditions_test_headings" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L98", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_grouppostconditions_ts", "target": "lib_grouppostconditions_test_factions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/lib/groupPostConditions.test.ts", "source_location": "L111", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_grouppostconditions_ts", "target": "lib_grouppostconditions_test_unknown" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L103", "weight": 1.0, "source": "pages_postspage_postrow", "target": "frontend_src_lib_grouppostconditions_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/lib/useGroupByPreference.ts", "source_location": "L9", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_usegroupbypreference_ts", "target": "lib_grouppostconditions_groupbymode" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "lib_grouppostconditions_groupbymode" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/lib/post-priority.ts", "source_location": "L23", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_post_priority_ts", "target": "lib_post_priority_prioritylabel" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/lib/post-priority.ts", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_post_priority_ts", "target": "lib_post_priority_prioritybadgecolor" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L23", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "lib_post_priority_prioritylabel" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/lib/useGroupByPreference.ts", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_usegroupbypreference_ts", "target": "lib_usegroupbypreference_valid_modes" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L65", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "frontend_src_lib_usegroupbypreference_ts" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L70", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "frontend_src_lib_usegroupbypreference_ts" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L278", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "frontend_src_lib_usegroupbypreference_ts" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L57", "weight": 1.0, "source": "pages_postspage_postrow", "target": "frontend_src_lib_usegroupbypreference_ts" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/lib/utils.ts", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_utils_ts", "target": "lib_utils_cn" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_comparisonpage", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L54", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SystemPage.tsx", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "pages_systempage_systempage", "target": "frontend_src_lib_utils_ts" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/utils.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_utils_ts", "target": "test_utils_testrenderoptions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/utils.tsx", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_lib_utils_ts", "target": "test_utils_renderwithproviders" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/ChangelogDropdown.test.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_changelogdropdown_test_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L40", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbyconditions_test_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/LoginPage.test.tsx", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "pages_loginpage_loginpage", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/MembersPage.test.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L36", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.test.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegesPage.test.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_siegespage_test_tsx", "target": "frontend_src_lib_utils_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_comparisonpage", "target": "lib_utils_cn" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L102", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "lib_utils_cn" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeSettingsPage.tsx", "source_location": "L501", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "lib_utils_cn" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SystemPage.tsx", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "pages_systempage_systempage", "target": "lib_utils_cn" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L29", "weight": 1.0, "source": "pages_comparisonpage_positiontag", "target": "lib_utils_cn" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/pages/SystemPage.tsx", "source_location": "L27", "weight": 1.0, "source": "pages_systempage_sectionpanel", "target": "lib_utils_cn" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/pages/SystemPage.tsx", "source_location": "L67", "weight": 1.0, "source": "pages_systempage_datarow", "target": "lib_utils_cn" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L58", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "pages_boardpage_role_labels" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L36", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "pages_boardpage_role_labels" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L65", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "pages_boardpage_role_priority" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L72", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "pages_boardpage_role_colors" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L79", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "pages_boardpage_role_badge_colors" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L87", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "pages_boardpage_role_chip_colors" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L94", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "pages_boardpage_power_labels" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L28", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "pages_boardpage_power_labels" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L103", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "pages_boardpage_building_type_order" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L254", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "pages_boardpage_draggablememberrow" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L322", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "pages_boardpage_memberdragoverlay" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L347", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "pages_boardpage_rolefilter" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L349", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "pages_boardpage_role_filter_options" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L357", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "pages_boardpage_memberbucket" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L457", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "pages_boardpage_buildingtablerow" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L553", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "pages_boardpage_buildingtypesection" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L679", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "pages_boardpage_conditionaldndcontext" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/BoardPage.tsx", "source_location": "L711", "weight": 1.0, "confidence_score": 1.0, "source": "pages_boardpage_boardpage", "target": "pages_boardpage_activetab" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L28", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "pages_boardpage_boardpage" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L23", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "pages_boardpage_boardpage" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_comparisonpage", "target": "pages_comparisonpage_formatposition" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L36", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_positiontag", "target": "pages_comparisonpage_formatposition" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_comparisonpage", "target": "pages_comparisonpage_positiontag" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/ComparisonPage.tsx", "source_location": "L54", "weight": 1.0, "confidence_score": 1.0, "source": "pages_comparisonpage_comparisonpage", "target": "pages_comparisonpage_memberpositionscell" }, { "relation": "imports", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L8", "weight": 1.0, "context": "import", "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "pages_landingpage_landingorsieges" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "pages_landingpage_slides" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L68", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "pages_landingpage_shieldicon" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L88", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "pages_landingpage_githubicon" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L108", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "pages_landingpage_checkicon" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L128", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "pages_landingpage_externallinkicon" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L150", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "pages_landingpage_colors" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/LandingPage.tsx", "source_location": "L157", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "pages_landingpage_landingpage" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "test_utils_renderwithproviders" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "frontend_src_test_server_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "test_server_server" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L18", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "components_landingpage_test_renderlanding" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L55", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "components_landingpage_test_signin" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L71", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "components_landingpage_test_list" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L72", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "components_landingpage_test_bullets" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L127", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "components_landingpage_test_ghlink" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L191", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "pages_boardpage_test_user" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L192", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_landingpage_tsx", "target": "components_landingpage_test_scrollintoviewmock" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/LoginPage.tsx", "source_location": "L7", "weight": 1.0, "confidence_score": 1.0, "source": "pages_loginpage_loginpage", "target": "pages_loginpage_error_messages" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/LoginPage.tsx", "source_location": "L15", "weight": 1.0, "confidence_score": 1.0, "source": "pages_loginpage_loginpage", "target": "pages_loginpage_membership_errors" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/LoginPage.tsx", "source_location": "L18", "weight": 1.0, "confidence_score": 1.0, "source": "pages_loginpage_loginpage", "target": "pages_loginpage_mobilebanner" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/LoginPage.test.tsx", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "pages_loginpage_loginpage", "target": "frontend_src_test_server_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/LoginPage.test.tsx", "source_location": "L11", "weight": 1.0, "confidence_score": 1.0, "source": "pages_loginpage_loginpage", "target": "test_server_server" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/LoginPage.test.tsx", "source_location": "L12", "weight": 1.0, "confidence_score": 1.0, "source": "pages_loginpage_loginpage", "target": "test_utils_renderwithproviders" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/LoginPage.test.tsx", "source_location": "L155", "weight": 1.0, "confidence_score": 1.0, "source": "pages_loginpage_loginpage", "target": "pages_loginpage_test_link" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MemberDetailPage.tsx", "source_location": "L41", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_memberdetailpage_tsx", "target": "pages_memberdetailpage_role_options" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L42", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbyconditions_test_tsx", "target": "frontend_src_pages_memberdetailpage_tsx" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L43", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "pages_memberspage_rolebadgevariant" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/MembersPage.tsx", "source_location": "L45", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "pages_memberspage_role_variants" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/MembersPage.test.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "frontend_src_test_server_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/MembersPage.test.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "test_server_server" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/MembersPage.test.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "test_utils_renderwithproviders" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/MembersPage.test.tsx", "source_location": "L65", "weight": 1.0, "confidence_score": 1.0, "source": "pages_memberspage_memberspage", "target": "pages_boardpage_test_members" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L30", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "pages_postprioritiespage_descriptioncell" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostPrioritiesPage.tsx", "source_location": "L64", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_postprioritiespage_tsx", "target": "pages_postprioritiespage_tab" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L41", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbyconditions_test_tsx", "target": "frontend_src_pages_postprioritiespage_tsx" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/PostsPage.tsx", "source_location": "L30", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "pages_postspage_postrow" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L37", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "pages_postspage_postspage" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.test.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "frontend_src_test_server_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.test.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "test_server_server" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.test.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "test_utils_renderwithproviders" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.test.tsx", "source_location": "L41", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "pages_postspage_test_renderpostspage" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.test.tsx", "source_location": "L63", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "pages_postspage_test_posts" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.test.tsx", "source_location": "L93", "weight": 1.0, "confidence_score": 1.0, "source": "pages_postspage_postspage", "target": "pages_postspage_test_postheadings" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "pages_siegecreatepage_siegecreatepage", "target": "pages_siegecreatepage_nexttuesdayfrom" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L43", "weight": 1.0, "confidence_score": 1.0, "source": "pages_siegecreatepage_suggestnextsiegedate", "target": "pages_siegecreatepage_nexttuesdayfrom" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "pages_siegecreatepage_siegecreatepage", "target": "pages_siegecreatepage_formatdatelocal" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L41", "weight": 1.0, "confidence_score": 1.0, "source": "pages_siegecreatepage_suggestnextsiegedate", "target": "pages_siegecreatepage_formatdatelocal" }, { "relation": "calls", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegeCreatePage.tsx", "source_location": "L60", "weight": 1.0, "context": "call", "confidence_score": 1.0, "source": "pages_siegecreatepage_siegecreatepage", "target": "pages_siegecreatepage_suggestnextsiegedate" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L37", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "frontend_src_test_server_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L37", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "test_server_server" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L71", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "pages_siegesettingspage_test_makenotifyresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L82", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "pages_siegesettingspage_test_makeresult" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L96", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "pages_siegesettingspage_test_makebatchresponse" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L115", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "pages_siegesettingspage_test_emptyvalidation" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L117", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "pages_siegememberspage_test_renderpage" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L151", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "pages_siegesettingspage_test_waitforpageload" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L720", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "pages_boardpage_test_user" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L731", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "pages_siegesettingspage_test_dialog" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L284", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "pages_siegesettingspage_test_notifybtn" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegeSettingsPage.test.tsx", "source_location": "L630", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegesettingspage_tsx", "target": "pages_siegesettingspage_test_statusel" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L17", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegespage_tsx", "target": "pages_siegespage_statusbadgevariant" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L19", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegespage_tsx", "target": "pages_siegespage_status_variants" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L25", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegespage_tsx", "target": "pages_siegespage_status_labels" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SiegesPage.tsx", "source_location": "L31", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_pages_siegespage_tsx", "target": "pages_siegespage_siegespage" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegesPage.test.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_siegespage_test_tsx", "target": "frontend_src_pages_siegespage_tsx" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SystemPage.tsx", "source_location": "L6", "weight": 1.0, "confidence_score": 1.0, "source": "pages_systempage_systempage", "target": "pages_systempage_ui_libraries" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SystemPage.tsx", "source_location": "L16", "weight": 1.0, "confidence_score": 1.0, "source": "pages_systempage_systempage", "target": "pages_systempage_sectionpanel" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SystemPage.tsx", "source_location": "L47", "weight": 1.0, "confidence_score": 1.0, "source": "pages_systempage_systempage", "target": "pages_systempage_datarow" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/pages/SystemPage.tsx", "source_location": "L80", "weight": 1.0, "confidence_score": 1.0, "source": "pages_systempage_systempage", "target": "pages_systempage_libraryrow" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/handlers.ts", "source_location": "L42", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_handlers_ts", "target": "test_handlers_handlers" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/server.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_server_ts", "target": "frontend_src_test_handlers_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/server.ts", "source_location": "L2", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_server_ts", "target": "test_handlers_handlers" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/server.ts", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_server_ts", "target": "test_server_server" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/ChangelogDropdown.test.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_changelogdropdown_test_tsx", "target": "frontend_src_test_server_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L39", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbyconditions_test_tsx", "target": "frontend_src_test_server_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "frontend_src_test_server_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "frontend_src_test_server_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "frontend_src_test_server_ts" }, { "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegesPage.test.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_siegespage_test_tsx", "target": "frontend_src_test_server_ts" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/ChangelogDropdown.test.tsx", "source_location": "L14", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_changelogdropdown_test_tsx", "target": "test_server_server" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L39", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbyconditions_test_tsx", "target": "test_server_server" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L26", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "test_server_server" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L21", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "test_server_server" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "test_server_server" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegesPage.test.tsx", "source_location": "L4", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_siegespage_test_tsx", "target": "test_server_server" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/ChangelogDropdown.test.tsx", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_changelogdropdown_test_tsx", "target": "test_utils_renderwithproviders" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L40", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbyconditions_test_tsx", "target": "test_utils_renderwithproviders" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L27", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "test_utils_renderwithproviders" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L22", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "test_utils_renderwithproviders" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L36", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "test_utils_renderwithproviders" }, { "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegesPage.test.tsx", "source_location": "L5", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_siegespage_test_tsx", "target": "test_utils_renderwithproviders" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/test/components/Carousel.test.tsx", "source_location": "L14", "weight": 1.0, "source": "components_carousel_test_rendercarousel", "target": "test_utils_renderwithproviders" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/test/components/ChangelogDropdown.test.tsx", "source_location": "L59", "weight": 1.0, "source": "components_changelogdropdown_test_renderdropdown", "target": "test_utils_renderwithproviders" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L131", "weight": 1.0, "source": "components_groupbyconditions_test_openconditionstab", "target": "test_utils_renderwithproviders" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L241", "weight": 1.0, "source": "components_groupbyconditions_test_rendermemberdetail", "target": "test_utils_renderwithproviders" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/test/components/LandingPage.test.tsx", "source_location": "L19", "weight": 1.0, "source": "components_landingpage_test_renderlanding", "target": "test_utils_renderwithproviders" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/test/components/Layout.test.tsx", "source_location": "L14", "weight": 1.0, "source": "components_layout_test_renderlayout", "target": "test_utils_renderwithproviders" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L121", "weight": 1.0, "source": "pages_boardpage_test_renderboard", "target": "test_utils_renderwithproviders" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/test/components/PostSuggestionsModal.test.tsx", "source_location": "L96", "weight": 1.0, "source": "components_postsuggestionsmodal_test_rendermodal", "target": "test_utils_renderwithproviders" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/test/pages/PostsPage.test.tsx", "source_location": "L42", "weight": 1.0, "source": "pages_postspage_test_renderpostspage", "target": "test_utils_renderwithproviders" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/src/test/pages/SiegeMembersPage.test.tsx", "source_location": "L94", "weight": 1.0, "source": "pages_siegememberspage_test_renderpage", "target": "test_utils_renderwithproviders" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/ChangelogDropdown.test.tsx", "source_location": "L58", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_changelogdropdown_test_tsx", "target": "components_changelogdropdown_test_renderdropdown" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/ChangelogDropdown.test.tsx", "source_location": "L320", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_changelogdropdown_test_tsx", "target": "pages_boardpage_test_user" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L57", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbyconditions_test_tsx", "target": "pages_postspage_groupby_test_sample_conditions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L100", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbyconditions_test_tsx", "target": "components_groupbyconditions_test_setupconditions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L107", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbyconditions_test_tsx", "target": "components_groupbyconditions_test_setupmember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L130", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbyconditions_test_tsx", "target": "components_groupbyconditions_test_openconditionstab" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L285", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbyconditions_test_tsx", "target": "pages_boardpage_test_user" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L303", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbyconditions_test_tsx", "target": "lib_grouppostconditions_test_headings" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L184", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbyconditions_test_tsx", "target": "components_groupbyconditions_test_elements" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L240", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbyconditions_test_tsx", "target": "components_groupbyconditions_test_rendermemberdetail" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L249", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbyconditions_test_tsx", "target": "components_groupbyconditions_test_waitforpreferences" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByConditions.test.tsx", "source_location": "L304", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbyconditions_test_tsx", "target": "components_groupbyconditions_test_headingtexts" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByToggle.test.tsx", "source_location": "L66", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbytoggle_test_tsx", "target": "pages_boardpage_test_user" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/GroupByToggle.test.tsx", "source_location": "L67", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_groupbytoggle_test_tsx", "target": "components_groupbytoggle_test_onchange" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "scripts/excel-import/import_excel.py", "source_location": "L358", "weight": 1.0, "source": "excel_import_import_excel_parse_assignments_sheet", "target": "components_landingpage_test_list" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "scripts/excel-import/import_excel.py", "source_location": "L1157", "weight": 1.0, "source": "excel_import_import_excel_collect_xlsm_files", "target": "components_landingpage_test_list" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L246", "weight": 1.0, "source": "tests_test_import_excel_make_assignments_worksheet", "target": "components_landingpage_test_list" }, { "relation": "calls", "context": "call", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L833", "weight": 1.0, "source": "tests_test_import_excel_make_workbook_mock", "target": "components_landingpage_test_list" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L65", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "components_poststab_test_makepostboard" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L101", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L133", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "components_poststab_test_setuphandlers" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L149", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "pages_boardpage_test_renderboard" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L159", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "components_poststab_test_navigatetopoststab" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L783", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "pages_boardpage_test_user" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L299", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "components_poststab_test_maketwopostboard" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L524", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "components_poststab_test_board" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L525", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "components_poststab_test_post1" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L532", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "components_poststab_test_post2" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L391", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "components_poststab_test_postrefs" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L512", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "components_poststab_test_labels" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L604", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "components_poststab_test_btn" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L611", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "components_poststab_test_makepostpreviewresult" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L621", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "components_poststab_test_makeoptimalassignment" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L640", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "components_poststab_test_makesuggestionassignment" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L715", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "components_poststab_test_chip" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L762", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "components_poststab_test_suggestbtn" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/components/PostsTab.test.tsx", "source_location": "L773", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_components_poststab_test_tsx", "target": "components_poststab_test_applybtn" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L118", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "components_poststab_test_setuphandlers" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L54", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "pages_boardpage_test_makeboard" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L90", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "pages_boardpage_test_makesiegemember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L107", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "pages_boardpage_test_setupdefaulthandlers" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L120", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "pages_boardpage_test_renderboard" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L174", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "pages_boardpage_test_ones" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L217", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "pages_boardpage_test_disabledel" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L656", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "pages_boardpage_test_user" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L341", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "pages_boardpage_test_disabledspan" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L362", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "pages_boardpage_test_cell" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L382", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "pages_boardpage_test_members" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L436", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "pages_boardpage_test_searchinput" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L508", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "pages_boardpage_test_memberrows" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/BoardPage.test.tsx", "source_location": "L510", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_boardpage_test_tsx", "target": "pages_boardpage_test_bucketrow" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L350", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "pages_boardpage_test_user" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L52", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "pages_postspage_groupby_test_sample_conditions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L111", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "pages_postspage_groupby_test_two_posts" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L140", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "pages_postspage_test_renderpostspage" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L150", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "pages_postspage_groupby_test_expandfirstpost" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L167", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "pages_postspage_groupby_test_expandallposts" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L226", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "pages_postspage_groupby_test_rowtoggle" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L339", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "pages_postspage_groupby_test_mastergroup" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/PostsPage.groupBy.test.tsx", "source_location": "L299", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_postspage_groupby_test_tsx", "target": "pages_postspage_groupby_test_rowgroups" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/test/pages/SiegesPage.test.tsx", "source_location": "L51", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_test_pages_siegespage_test_tsx", "target": "pages_siegespage_test_sieges" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/src/types/changelog.d.ts", "source_location": "L13", "weight": 1.0, "confidence_score": 1.0, "source": "frontend_src_types_changelog_d_ts", "target": "types_changelog_d_changelogentry" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L160", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_parsedmember" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L169", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_parsedassignment" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L178", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_parsedreserve" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L185", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_parsedpostconfig" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L192", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_parsedpostconditions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L198", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_importstats" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L224", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_parse_filename_date" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L236", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_map_role" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L241", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_map_building_alias" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L265", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_parse_members_sheet" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L337", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_parse_assignments_sheet" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L445", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_parse_reserves_sheet" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L489", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_parse_posts_sheet_config" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L534", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_parse_posts_sheet_conditions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L570", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_build_group_structure" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L592", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_compute_building_group_structure" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L677", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_infer_building_level" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L719", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_create_building_with_groups_and_positions" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L1069", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_import_file" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L1146", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_import_excel_py", "target": "excel_import_import_excel_collect_xlsm_files" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_rationale_1", "target": "scripts_excel_import_import_excel_py" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L326", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_parse_members_sheet", "target": "excel_import_import_excel_parsedmember" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L433", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_parse_assignments_sheet", "target": "excel_import_import_excel_parsedassignment" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L480", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_parse_reserves_sheet", "target": "excel_import_import_excel_parsedreserve" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L525", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_parse_posts_sheet_config", "target": "excel_import_import_excel_parsedpostconfig" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L557", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_parse_posts_sheet_conditions", "target": "excel_import_import_excel_parsedpostconditions" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L784", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_import_file", "target": "excel_import_import_excel_importstats" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L787", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_import_file", "target": "excel_import_import_excel_parse_filename_date" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L225", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_rationale_225", "target": "excel_import_import_excel_parse_filename_date" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L843", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_import_file", "target": "excel_import_import_excel_map_role" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L237", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_rationale_237", "target": "excel_import_import_excel_map_role" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L402", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_parse_assignments_sheet", "target": "excel_import_import_excel_map_building_alias" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L242", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_rationale_242", "target": "excel_import_import_excel_map_building_alias" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L814", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_import_file", "target": "excel_import_import_excel_parse_members_sheet" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L266", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_rationale_266", "target": "excel_import_import_excel_parse_members_sheet" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L815", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_import_file", "target": "excel_import_import_excel_parse_assignments_sheet" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L338", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_rationale_338", "target": "excel_import_import_excel_parse_assignments_sheet" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L816", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_import_file", "target": "excel_import_import_excel_parse_reserves_sheet" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L446", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_rationale_446", "target": "excel_import_import_excel_parse_reserves_sheet" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L823", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_import_file", "target": "excel_import_import_excel_parse_posts_sheet_config" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L490", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_rationale_490", "target": "excel_import_import_excel_parse_posts_sheet_config" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L824", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_import_file", "target": "excel_import_import_excel_parse_posts_sheet_conditions" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L535", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_rationale_535", "target": "excel_import_import_excel_parse_posts_sheet_conditions" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L571", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_rationale_571", "target": "excel_import_import_excel_build_group_structure" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L929", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_import_file", "target": "excel_import_import_excel_compute_building_group_structure" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L597", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_rationale_597", "target": "excel_import_import_excel_compute_building_group_structure" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L934", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_import_file", "target": "excel_import_import_excel_infer_building_level" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L678", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_rationale_678", "target": "excel_import_import_excel_infer_building_level" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L935", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_import_file", "target": "excel_import_import_excel_create_building_with_groups_and_positions" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L727", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_rationale_727", "target": "excel_import_import_excel_create_building_with_groups_and_positions" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L781", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_rationale_781", "target": "excel_import_import_excel_import_file" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L1073", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_rationale_1073", "target": "excel_import_import_excel_import_file" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/import_excel.py", "source_location": "L1147", "weight": 1.0, "confidence_score": 1.0, "source": "excel_import_import_excel_rationale_1147", "target": "excel_import_import_excel_collect_xlsm_files" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L28", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_filename" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L34", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_filename_with_path_prefix" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L51", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_filename_invalid_random" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L57", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_filename_invalid_impossible_date" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L68", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_role_mapping_heavy_hitter" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L72", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_role_mapping_advanced" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L76", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_role_mapping_medium" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L80", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_role_mapping_novice" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L84", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_role_mapping_unknown_returns_none" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L93", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_building_alias_stronghold" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L97", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_building_alias_mana_shrine_full" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L101", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_building_alias_mana_short" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L109", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_building_alias_magic_short" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L113", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_building_alias_defense_tower_full" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L117", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_building_alias_defense_short" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L121", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_building_alias_post" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L125", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_building_alias_unknown_returns_none" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L134", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_make_worksheet" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L141", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_members_sheet_basic" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L169", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_members_sheet_skips_empty_rows" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L183", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_members_sheet_strips_whitespace" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L211", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_members_sheet_post_preferences" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L237", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_make_assignments_worksheet" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L252", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_assignments_sheet_member_assignment" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L288", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_assignments_sheet_skips_unknown_building_type" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L303", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_assignments_sheet_skips_incomplete_rows" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L315", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_assignments_sheet_empty_value_is_none" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L331", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_reserves_sheet_basic" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L354", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_reserves_sheet_skips_empty_rows" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L366", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_reserves_sheet_invalid_attack_day_ignored" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L372", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_reserves_sheet_case_insensitive_yes_no" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L389", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_build_group_structure_stronghold" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L395", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_build_group_structure_mana_shrine" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L401", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_build_group_structure_magic_tower" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L407", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_build_group_structure_defense_tower" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L413", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_build_group_structure_post" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L592", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_compute_building_group_structure_basic" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L575", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_compute_building_group_structure_magic_tower_level3" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L472", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_compute_building_group_structure_post_no_inflation" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L485", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_compute_building_group_structure_filters_by_building_number" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L557", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_compute_building_group_structure_mana_shrine_level2" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L629", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_infer_building_level_stronghold_level1" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L635", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_infer_building_level_mana_shrine_level2" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L641", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_infer_building_level_magic_tower_level1" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L647", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_infer_building_level_defense_tower_level4" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L653", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_infer_building_level_post" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L659", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_infer_building_level_fallback" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L665", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_infer_building_level_unknown_building_type_fallback" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L676", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_make_posts_config_worksheet" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L689", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_posts_sheet_config_basic" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L708", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_posts_sheet_config_default_priority" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L720", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_posts_sheet_config_multiple_sections" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L745", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_make_posts_conditions_worksheet" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L757", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_posts_sheet_conditions_basic" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L777", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_parse_posts_sheet_conditions_skips_empty" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L796", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_make_empty_worksheet" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L803", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_make_workbook_mock" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L839", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_make_session_mock" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L861", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_import_file_section3c_skipped_when_not_most_recent" }, { "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L880", "weight": 1.0, "confidence_score": 1.0, "source": "scripts_excel_import_tests_test_import_excel_py", "target": "tests_test_import_excel_test_import_file_section3c_runs_when_most_recent_but_finds_nothing" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L1", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_1", "target": "scripts_excel_import_tests_test_import_excel_py" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L29", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_29", "target": "tests_test_import_excel_test_parse_filename" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L35", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_35", "target": "tests_test_import_excel_test_parse_filename_with_path_prefix" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L46", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_46", "target": "tests_test_import_excel_test_parse_filename_invalid_random" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L52", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_52", "target": "tests_test_import_excel_test_parse_filename_invalid_random" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L58", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_58", "target": "tests_test_import_excel_test_parse_filename_invalid_impossible_date" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L143", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_parse_members_sheet_basic", "target": "tests_test_import_excel_make_worksheet" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L170", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_parse_members_sheet_skips_empty_rows", "target": "tests_test_import_excel_make_worksheet" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L184", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_parse_members_sheet_strips_whitespace", "target": "tests_test_import_excel_make_worksheet" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L213", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_parse_members_sheet_post_preferences", "target": "tests_test_import_excel_make_worksheet" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L332", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_parse_reserves_sheet_basic", "target": "tests_test_import_excel_make_worksheet" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L355", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_parse_reserves_sheet_skips_empty_rows", "target": "tests_test_import_excel_make_worksheet" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L367", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_parse_reserves_sheet_invalid_attack_day_ignored", "target": "tests_test_import_excel_make_worksheet" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L373", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_parse_reserves_sheet_case_insensitive_yes_no", "target": "tests_test_import_excel_make_worksheet" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L135", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_135", "target": "tests_test_import_excel_make_worksheet" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L142", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_142", "target": "tests_test_import_excel_test_parse_members_sheet_basic" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L199", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_199", "target": "tests_test_import_excel_test_parse_members_sheet_post_preferences" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L212", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_212", "target": "tests_test_import_excel_test_parse_members_sheet_post_preferences" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L253", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_parse_assignments_sheet_member_assignment", "target": "tests_test_import_excel_make_assignments_worksheet" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L289", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_parse_assignments_sheet_skips_unknown_building_type", "target": "tests_test_import_excel_make_assignments_worksheet" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L305", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_parse_assignments_sheet_skips_incomplete_rows", "target": "tests_test_import_excel_make_assignments_worksheet" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L317", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_parse_assignments_sheet_empty_value_is_none", "target": "tests_test_import_excel_make_assignments_worksheet" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L238", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_238", "target": "tests_test_import_excel_make_assignments_worksheet" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L304", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_304", "target": "tests_test_import_excel_test_parse_assignments_sheet_skips_incomplete_rows" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L316", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_316", "target": "tests_test_import_excel_test_parse_assignments_sheet_empty_value_is_none" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L390", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_390", "target": "tests_test_import_excel_test_build_group_structure_stronghold" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L396", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_396", "target": "tests_test_import_excel_test_build_group_structure_mana_shrine" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L402", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_402", "target": "tests_test_import_excel_test_build_group_structure_magic_tower" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L408", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_408", "target": "tests_test_import_excel_test_build_group_structure_defense_tower" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L414", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_414", "target": "tests_test_import_excel_test_build_group_structure_post" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L425", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_425", "target": "tests_test_import_excel_test_compute_building_group_structure_basic" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L503", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_503", "target": "tests_test_import_excel_test_compute_building_group_structure_basic" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L524", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_524", "target": "tests_test_import_excel_test_compute_building_group_structure_basic" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L593", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_593", "target": "tests_test_import_excel_test_compute_building_group_structure_basic" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L473", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_473", "target": "tests_test_import_excel_test_compute_building_group_structure_post_no_inflation" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L486", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_486", "target": "tests_test_import_excel_test_compute_building_group_structure_filters_by_building_number" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L541", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_541", "target": "tests_test_import_excel_test_compute_building_group_structure_mana_shrine_level2" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L558", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_558", "target": "tests_test_import_excel_test_compute_building_group_structure_mana_shrine_level2" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L445", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_445", "target": "tests_test_import_excel_test_compute_building_group_structure_magic_tower_level3" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L459", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_459", "target": "tests_test_import_excel_test_compute_building_group_structure_magic_tower_level3" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L576", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_576", "target": "tests_test_import_excel_test_compute_building_group_structure_magic_tower_level3" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L630", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_616", "target": "tests_test_import_excel_test_infer_building_level_stronghold_level1" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L636", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_636", "target": "tests_test_import_excel_test_infer_building_level_mana_shrine_level2" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L642", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_642", "target": "tests_test_import_excel_test_infer_building_level_magic_tower_level1" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L648", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_648", "target": "tests_test_import_excel_test_infer_building_level_defense_tower_level4" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L654", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_654", "target": "tests_test_import_excel_test_infer_building_level_post" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L660", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_660", "target": "tests_test_import_excel_test_infer_building_level_fallback" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L666", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_666", "target": "tests_test_import_excel_test_infer_building_level_unknown_building_type_fallback" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L691", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_parse_posts_sheet_config_basic", "target": "tests_test_import_excel_make_posts_config_worksheet" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L710", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_parse_posts_sheet_config_default_priority", "target": "tests_test_import_excel_make_posts_config_worksheet" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L722", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_parse_posts_sheet_config_multiple_sections", "target": "tests_test_import_excel_make_posts_config_worksheet" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L677", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_677", "target": "tests_test_import_excel_make_posts_config_worksheet" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L690", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_690", "target": "tests_test_import_excel_test_parse_posts_sheet_config_basic" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L709", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_709", "target": "tests_test_import_excel_test_parse_posts_sheet_config_default_priority" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L721", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_721", "target": "tests_test_import_excel_test_parse_posts_sheet_config_multiple_sections" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L759", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_parse_posts_sheet_conditions_basic", "target": "tests_test_import_excel_make_posts_conditions_worksheet" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L779", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_parse_posts_sheet_conditions_skips_empty", "target": "tests_test_import_excel_make_posts_conditions_worksheet" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L746", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_746", "target": "tests_test_import_excel_make_posts_conditions_worksheet" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L758", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_758", "target": "tests_test_import_excel_test_parse_posts_sheet_conditions_basic" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L778", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_778", "target": "tests_test_import_excel_test_parse_posts_sheet_conditions_skips_empty" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L811", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_make_workbook_mock", "target": "tests_test_import_excel_make_empty_worksheet" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L797", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_797", "target": "tests_test_import_excel_make_empty_worksheet" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L866", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_import_file_section3c_skipped_when_not_most_recent", "target": "tests_test_import_excel_make_workbook_mock" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L886", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_import_file_section3c_runs_when_most_recent_but_finds_nothing", "target": "tests_test_import_excel_make_workbook_mock" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L804", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_804", "target": "tests_test_import_excel_make_workbook_mock" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L867", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_import_file_section3c_skipped_when_not_most_recent", "target": "tests_test_import_excel_make_session_mock" }, { "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L887", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_test_import_file_section3c_runs_when_most_recent_but_finds_nothing", "target": "tests_test_import_excel_make_session_mock" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L840", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_840", "target": "tests_test_import_excel_make_session_mock" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L862", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_862", "target": "tests_test_import_excel_test_import_file_section3c_skipped_when_not_most_recent" }, { "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/excel-import/tests/test_import_excel.py", "source_location": "L881", "weight": 1.0, "confidence_score": 1.0, "source": "tests_test_import_excel_rationale_881", "target": "tests_test_import_excel_test_import_file_section3c_runs_when_most_recent_but_finds_nothing" } ], "hyperedges": [], "built_at_commit": "6085fd660692d0eade02696128e186f03f2c8f5e" }